프로세스 스케줄링

MoOrY·2022년 11월 3일
0

운영체제

목록 보기
6/20

프로세스 스케줄링을 왜 해야하는가?

여러 개의 프로세스가 시스템 내 존재하는 다중 프로그래밍 환경에서
여러개의 프로세스 중, 자원을 할당해야 할 프로세스를 선택해야 하는데 이것을 스케줄링이라 한다.

스케줄링 개념

자원관리

시간분할Time Sharing 관리

하나의 자원을 여러 스레드들이 번갈아가며 사용 ex)프로세서
ex) 프로세스 스케줄링: 프로세서 사용 시간을 프로세스들에게 분배

공간분할 Space Sharing 관리

하나의 자원을 분할하여 동시에 사용 ex)메모리

스케줄링의 목적

시스템의 성능향상

시스템 성능 지표

시스템 성능 지표로는 여러가지가 있지만, 그 중 가장 대표적인 세가지를 꼽아보면

응답시간Response Time
작업 요청Submission으로부터 응답을 받을때까지의 시간

작업처리량
단위 시간 동안 완료된 작업의 수

자원 활용도
주어진 시간동안 자원이 활용된 시간 (주어진 시간 / 자원이 활용된 시간)

목적에 맞는 지표를 고려하여 스케줄링 기법을 선택해야 한다.

스케줄링 기준Criteria

스케줄링 기법이 고려하는 항목들로는
프로세스의 특성
시스템 특성
프로세스의 긴급성
프로세스 우선순위
프로세스 총 실행 시간
등이 있다.

프로세스의 특성

I/O Bounded or Compute Bounded

프로세스 수행시간Cpu 사용시간 + I/O 대기시간 으로 구성되어 있는데,
CPU를 더 많이 사용하는 것을 CPU Burst,
I/O 대기시간은 I/O Burst라고 한다.
Burst Time은 스케줄링의 중요한 기준 중 하나이다.

스케줄링의 단계Level

발생하는 빈도 및 할당 자원에 따른 구분
얼마나 자주 일어나냐에 따른 구분이다.

Long-Term Scheduling

장기 스케줄링으로, 커널에 등록할 작업을 결정하는 Job Scheduling이 속해 있다.
시스템 내의 프로세스 수를 조절하는 다중 프로그래핑 정도Degree조절 역할을 한다.
CPU와 I/O가 놀지 않고 모두 일하게 할 수 있도록
I/O Bounded와 Compute Bounded 프로세스들을 잘 섞어서 선택해야 한다.
시분할 시스템에선 모든 작업을 시스템에 등록하므로 Long Term Scheduling이 불필요하다.

Mid-Term Scheduling

메모리 할당 결정(Memory Allocation)과 관련있다.
어떤 프로세스에게 메모리를 줄지, 빼앗을지 결정한다.
Ready나 ASleep 상태에서 Suspended 상태로 전이하는 상황에 관여한다

Short-Term Scheduling

프로세서를 할당할 프로세스를 결정하는 Processor Scheduling와 관련있다.
Ready상태에서 Running 상태로 전이시키는 상황에 관여하며,
가장 빈번하게 발생하기 때문에 매우 빨라야 한다

스케줄링 정책Policy

스케줄링을 어떤 방법을 사용할 것인가?를 선택할 수 있다.

선점 vs 비선점

Preemptive vs Non - Preemptive scheduling

선점 Non - Preemptive scheduling

할당 받을 자원을 스스로 반납할 때 까지 사용(빼앗기지 않는다)
장점으로는 한번 자원을 받으면 계속 일을 할 수 있으므로 Context switch overhead가 적다
단점으로는 급한 일을 먼저 처리하지 못하고, 원래 하던 일이 끝날 때까지 기다려야 하여 우선순위가 자주 역전되며,
평균 응답시간이 증가한다

비선점 Preemptive scheduling(우선순위)

타의에 의해 자원을 빼앗길 수 있다
예) 할당 시간 종료, 우선순위가 높은 프로세스의 등장
프로세스가 자주 바뀌므로 Context switch overhead가 크다
Time-Sharing system, real time system등에 적합하다

Priority(우선순위)

프로세스의 중요도

정적 우선순위Static Priority

프로세스 생성시 결정된 우선순위가 유지된다.
구현이 쉽고 overhead가 적지만, 시스템 환경 변화에 대한 대응이 어렵다

동적 우선순위Dynamic Priority

프로세스의 상태 변화에 따라 우선순위 변경
구현이 복잡하고, 우선순위 재계산에 따른 Overhead가 크다
하지만 시스템 환경 변화에 유연한 대응이 가능하다

profile
필기용 블로그입니다.

0개의 댓글