- 혼공컴운 4주차 미션 인증
1. 운영체제
- 운영체제란?
실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램
- 커널 : 운영체제의 핵심 기능을 담당
- 이중 모드 : CPU가 명령어를 실행하는 모드를 커널 모드와 사용자 모드로 구분하는 방식
- 시스템 호출 : 운영체제의 서비스를 제공받기 위해 커널 모드로 전환하는 방법
- 대표적인 운영체제 서비스 : 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리
2. 프로세스와 스레드
- 프로세스란?
실행 중인 프로그램. 프로세스의 종류에는 포그라운드 프로세스와 백그라운드 프로세스가 있다. 운영체제는 프로세스 제어 블록을 통해 여러 프로세스를 관리한다.
- 프로세스 상태에는 생성, 준비, 실행, 대기, 종료가 있다.
- 많은 운영체제는 프로세스가 프로세스를 낳는 프로세스 계층 구조로 프로세스를 관리한다.
- 프로세스를 생성한 프로세스를 부모 프로세스, 생성된 프롯세스를 자식 프로세스라고 부른다.
- 스레드란?
프로세스 내의 실행 흐름 단위. 여러 프로세스를 동시에 실행하는 것을 멀티프로세스, 여러 스레드로 프로세스를 동시에 실행하는 것을 멀티스레드라고 한다.
- p.304의 확인 문제 1번
① 생성 ② 준비 ③ 실행 ④ 종료 ⑤ 대기
3. CPU 스케줄링
CPU 스케줄링은 공정하고 합리적으로 CPU 자원을 배분하는 방법을 의미
(운영체제는 효율적인 스케줄링을 이해 스케줄링 큐를 사용한다.)
- 준비 큐 : CPU 할당을 기다리는 프로세스들을 위한 큐
- 대기 큐 : 입출력장치를 기다리는 프로세스들을 위한 큐
- 선점형 스케줄링 : 프로세스가 이용 중인 자원을 빼앗을 수 있다.
- 비선점형 스케줄링 : 프로세스가 이용 중인 자원을 빼앗을 수 없다.
- CPU 스케줄링 알고리즘
- 선입 선처리 스케줄링(FCFS) : 준비 큐에 삽입된 순서대로 CPU를 할당
- 최단 작업 우선 스케줄링(SJF) : 준비 큐에 삽입된 프로세스들 중 CPU 사용 시간의 길이가 가장 짧은 프로세스부터 CPU를 할당
- 라운드 로빈 스케줄링 : 정해진 시간만큼만 돌아가며 CPU를 할당
- 우선순위 스케줄링 : 가장 높은 우선순위를 가진 프로세스에 CPU를 할당
- 다단계 피드백 큐 스케줄링 : 프로세스들이 큐 사이를 이동할 수 있는 다단계 큐 스케줄링