관리 메뉴

나만을 위한 블로그

[혼공컴운] 11. CPU 스케줄링 본문

책/혼자 공부하는 컴퓨터 구조 + 운영체제

[혼공컴운] 11. CPU 스케줄링

참깨빵위에참깨빵 2023. 12. 28. 20:16
728x90
반응형
CPU 스케줄링 개요

 

프로세스 우선순위

 

대부분의 프로세스들은 CPU, 입출력장치를 모두 사용하며 실행된다. 프로세스는 실행 상태, 대기 상태를 반복하며 실행된다

프로세스 종류마다 입출력장치 이용 시간, CPU 이용 시간의 양에는 차이가 있다. 비디오 재생, 디스크 백업 작업 담당 프로세스같이 입출력 작업이 많은 프로세스(입출력 집중 프로세스)도 있고 CPU 작업이 많은 프로세스(CPU 집중 프로세스)도 있다

입출력 집중 프로세스는 실행 상태보다 입출력을 위한 대기 상태에 더 많이 머무르고 CPU 집중 프로세스는 실행 상태에 더 많이 머무름

 

상황과 프로세스 중요도에 맞게 프로세스가 CPU를 쓸 수 있게 하기 위해 OS는 프로세스마다 우선순위를 부여

OS는 각 프로세스의 PCB에 우선순위를 명시하고 PCB의 우선순위를 기준으로 먼저 처리할 프로세스를 결정

 

스케줄링 큐

 

CPU를 쓰고 싶은 프로세스, 메모리에 올라가고 싶은 프로세스들의 줄

준비 큐 : CPU를 쓰고 싶은 프로세스들이 서는 줄

대기 큐 : 입출력장치를 쓰기 위해 대기 상태가 된 프로세스들이 서는 줄

 

선점형, 비선점형 스케줄링

 

선점형 스케줄링 : 프로세스가 CPU를 비롯한 자원을 쓰고 있어도 OS가 프로세스로부터 자원을 강제로 뺏어서 다른 프로세스에 할당할 수 있는 스케줄링 방식 (대부분 OS가 차용)

비선점형 스케줄링 : 하나의 프로세스가 자원을 쓰고 있다면 그 프로세스가 종료되거나 대기 상태가 되기 전까진 다른 프로세스가 낄 수 없는 스케줄링 방식

 

CPU 스케줄링 알고리즘

 

선입 선처리 스케줄링(FCFS 스케줄링)

 

준비 큐에 삽입된 순서대로 프로세스들을 처리하는 비선점형 스케줄링 방식

CPU를 먼저 요청한 프로세스부터 CPU 할당

 

최단 작업 우선 스케줄링(SJF 스케줄링)

 

기본적으로 비선점형 스케줄링 알고리즘으로 분류되지만 선점형으로 구현될 수도 있다

 

라운드 로빈 스케줄링

 

선입 선처리 스케줄링 + 타임 슬라이스(각 프로세스가 CPU를 쓸 수 있는 정해진 시간)

타임 슬라이스 크기가 중요

 

최소 잔여시간 우선 스케줄링(SRT 스케줄링)

 

최단 작업 우선 스케줄링 + 라운드 로빈 알고리즘

프로세스들은 정해진 타임 슬라이스만큼 CPU를 쓰고 CPU를 사용할 다음 프로세스는 남은 작업 시간이 가장 적은 프로세스가 선택됨

 

우선순위 스케줄링

 

프로세스들에 우선순위를 부여하고 가장 높은 우선순위를 가진 프로세스부터 실행하는 스케줄링 알고리즘

 

다단계 큐 스케줄링

 

우선순위 스케줄링의 발전된 형태. 우선순위 별로 준비 큐를 여럿 사용하는 스케줄링 방식

 

다단계 피드백 큐 스케줄링

 

다단계 큐 스케줄링의 발전된 형태. 프로세스들이 큐 사이를 이동할 수 있어서, 새로 준비 상태가 된 프로세스는 우선순위가 가장 높은 우선순위 큐에 삽입되고 일정 시간 동안 실행됨

구현이 복잡하지만 가장 일반적인 CPU 스케줄링 알고리즘

반응형
Comments