본문 바로가기
운영체제

05. Process Scheduling

by kwon5346 2024. 4. 24.
반응형

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