프로세스 스케줄링: Difference between revisions
From IT Wiki
(새 문서: ;Process Scheduling 한정된 CPU자원을 효율적으로 사용하기 위해 여러 프로세스에 CPU 자원을 분배하기 위한 기법 == 비선점 스케줄링 == ; 이미...) |
|||
(5 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[[분류:운영체제]] | |||
;Process Scheduling | ;Process Scheduling | ||
한정된 CPU자원을 효율적으로 사용하기 위해 여러 프로세스에 CPU 자원을 분배하기 위한 기법 | 한정된 CPU자원을 효율적으로 사용하기 위해 여러 프로세스에 CPU 자원을 분배하기 위한 기법 | ||
== 비선점 스케줄링 == | == 선점 스케줄링과 비선점 스케줄링 == | ||
=== 비선점 스케줄링 === | |||
; 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗을 수 없는 스케줄링 | ; 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗을 수 없는 스케줄링 | ||
;[[비선점 스케줄링|비선점 스케줄링 자세히 보기]] | |||
* 모든 프로세스에 대한 요구를 공정하게 처리할 수 있다. | * 모든 프로세스에 대한 요구를 공정하게 처리할 수 있다. | ||
* 일괄처리방식에 접합하다. | * 일괄처리방식에 접합하다. | ||
* 중요한 짧은 작업이 중요하지 않은 긴 작업을 기다리는 등의 비효율이 발생한다. | * 중요한 짧은 작업이 중요하지 않은 긴 작업을 기다리는 등의 비효율이 발생한다. | ||
* 응답 시간 예측이 용이하다. | * 응답 시간 예측이 용이하다. | ||
* | * '''대표적 알고리즘''': FCFS(FIFO), SJF, HRN, 우선순위, 기한부 등 | ||
== 선점 스케줄링 == | === 선점 스케줄링 === | ||
; 프로세스가 CPU를 할당받아 실행 중에도 우선순위가 높은 다른 프로세스가 CPU를 빼앗을 수 있는 스케줄링 | ; 프로세스가 CPU를 할당받아 실행 중에도 우선순위가 높은 다른 프로세스가 CPU를 빼앗을 수 있는 스케줄링 | ||
;[[선점 스케줄링|선점 스케줄링 자세히 보기]] | |||
* 우선순위가 높은 프로세스 위주로 빠르게 처리할 수 있다. | * 우선순위가 높은 프로세스 위주로 빠르게 처리할 수 있다. | ||
* 빠른 응답시간을 요구하는 대화식 시분할 시스템에 주로 사용된다. | * 빠른 응답시간을 요구하는 대화식 시분할 시스템에 주로 사용된다. | ||
* 선점 시간 배당을 위한 타이머 클럭이 필요하며, 선점으로 인한 많은 오버헤드를 초리한다. | * 선점 시간 배당을 위한 타이머 클럭이 필요하며, 선점으로 인한 많은 오버헤드를 초리한다. | ||
* [[선점 스케줄링]] | * '''대표적 알고리즘''': SRT, RR, 선점 우선순위, MLQ, MLFQ 등 | ||
== 요약 == | |||
{| class="wikitable" | |||
! 구분 | |||
! 기법 | |||
! 설명 | |||
! 문제/해결 | |||
|- | |||
| rowspan="3" | 비선점 | |||
| [[FCFS]] | |||
| 먼저 들어온 프로세스 먼저 처리 | |||
| Convoy Effect 발생 | |||
|- | |||
| [[SJF]] | |||
| 처리시간이 짧은 프로세스부터 처리 | |||
| Starvation 발생 | |||
|- | |||
| [[HRN]] | |||
| 짧은 작업시간이면서 대기시간이 긴 프로세스부터 처리 | |||
| Starvation 해결 | |||
|- | |||
| rowspan="6" | 선점 | |||
| [[RR|라운드 로빈]] | |||
| 먼저 들어온 순서대로 일정 시간만큼만 처리 | |||
| | |||
|- | |||
| [[SRT]] | |||
| 남은 시간이 짧은 프로세스부터 처리 | |||
| | |||
|- | |||
| [[MLQ]] | |||
| 우선순위별로 큐를 분리하여 다양한 스케줄링 적용 | |||
| Starvation 발생 | |||
|- | |||
| [[MLFQ]] | |||
| MLQ에서 큐 간 이동하여 우선순위 조정 | |||
| Starvation 해결 | |||
|- | |||
| [[RM]] | |||
| [[RTOS]]에서 요청 주기가 짧은 순서대로 처리 | |||
| | |||
|- | |||
| [[EDF]] | |||
| [[RTOS]]에서 마감 시간이 임박한 순서대로 처리 | |||
| 마감시간 계산 어려움 | |||
|} |
Latest revision as of 14:51, 15 September 2020
- Process Scheduling
한정된 CPU자원을 효율적으로 사용하기 위해 여러 프로세스에 CPU 자원을 분배하기 위한 기법
선점 스케줄링과 비선점 스케줄링[edit | edit source]
비선점 스케줄링[edit | edit source]
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗을 수 없는 스케줄링
- 비선점 스케줄링 자세히 보기
- 모든 프로세스에 대한 요구를 공정하게 처리할 수 있다.
- 일괄처리방식에 접합하다.
- 중요한 짧은 작업이 중요하지 않은 긴 작업을 기다리는 등의 비효율이 발생한다.
- 응답 시간 예측이 용이하다.
- 대표적 알고리즘: FCFS(FIFO), SJF, HRN, 우선순위, 기한부 등
선점 스케줄링[edit | edit source]
- 프로세스가 CPU를 할당받아 실행 중에도 우선순위가 높은 다른 프로세스가 CPU를 빼앗을 수 있는 스케줄링
- 선점 스케줄링 자세히 보기
- 우선순위가 높은 프로세스 위주로 빠르게 처리할 수 있다.
- 빠른 응답시간을 요구하는 대화식 시분할 시스템에 주로 사용된다.
- 선점 시간 배당을 위한 타이머 클럭이 필요하며, 선점으로 인한 많은 오버헤드를 초리한다.
- 대표적 알고리즘: SRT, RR, 선점 우선순위, MLQ, MLFQ 등
요약[edit | edit source]
구분 | 기법 | 설명 | 문제/해결 |
---|---|---|---|
비선점 | FCFS | 먼저 들어온 프로세스 먼저 처리 | Convoy Effect 발생 |
SJF | 처리시간이 짧은 프로세스부터 처리 | Starvation 발생 | |
HRN | 짧은 작업시간이면서 대기시간이 긴 프로세스부터 처리 | Starvation 해결 | |
선점 | 라운드 로빈 | 먼저 들어온 순서대로 일정 시간만큼만 처리 | |
SRT | 남은 시간이 짧은 프로세스부터 처리 | ||
MLQ | 우선순위별로 큐를 분리하여 다양한 스케줄링 적용 | Starvation 발생 | |
MLFQ | MLQ에서 큐 간 이동하여 우선순위 조정 | Starvation 해결 | |
RM | RTOS에서 요청 주기가 짧은 순서대로 처리 | ||
EDF | RTOS에서 마감 시간이 임박한 순서대로 처리 | 마감시간 계산 어려움 |