CPU 선점 스케줄링 기법

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 응답 환경– 처리시간 편차가 적은 특정 프로세스 환경

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^