I. 우선 순위 기반 선점 방식, CPU 선점 스케줄링 기법
가. CPU 선점 기법의 개념
- 우선순위가 높은 프로세스가 현재 프로세스를 중지 시키고 자신이 CPU를 점유하는 스케줄링 기법
나. CPU 선점 기법 개요도
II. CPU 선점 기법
알고리즘 | 처리방식 |
---|---|
RR (Round Robin) | – 대화식 사용자 위한 시분할 시스템 – 준비 큐(FCFS)에 의해 보내진 각 프로세스는 같은 크기의 CPU 시간을 할당 받음 * First Come First Speed – 프로세스가 할당된 시간 내에 처리 완료 못하면 준비 큐(FCFS) 리스트의 가장 뒤로 보내지고 CPU는 대기중인 다음 프로세스로 넘어감 – 일반적 시간 할당량 100 밀리 초에서 1, 2초 사이 – 할당 시간 크면 FCFS, 작으면 문맥 교환 발생 – 문맥 교환: CPU를 다른 프로세스로 교환하기 위하여 이전의 프로세스의 상태를 보관하고 새로운 프로세스의 보관된 상태를 적재하는 작업 – 프로세스: 컴퓨터 내에서 실행중인 프로그램의 인스턴스 |
SRT (Short Remaining Time) | – 가장 짧은 시간 소요 판단되는 프로세스 수행 – 남은 처리 시간이 짧은 프로세스가 준비 큐에 생기면 언제라도 프로세스 선점 – 긴 작업은 SJF 보다 대기 시간이 길다 |
다단계 큐 (Multi-level Queue) | – 작업들을 여러 종류의 그룹의 분할 – 여러 개의 큐를 이용 상위 단계 작업에 의해 하위 단계 작업이 선점 당함 – 준비 상태 큐를 여러 종류로 분할(작업 분류 별 묶음) 하지만 다른 큐로 작업 이동 불가 – 각 큐는 자신만의 독자적인 스케줄링을 가짐 |
다단계 피드백 큐 (Multi-Level Feedback Queue) | – 입출력 위주와 CPU 위주인 프로세스의 특성에 따라 큐마다 서로 다른 CPU Time Slice 부여 – 새로운 프로세스는 높은 우선순위, 실행 시간이 길어질수록 점점 낮은 우선순위 큐로 이동 (맨 마지막 단계에서는 Round Robin 처리) – 하위단계일수록 할당 시간 증가(공평성 부여) |
III. CPU 선점과 비선점 기법 비교
구분 | 선점(Preemptive) 스케줄링 | 비선점(Non-preemptive) 스케줄링 |
---|---|---|
개념 | – 우선순위가 높은 다른 프로세스가 현재 프로세스를 중지 시키고 자신이 CPU 점유 | – 한 프로세스가 CPU를 할당 받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유불가 |
특징 | – 하드웨어(Timer) 필요 – 공유 데이터에 대한 프로세스 동기화 필요 | – 특수 하드웨어(Timer) 없음 – 종료 시까지 계속 CPU 점유 |
장점 | – 비교적 빠른 응답 – 대화식 시분할 시스템에 적합 | – 응답시간 예상이 용이 – 모든 프로세스에 대한 요구를 공정하게 처리 |
단점 | – 높은 우선순위 프로세스들이 들어오는 경우 오버헤드를 초래 | – 짧은 작업을 수행하는 프로세스가 긴 작업 종료 시까지 대기 |
알고리즘 | Round Robin, SRT, 다단계 큐, 다단계 피드백 큐 | 우선순위 스케줄링, 기한부 스케줄링, FCFS, SJF, HRN |
활용 | – 실시간 응답 환경, Deadline 응답 환경 | – 처리시간 편차가 적은 특정 프로세스 환경 |