이 글은 "혼자 공부하는 컴퓨터 구조 + 운영체제"를 읽고 이해한 내용을 복습하기 위해 작성하는 글입니다.
이미지 출처 : 혼자 공부하는 컴퓨터 구조 + 운영체제
CPU 스케줄링
- 운영체제가 프로세스들에게 CPU 자원을 할당해 주는 것
- 우선순위에 따라 할당 (빨리 처리해야하는 것 : 입출력작업이 많은 것들)
스케줄링 큐 : 할당을 기다리는 프로세스들을 대기 시키는 것
큐는 일반적으로 선입선출의 방식이지만 여기서의 큐는 대기시키는 역할만 하고 반드시 선입선출로 작동하지는 않는다
선점형 스케줄링
- 한 프로세스가 CPU 사용 중, 다른 프로세스가 CPU 사용요청을 보낼때 발생
비점형 스케줄링
- 하나의 프로세스가 CPU에게 자원을 할당받아 사용하고 있다면, 그 프로세스가 종료, 대기상태에 들어가기 전까지는 다른 프로세스에게 자원을 할당하지 않는 것
First Come First Scheduling (선입선처리 스케줄링)
호위효과 : 실행시간이 긴 프로세스가 먼저 할당되면 뒤에 있는 프로세스들은 실행시간보다 대기시간이 길어지는 것
Shortest Job First Scheduling (최단 작업 우선 스케줄링)
Round Robin Scheduling
FCFS 스케줄링에 타임슬라이스라는 개념이 더해짐
타임 슬라이스 : 각 프로세스가 CPU를 사용할 수 있는 정해진 시간
따라서 프로세스마다 정해진 타임 슬라이스만큼의 시간동안만 돌아가며 CPU 사용
Shortest Remaining Time Scheduling (최소 잔여시간 스케줄링)
Priority Scheduling (우선순위 스케줄링)
프로세스들에게 우선순위를 부여하고 그 순위대로 실행한다.
우선순위가 같다면 선입 선처리로 진행된다.
기아 현상이 발생할 수 있음.
우선순위에 철저히 기반하기 때문에 후순위 프로세스는 다른 선순위 프로세스들에게 계속 밀려나는 현상
기아현상을 방지 하기 위해 에이징이라는 기법 사용
에이징 기법 : 후 순위 프로세스들의 순위를 점차 증가시키는 방법
Multievel Queue Scheduling (다단계 큐 스케줄링)