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, 기한부 등의 알고리즘이 존재
'학교 공부 > 시스템' 카테고리의 다른 글
[운영체제] 병행성 제어와 교착상태 (1) | 2020.03.06 |
---|---|
[운영체제] CPU 스케줄링 알고리즘 (0) | 2020.03.05 |
[운영체제] 프로세스란? (+ 문맥전환이란?) (0) | 2020.03.03 |
[운영체제] 운영체제란? (0) | 2020.03.03 |
[System] 메모리 구조 (1) | 2019.11.01 |
댓글