본문 바로가기
TIL (Today I Learned)/컴퓨터 시스템(CS)

[CS] Process Scheduler #1

by 둥굴프 2022. 12. 16.
이 포스팅은 한국기술교육대학교 김덕수 교수님의 운영체제 강의를 참고하여 작성되었습니다.

 

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

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

 

자원을 할당 할 프로세스를 선택 해야함

- 스케줄링

 

자원 관리

- 시간 분할 (time sharing) 관리

하나의 자원을 여러 스레드들이 번갈아 가며 사용

예) 프로세서 (Processor)

프로세스 스케줄링 (Process scheduling)

> 프로세서 사용시간을 프로세스들에게 분배

- 공간 분할 (space sharing) 관리

하나의 자원을 분할하여 동시에 사용

예) 메모리 (memory)

 

스케줄링(Scheduling)의 목적

시스템의 성능(performance) 향상

 

대표적 시스템 성능 지표 (index)

- 응답시간 (response time)

작업 요쳥(submission)으로부터 응답을 받을때까지의 시간

- 작업 처리량 (throughput)

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

- 자원 활용도 (resource utilization)

주어진 시간 (Tc)동안 자원이 활용된 시간(Tr)

 

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

 

김덕수 교수님 강의자료 中

 

Compute-bounded : CPU burst > I/O burst

I/O bounded : CPU burst < I/O burst

 

Long-term Scheculing

job scheduling

시스템에 제출할 (Kernel에 등록할)작업(job) 결정

 

다중프로그래밍 정도(degree) 조절

시스템 내에 프로세스 수 조절

 

I/O-bounded 와 compute-bounded 프로세스들을 잘 섞어서 선택

왜? 섞지 않으면 낭비되는 자원이 발생한다. > 시스템의 효율이 올라간다.

 

시분할 시스템에서는 모든 작업을 시스템에 등록

Long-term scheduling이 불필요

 

Mid-term Scheculing

메모리 할당 결정 (memory allocation)

intermediate-level scheduling

Swapping (swap-in/swap-out)

 

Short-term Scheculing

Process sheduling

low-level scheduling

프로세서를 할당할 프로세스를 결정

 

가장 빈번하게 발생

Interrupt, block(I/O), time-out, Etc.

매우 빨라야 한다.

 

김덕수 교수님 강의자료 中

 

스케줄링 정책

선점 vs 비선점

선점 : 뺏을 수 있다.

비선점 : 뺏을 수 없다.

우선순위

 

Preemptive / Non-preemptive scheduling

Non-preemptive scheduling

- 할당 받을 자원을 스스로 반납할 때까지 사용

- 장점 : context switch overhead가 적음

- 단점 : 잦은 우선순위 역전, 평균 응답 시간 증가

 

Preemptive scheduling

- 타의에 의해 자원을 빼앗길 수 있음

예) 할당 시간 종료, 우선순위가 높은 프로세스 등장

- Context switch overhead가 큼 > system overhead 가 크다.

- Timer-sharing system, real-time system 등에 적함 > 응답성이 높아진다.

 

 

 

Priority

프로세스의 중요도

 

Static priority (정적 우선순위)

- 프로세스 생성시 결정된 priority가 유지 됨

- 구현이 쉽고, overhead가 적음

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

 

Dynamic priority (동적 우선순위)

- 프로세스의 상태 변화에 따라 priority 변경

- 구현이 복잡, priority 재계산 overhead가 큼

- 시스템 환경 변화에 유연한 대응 가능

 

 

 

긴 글 읽어주셔서 감사드립니다.

22.12.16

'TIL (Today I Learned) > 컴퓨터 시스템(CS)' 카테고리의 다른 글

[CS] Process Scheduler #3  (0) 2022.12.16
[CS] Process Scheduler #2  (0) 2022.12.16
[CS] 스레드 관리  (0) 2022.12.15
[CS] Process vs Thread  (0) 2022.12.15
[CS] 표준 입출력, File offset & File pointerIO #5  (0) 2022.12.14

댓글