<aside> 💡
한빛미디어의 <혼자 공부하는 컴퓨터 구조+운영체제>를 요약 정리했습니다.
</aside>
운영체제 : 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램
커널 영역이라는 공간에 따로 적재되어 실행됨
응용 프로그램과 하드웨어 사이에서 응용 프로그램에 필요한 자원을 할당하고, 응용 프로그램이 올바르게 실행되도록 관리하는 역할을 담당함
응용 프로그램이 CPU, 메모리, 하드 디스크 등에 마음대로 접근하고 조작할 수 있다면 컴퓨터 전체에 큰 악영향을 끼칠 수 있음
⇒ 운영체제가 이중 모드를 사용하여 문지기처럼 응용 프로그램의 요청을 받고, 작업을 대신 수행해줌
이중모드 : CPU가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분하는 방식임
시스템 호출 : 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 방법
운영체제가 지원하는 핵심 서비스
확인 문제 (p.267)
커널 : 운영체제의 핵심 서비스를 담당하는 부분
사용자 인터페이스 : 운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스
가상 머신 : 소프트웨어적으로 만들어낸 가상 컴퓨터로 두 가지 모드 이상을 지원함
가상 머신 또한 응용 프로그램이기 때문에 사용자 모드로 동작하여 운영체제 서비스를 제공받기 어려움
⇒ 이런 경우를 위해 하이퍼바이저 모드를 둬서 가상 머신에 설치된 운영체제로부터 운영체제 서비스를 받고록 함
확인 문제 (p.281)
프로세스 : 실행 중인 프로그램
PCB : 프로세스 제어 블록으로 프로세스의 실행 순서를 관리하고, CPU를 비롯한 자원을 배분하는 데 사용됨
프로세스 생성 시에 만들어지고 실행이 끝나면 폐기됨
⇒ 새로운 프로세스가 생성되었다. == 운영체제가 PCB를 생성했다.
⇒ 프로세스가 종료되었다. == 운영체제가 해당 PCB를 폐기했다,
커널 영역에 생성됨
PCB에 담기는 정보
문맥 교환 : 기존 프로세스의 문맥을 PCB에 백업하고, 새로운 프로세스를 실행하기 위해 문맥을 PCB로부터 복구하여 새로운 프로세스를 실행하는 것
프로세스의 메모리 영역
[정적 할당 영역]
[동적 할당 영역]
확인 문제 (p.295)
프로세스 상태
프로세스 계층 구조
부모 프로세스 : 새 프로세스를 생성한 프로세스
자식 프로세스 : 부모 프로세스에 의해 생성된 프로세스
⇒ 부모 프로세스와 자식 프로세스는 서로 다른 PID를 가짐
프로세스 생성 기법
확인 문제 (p.304 ~ 305)
스레드 : 프로세스를 구성하는 실행의 흐름 단위
하나의 프로세스는 여러 개의 스레드를 가질 수 있음
스레드를 이용하면 하나의 프로세스에서 여러 부분을 동시에 실행할 수 있음
단일 스레드 프로세스 : 실행의 흐름 단위가 하나인 프로세스
멀티 스레드 프로세스 : 한 번에 여러 일을 동시에 처리하는 프로세스
스레드끼리는 프로세스 내의 자원을 공유함
⇒ 하나의 스레드에 문제가 생기면 프로세스 전체에 문제가 생길 수 있음