-
스케줄링 알고리즘
선입 선처리 스케줄링
- =FCFS 스케줄링
- 준비큐에 삽입된 순서대로 처리하는 비선점 스케줄링
- 먼저 CPU를 요청한 프로세스로부터 CPU 할당
- 단점 : 프로새스들이 기다리는 시간이 매우 길어질 수 있다는 부작용(=호위 효과)
최단작업 우선 스케줄링
- SJF(Shorted Job First) 스케줄링
- CPU 사용시간이 긴 프로세스는 나중에 실행, CPU 사용 시간이 짧은 프로세스는 먼저 실행
- CPU 사용시간이 가장 짧은 프로세스부터 처리하는 스케줄링 방식
라운드 로빈 스케줄링
- =RR 스케줄링
- 선입 선처리 스케줄링 + 타임 슬라이스
- 타임 슬라이스 : 각 프로세스가 CPU를 사용할 수 있게 정해진 시간
- 정해진 슬라이스 만큼 시간동안 돌아가며 CPU를 이용하는 선점형 스케줄링
- 큐에 삽입된 프로세스들은 순서대로 CPU를 이용하되 정해진 시간만큼만 이용
- 정해진 시간을 모두 사용하였음에도 아직 완료되지 않은 프로세스 있다면큐에 맨뒤에 삽입(문맥 교환)
최소 잔여시간 우선 스케줄링
- =SRT 스케줄링
- 최단 작업 우선 스케줄링 + 라운드 로빈 스케줄링
- 정해진 시간만큼 CPU를 이용하되, 다음으로 CPU를 사용할 프로세스는 남은 작업 시간이 가장 적은 프로세스 선택
우선순위 스케줄링
- 프로세스들에 우선순위 부여하고, 우선순위 높은 프로세스부터 실행
- 우선순위가 같은 프로세스들은 선입 선처리로 스케줄링
- 우선순위 스케줄링은 기아 현상이 발생가능
- 우선순위 높은 프로세스만 실행이 계속 될수 있음 이로인해 우선순위가 낮은 프로세스는 실행이 계속 연기됨
- 이를 방지하기 위해 에이징을 택함
- 에이징은 오랫동안 대기한 프로세스들의 우선순위를 점차 높이는 방식이다.
- 대기 중인 프로세스의 우선순위를 마치 나이 먹듯 점차 증가시키는 방법
다단계 큐 스케줄링
- = multilevel queue 스케줄링
- 우선순위 스케줄링의 발전된 형태
- 우선순위별로 준비 큐를 여러개 사용하는 스케줄링 방식
- 우선 순위가 가장 높은 큐에 있는 프로세스를 먼저처리
- 우선순위가 가장 높은 큐가 비어있으면 그 다음 우선순위의 큐를 처리
다단계 피드백 큐 스케줄링
- 다단계 큐 스케줄링의 발전 형태
- 큐 간의 이동이 가능한 다단계 큐 스케줄링
- 다단계 큐 스케줄링에서는 기본적으로 큐 간의 이동이 불가