[WEEK 08] OS - Lecture 5. Process Scheduling

신호정 벨로그·2021년 9월 28일
0

Today I Learned

목록 보기
40/89

Lecture 5. Process Scheduling (1/4)

다중 프로그래밍 (Multi-Programming)

  • 여러 개의 프로세스가 시스템 내 존재

  • 자원을 할당할 프로세스를 선택해야 함: 스케줄링(Scheduling)

  • 자원 관리

  1. 시간 분할 관리 (time sharing): 하나의 자원을 여러 쓰레드들이 번갈아 가며 사용 (예: 프로세서)

* 프로세스 스케줄링(Process Scheduling): 프로세서 사용 시간을 프로세스들에게 분배

  1. 공간 분할 관리 (space sharing): 하나의 자원을 분할하여 동시에 사용 (예: 메모리)

프로세스 스케줄링

  • 프로세스 스케줄링의 목적: 시스템의 성능 향상 (응답 시간, 작업 처리량, 자원 활용도)

  • 프로세스 스케줄링의 기준: 프로세스의 특성, 시스템 특성, 프로세스의 우선순위, 프로세스의 총 실행 시간 등

  • 프로세스 스케줄링의 단계: 발생하는 빈도 및 할당 자원에 따른 구분 - 장기, 중기, 단기 스케줄링으로 분류

  1. Long-term Scheduling: 시스템에 제출할(커널에 등록할) 작업 결정

  2. Mid-term Scheduling: 메모리 할당 결정 (Memory Allocation)

  3. Short-term Scheduling: 프로세스 스케줄링 - 프로세서를 할당할 프로세스를 결정, 가장 빈번하게 발생

스케줄링 정책

선점 스케줄링 (Preemptive Scheduling)

  • 타의에 의해 자원을 뺏길 수 있음

  • 컨텍스트 스위치 오버헤드가 큼

  • 응답성이 높아짐

비선점 스케줄링 (Non-preemptive Scheduling)

  • 할당 받은 자원을 반납하기 전까지 사용

  • 컨텍스트 스위치 오버헤드가 적음

스케줄링 우선순위

정적 우선순위 (Static Priority)

  • 프로세스 생성시 결정된 우선순위가 유지됨

  • 구현이 쉽고 오버헤드가 적음

  • 시스템 환경 변화에 대한 대응이 어려움

동적 우선순위 (Dynamic Priority)

  • 프로세스 상태 변화에 의해 우선순위 결정

  • 구현이 복잡하고 우선순위 재계산 오버헤드가 큼

  • 시스템 변화에 유연한 대응 가능

Lecture 5. Process Scheduling (2/4) - FCFS, RR

1. FCFS (First-Come-First-Serve)

  • 스케줄링 정책: 비선점 스케줄링 (Nonpreemptive Scheduling)

  • 스케줄링 기준: 도착 시간 - 먼저 도착한 프로세스를 먼저 처리

  • 자원을 효율적으로 처리 가능

  • 일괄처리 시스템(Batch System)에 적합, 대화형 시스템(Interactive System)에 부적합

  • 단점: Convoy Effect(대기시간 > 실행시간), 긴 평균 응답시간

2. RR (Round-Robin)

  • 스케줄링 정책: 선점 스케줄링 (Preemptive Scheduling)

  • 스케줄링 기준: 1. 도착 시간 (ready queue 기준), 2. 먼저 도착한 프로세서를 먼저 처리

  • 자원 사용에 제한 시간(time quantum)이 있음: 프로세스가 할당된 시간이 지나면 자원 반납

  • 컨텍스트 스위치 오버헤드가 큼

  • 대화형, 시분할 시스템(Time-sharing System)에 적합

  • Time quantum이 시스템 성능을 결정하는 핵심 요소

Lecture 5. Process Scheduling (3/4) - SPN, SRTN, HRRN

3. SPN (Shortest-Process-Next)

  • 스케줄링 정책: 비선점 스케줄링 (Non-preemptive Scheduling)

  • 스케줄링 기준: 실행시간 - Burst time이 가장 작은 프로세스를 먼저 처리

  • 평균 대기시간(WT) 최소화

  • 시스템 내 프로세스 수 최소화

0개의 댓글