Computer Science/Operating System

[OS] 운영체제 스케줄링 개요

kyxxn 2024. 5. 2. 19:52
728x90

T 반환시간 = T 끝난시간 - T 도착시간
T 반응시간 = T 실행 시작 시간 - T 도착시간

FIFO (먼저 온 애부터)

처음 온 애부터 처리함

SJF (최단 시간)

반환 시간 관점에서 제일 좋은 성능임
그러나, 도착 시간이 다르다면 ?

T response 응답시간

63.33sec

T turnarround 반환 시간

103.33sec

STCF (최소 잔여 시간 우선)

SJF에 선점 기능 추가됨
선점기능은 Context Switch 필요함

→ 새로운 작업이 들어오면, 실행 중인 것과 비교해서 더 작은 애 부터 시작함

→ 진행중인 작업 종료 시, 남은 작업 중 실행시간이 제일 짧은 것부터 시작

반환 시간 | 응답 시간

반응시간

  • 웹서버/DB에서 중요하게 생각

응답시간

  • 시분할 시스템의 경우 중요함
  • 작업이 도착해서 처음 실행될때까지 시간

라운드 로빈 스케줄링 (RR)

하나의 작업은 하나의 Time Slice만큼 수행,
이후 다른 작업과 교환되어 실행 큐로 이동함

타임 슬라이스 = 프로세스가 연속으로 수행되는 일정 시간

RR과 SJF 비교, (타임슬라이스 = 1sec)

R-R

  • T response: (0+1+2)/3 = 1sec
  • T turnarround: (13+14+15)/3 = 14

SJF

  • T response: (0+5+10)/3 = 5sec
  • T turnarround: (5+10+15)/3 = 10

반환시간은 SJF가 더 뛰어남

그러나 시분할 시스템에서는 응답시간이 더 중요하게 여겨짐

타임 슬라이스 길이에 따른 변화

  • 짧은 경우
    • 반응 시간 면에서 좋음
    • Context Switch 횟수가 증가함, 성능 및 효율 저하
  • 긴 경우
    • Context Switch는 짧게 함
    • 응답시간 면에서 나쁨

Incorporating I/O

모두 입출력을 수행하는 경우

인터럽트를 제공한다면 Blocked 상태가 됨

Blocked에 들어가면 프로세스 A가 I/O 작업하는 동안 B가 CPU 점유 가능

정리

  • SJF, STCF
    • 반환시간에는 최적화
    • 응답시간에는 최악임
  • RR
    • 위와 반대,

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

[OS] Proportional Share (비례 배분)  (0) 2024.05.04
[OS] MLFQ (Multi-Level Feedback Queue)  (0) 2024.05.03
[OS] Limited Direct Execution  (1) 2024.05.01
[OS] 프로세스 API in POSIX  (0) 2024.04.30
[OS] 프로세스 개요  (0) 2024.04.29