11장 CPU 스케줄링
2023. 3. 29. 23:55
11-1) CPU 스케쥴링 개요
- 운영체제가 프로세스들에게 공정하고 합리적으로 CPU자원을 배분하는 것이 CPU 스케줄링
- 프로세스 우선순위
- 프로세스마다 우선순위가 다르다.
- 우선 순위가 높은 프로세스에는 대표적으로 입출력 작업이 많은 프로세스가 있다.
- CPU 작업이 많은 프로세스 : CPU bound process
- 입출력 burst : 입출력장치를 기다리는 작업
- 입출력 작업이 많은 프로세스 : IO bound process
- CPU burst : cpu를 이용하는 작업
- 입출력장치가 입출력 작업을 완료하기 전까지는 입출력 집중 프로세스는 어차피 대기 상태가 될 예정이라 입출력 집중 프로세스를 얼른 먼저 처리하는게 낫다.
- 유닉스 체계 os에서 ps -el 명령을 통해 우선순위 확인 가능
- 우선순위 관련된 항목은 PRI와 NI 번호
- PRI 번호는 사용자가 인위적으로 조작할 수 없음, 낮은 값일수록 우선순위가 높음
- NI 번호는 관리자와 사용자가 조작할 수 있는 우선순위 값, 낮은값일수록 우선순위가 높고 -20 부터 19까지 설정 가능
- PCB에 우선순위가 명시되어 있음
- 스케줄링 큐
- 운영체제가 매번 일일이 모든 PCB를 검사하여 먼저 자원을 이용할 프로세스를 결정하는 일은 매우 번거롭다.
- 운영체제는 프로세스들에 줄을 세워서 관리하는데, 이 줄을 스케줄링 큐로 구현하고 관리한다.
- 대표적으로 준비 큐와 대기 큐가 있음
- 준비 큐 (ready queue): CPU를 이용하고 싶은 프로세스들이 서는 줄
- 대기 큐 (waiting queue): 입출력장치를 이용하기 위해 대기 상태에 접어든 프로세스들이 서는 줄
- 운영체제는 PCB들이 큐에 삽입된 순서대로 프로세스를 하나씩 꺼내어 실행한다.
- 그중 우선순위가 높은 프로세스를 먼저 실행한다.
- 대기 큐에 있는 프로세스들은 입출력 작업이 완료되면 준비 큐로 이동된다.
- 선점형과 비선점형 스케줄링
- 선점형 스케줄링 : 프로세스가 CPU를 비롯한 자원을 사용하고 있더라도 운영체제가 프로세스로부터 자원을 강제로 빼앗아 다른 프로세스에 할당할 수 있는 스케줄링 방식
- 어느 한 프로세스의 자원 독점을 막고 프로세스들에 골고루 자원을 배분할 수 있음
- 그러나 컨텍스트 스위치가 그만큼 많이 일어나니까 오버헤드 발생
- 비선점형 스케줄링 : 다른 프로세스가 끼어들 수 없는 스케줄링 방식
- 오버헤드는 선점형보다 줄지만 대기 시간이 길어질 것
- 선점형 스케줄링 : 프로세스가 CPU를 비롯한 자원을 사용하고 있더라도 운영체제가 프로세스로부터 자원을 강제로 빼앗아 다른 프로세스에 할당할 수 있는 스케줄링 방식
11-2) CPU 스케줄링 알고리즘
- 스케줄링 알고리즘 종류
- 선입선출 (FCFS : Fisrt Come, First Served)
- 최단 작업 우선 스케줄링(SJF 스케줄링 : Shortest Job First)
- 라운드 로빈(round robin)
- 최소 잔여 시간 우선 스케줄링 (SRT : Shortest Remaining Time)
- 우선순위 스케줄링(priority)
- 다단계 큐 스케줄링(multilevel queue)
- 다단계 피드백 큐 스케줄링
'책 > 혼자 공부하는 컴퓨터 구조 + 운영체제' 카테고리의 다른 글
14장 가상메모리 (0) | 2023.04.03 |
---|---|
12장 프로세스 동기화 (0) | 2023.03.29 |
10장 프로세스와 스레드 (0) | 2023.03.26 |
9장 운영체제 시작하기 (0) | 2023.03.26 |
8장 입출력장치 (0) | 2023.03.23 |