Computer/Operating system

09 Uniprocessor Scheduling(2)

코머 2021. 10. 26. 02:52

2. Scheduling algorithm (시험 반드시 출제)

Process Scheduling Example

- Arrival Time : 프로세스가 ready queue에 도착한 시간

- Service Time : 프로세스 실행 시작 후 종료되거나 I/O 함수호출로 대기 큐에 이동하기 전까지의 실행 예상 시간

  스스로 blocking 될 때까지의 시간

 Frist-Come-First-Served [FCFS]

: Ready queue에 들어 온 순서대로 실행 (FIFO)

- Ready queue에서 가장 오랫동안 있었던 (대기시간이 가장 긴) 프로세스가 가장 우선순위가 높음

- 비선점형 스케줄링 

- 짧은 작업의 프포레스가 긴 작업의 프로세스 때문에 오랫동안 Ready Queue에서 기다려야 하는 경우

1) CPU-bound processes (유리)

 - I/O가 거의 없는 계산 위주의 프로세스

 - 10억 개의 linked list 또는 tree 노드 처리

2) I/O - bound processes (불리)

 - 워드프로세서처럼 I/O 위주의 프로세스 (키보드/모니터 작업) 

 

Shortest Process Next 

: 짧은 실행 시간을 가진 프로세스를 우선적으로 실행

- 실행 시간이 짧은 프로세스가 가장 우선순위 높음

- 비선점형 스케줄링

- 실행 중인 프로세스가 완료된 후에 새로 스케줄링 시작

- 실행 시간이 큰 프로세스는 starvation (불리)

- 프로그램의 서비스 시간을 예측하기 쉽지 않다 (그래서 실제로 쓰이지는 않는 알고리즘)

 

Shortest Remaining Time

: 짧은 실행 시간을 가진 프로세스를 우선적으로 실행 (SPN의 선점형 버전)

- 선점형 스케줄링 : 새로운 프로세스가 등장할 때마다 다시 새로 스케줄링 시작

- 남아 있는 시간이 같을 경우 먼저 들어온 프로세스가 우선순위 높음

 

Highest Response Ratio Next [HRRN]

 : 프로그램 내에서 상대적으로 대기 시간이 큰 프로세스가 우선적으로 실행

- 비선점형 스케줄링

- 최대 반응 비율(R) = (프로세스의 서비스 시간 + 대기 시간) / 프로세스의 서비스 시간

 

Feedback

1) 이전의 알고리즘

- SPN, SRT, HRRN 알고리즘은 짧은 작업의 프로세스를 우선적으로 실행하고자 하는 전략

- 문제점 : 실행시간을 미리 알아야하기 때문에 현실에서 적용하기 힘듦

2) feedback 알고리즘

: 실행시간이 긴 알고리즘에게 패널티 부여

- 실제 실행시간을 몰라도 SRT와 비슷한 효과

- 종료되거나 주어진 time quantum을 소진한 후에만 다시 스케줄링 함 (새 작업이 도착했다고 바로 스케줄링하지 않음)

실행

3) feedback 알고리즘 실행 순서

 위쪽 레디 큐에 있다가 한 번 실행된 후 아래 레디 큐로 이동 (FIFO 방식)

    레디 큐에 자기 혼자 있을 경우 아래 레디 큐로 내려가지 않음

② 실제로 processor은 하나만 존재함,

     하나의 CPU가 여러 레디 큐에 있는 프로세스를 실행, 위쪽 레디 큐가 비면 아래 쪽 레디 큐에서 프로세스를 선택하여 실행함

  아래로 내려갈 수록 실행 시 주어지는 time quantum은 길어진다(2ⁱ). 프로세스의 우선순위는 낮아짐

 

Round-Robin

: time quantum에 기반을 둔 선점형 알고리즘

- 종료되거나 주어진 time quantum을 소진한 후에만 다시 스케줄링 함 (새 작업이 도착했다고 바로 스케줄링하지 않음)

- 새로 도착한 프로세스를 먼저 RQ에 넣고 time quantum을 소진한 프로세스를 그 뒤에 넣는다.

- CPU 바인딩 프로세스 선호 (I/O 프로세스는 자기에게 주어진 time quantum을 다 사용하지 못한 채 중단되는 경우가 자주 발생)

1) 구현 전략

① Clock interrupt 가 주기적으로 생성됩니다.
②  interrupt 가 발생하면 현재 실행 중인 프로세스가 읽기 대기열에 배치됩니다.
③ 다음 프로세스 준비 작업이 선택됩니다.

 

Virtual Round-Robin

: Round-Robin에서 주어진 time quantum을 다 사용하지 못한 점을 보완

- 대기 큐에서 깨어난 프로세스를 레디 큐로 옯기지 않고 보조 큐로 옮김

- 스케줄러는 보조 큐에 프로세스가 있을 경우 항상 보조 큐 프로세스를 먼저 실행함

- 이 경우 실행된 프로세스는 앞 전에 다 사용하지 못한 time quantum만큼 실행한 후 다시 레디 큐로 이동

- 스케줄러는 보조 큐가 빈 경우에만 레디 큐에서 다음 프로세스 선택

 

Various Scheduling Policies

  우선순위 측정 함수 Decision Mode Response Time
FCFS max [𝑤] 비선점형 실행시간 긴 프로세스 있을 경우 응답 시간 길어짐
Round
Robin
max [𝑤] 선점형 (at time quantum) 실행시간이 짧은 프로세스의 경우 좋은 응답 시간 제공
SPN min[𝑠]  비선점형 서비스 시간을 알아야 함
SRT min[𝑠-𝑒] 선점형 (at arrival) 서비스 시간을 알아야 함
HRRN max[(𝑤+𝑠)/𝑠] 비선점형 서비스 시간을 알아야 함
Feedback (see text) 선점형 (at time quantum) 괜찮은 응답 시간

𝑤 : 대기 시간

𝑒 : 지금까지 실행된 시간

𝑠 : 프로그램 실행하는데 필요한 서비스 시간

 

 

 

'Computer > Operating system' 카테고리의 다른 글

09 Uniprocessor Scheduling(1)  (0) 2021.10.26
08 Virtual Memory (2)  (0) 2021.10.25
08 Virtual Memory (1)  (0) 2021.10.25
ch07. Memory Mangement  (0) 2021.10.12
Ch03 Processes2  (0) 2021.09.23