본문 바로가기
학교 공부/시스템

[운영체제] CPU 스케줄링이란?

by 그적 2020. 3. 3.

CPU 스케줄링(CPU Scheduling)이란?
 : 컴퓨터 자원을 효율적으로 관리하기 위해 프로세스들 사이에서 CPU 할당을 위한 우선순위를 관리하는 일


역할에 의한 구분
1) 장기 스케줄러(Long-Term)
 - 실행할 작업을 준비 큐에서 꺼내 메인 메모리에 적재함.   >> 작업 스케줄링, 상위 스케줄링으로도 불림
 - 메인 메모리에 적재된 프로세스의 양을 판단하여 조절함.   >> 멀티 프로그래밍의 정도를 결정
 - Admit(생성->준비), Release(실행-> 종료) 일 때 관리. 메모리와 디스크 사이의 스케줄링을 담당

2) 중기 스케줄러(Mid-Term)
 - 어떤 프로세스들이 CPU를 할당받을 것인지 결정함.
 - CPU 사용에 대한 프로세스들을 중재하여 일시 보류&재활성화함.   >> 교체(swapping) 기법
             1) 메모리에서 디스크로 잠시 나가는 상태 - 스왑 아웃
             2) 디스크에서 메모리로 다시 들여오는 상태 - 스왑 인
 - Dispatch(준비->실행), Timer Run out(실행-> 준비) 일 때 관리. CPU와 메모리 사이의 스케줄링을 담당

 3) 단기 스케줄러(Dispatch)
 - Dispatcher가 준비 큐에 있는 프로세스 중 먼저 도착한 프로세스에게 CPU를 할당   >> 프로세스 스케줄링
 - CPU는 프로그램을 실행시키기 전에 먼저 실행을 위한 데이터 확보가 필요한데, 그 역할을 단기 스케줄링이 담당함.
         

역할에 따른 스케줄링


 시스템에 새로운 작업이 들어오면 장기 스케줄링을 이용하여 준비 큐에 적재를 시켜두고, 적재된 프로세스 중에서 실행할 프로세스를 선택해야 하는 것은 단기 스케줄링이다. 시스템에서 시간이 꽤 걸리더라도 신중하게 프로세스를 선택하고, 준비 큐 안에서 실행할 프로세스를 선택하는 것이 빈도수가 더 많고 속도가 더 빠르기  때문에 작업 빈도는 장기 스케줄링 보다 단기 스케줄링이 더 많다. (빈도수 : 단기 스케줄링 > 장기 스케줄링)


점유 방식에 의한 구분
1) 선점 스케줄링
 : 하나의 프로세스가 CPU를 할당 받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU 점유 가능한 기법이다.
 장점) 빠른 응답 -> 대화식 시분할 시스템에 용이
 단점) Overhead 발생 -> context switching이 걸린 시간과 메모리
 - 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록이 필요
 - 종류에는 라운드로빈, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등의 알고리즘이 존재

2) 비선점 스케줄링
 : 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다.
장점) 응답 시간 예상, 일괄 처리 방식에 적합
단점) 짧은 작업에도 장기간 대기하는 경우 발생
 - 종류에는 FCFS, SJF, 우선순위, HRN, 기한부 등의 알고리즘이 존재

댓글