반응형
What is Process Scheduling?
시스템에는 여러개의 프로세스가 있고, 각 프로세스는 고유한 address space를 가진다.
OS는 각각의 프로세스가 마치 자체 CPU와 memory가 있는것처럼 만든다.(illusion)
- 목적 : 프로세스들 사이에서 CPU 코어를 빈번하게 교체하는 것
- Provide concurrency(동시성 제공)
- 이 목적을 달성하기 위해 프로세스 스케줄러는 코어에서 실행 가능한 여러 프로세스 중에서 하나의 프로세스를 선택한다.
- 프로세스 스케쥴링을 배우는것은 다음을 배우는 것을 의미한다.
- 프로세스들 간의 switch 방법
- 스케쥴링 할 사용 가능한 프로세스들을 찾거나 관리하는 방법
- 실행할 다음 프로세스를 선택하는 방법
Parallelism vs. Concurrency
Parallelism
- 하나 이상의 일을 동시에 수행.
Concurrency
- 하나 이상의 작업을 진행할 수 있게 support.
Time Sharing in Modern OSes
- OS makes an illusion using the hardware timer
- OS가 application을 프로세서에 할당한다.
- apllication 프로세스가 CPU cycle을 소진한다.
- timer가 만료되면 timer가 timer interrupt를 생성한다.
- 프로세서는 OS의 일부인 timer interrupt handler로 이동한다.
- 프로세스 스케줄러
- 스케줄러가 다음 프로세스를 선택한다.
Mechanism vs. Policy
Mechanism
- 무언가를 하려면 어떻게 해야 하는가?
- 프로세스는 어떻게 관리할 것인가?
- 프로세스가 돌고 있는 시간은 어떻게 책정할 것인가?
Policy
- 시간은 얼마나 길게 설정하는 게 좋을까?
- 다음엔 어떤 프로세스를 실행하는게 좋을까?
둘을 나눠서 생각해야 한다.
Separating Policy from Mechanism
- 운영 체제 설계의 핵심 원칙
- policy는 workload에 따라, 장소에 따라, 시간에 따라 변경될 가능성이 높다.
- policy와 분리된 일반적인 mechanism이 더 바람직하다.
- 더 모듈화된 OS를 build할 수 있다.
- 확장 가능한 시스템을 가능하게 한다. (user specific policies)
Context Switch
- CPU가 다른 프로세스로 전환할 때, 시스템은 현재 프로세스의 상태를 저장하고 다음 프로세스의 상태를 load해야 한다.
- 프로세스의 context는 PCB에 표현된다.
- context switch가 진행될 동안 시스템은 아무런 일을 못하기 때문에 context-switch time은 overhead이다.
- context-switch time은 hardware의 support에 크게 좌우된다.
Scheduling Queues
- 프로세스가 시스템에 들어가면 ready queue에 들어가서 ready 상태가 되어 CPU코어에서 실행되기를 기다린다.
- 이 큐는 일반적으로 linked list로 구현된다.
- ready queue의 header에는 리스트의 첫 번째 PCB에 대한 포인터가 저장되고 각 PCB에는 ready queue의 다음 PCB를 가리키는 포인터 필드가 포함된다.
반응형
'운영체제' 카테고리의 다른 글
06. Process Scheduling(2) (0) | 2024.04.24 |
---|---|
04. Inter-Process Communication (0) | 2024.04.18 |
03. System Call (10) | 2024.04.03 |
02. Processes (5) | 2024.04.03 |
01. Introduction to Operating Systems (0) | 2024.04.02 |