Process

  • Main Memory에 할당되어 실행 중인 상태인 프로그램
  • job, task 등으로도 불림
  • 상태
    • New, Ready, Running, Waiting, Terminated

Process 상태 전이도

  • PCB(Process Control Block)
    • 프로세스에 대한 모든 정보가 모여있는 곳
    • TCB(Task Control Block)
    • process state, PID, program counter, register값, MMU정보 등이 포함

CPU는 한 프로세스가 종료될 때까지 수행하는 것이 아니라 여러 프로세스를 중간중간 바꿔가며 수행하는데 수행하고 있던 프로세스 정보를 저장하기 위해 필요하다!

 

  • Process Queue
    • 프로세스는 일반적으로 여러 개가 한번에 수행
    • 그에 따른 순서가 필요

Job Queue : 하드디스크에 있는 프로그램이 실행되기 위해 메인 메모리의 할당 순서를 기다림

Ready Queue : CPU 점유 순서를 기다림

Device Queue : I/O를 하기 위한 여러 장치가 있는데, 각 장치를 기다림

각 큐 내부에 저장된 실제 데이터는 각 프로세스의 PCB가 저장되어있다. 

순서를 정해주는 알고리즘이 필요 "스케줄링"

Job Queue - Job Scheduler(Long-term)

Ready Queue - CPU Scheduler(Short-term)

Device Queue - Device Scheduler

 

Multiprogramming

  • 멀티프로그래밍은 단일 프로세서(CPU) 환경에서 여러 개의 프로세스가 동시에 실행되는 것
  • Degree of multiprogramming : 현재 메모리에 할당되어 있는 프로세스 개수
  • 프로세스 종류
    • I/O bound process : 해당 프로세스에서 I/O 작업이 차지하는 비중이 높은 프로세스
    • CPU bound process : 해당 프로세스에서 CPU 작업(계산)이 차지하는 비중이 높은 프로세스
      • Job scheduler는 두 프로세스를 적절히 분배해 메모리에 할당해야 한다!
  • Medium-term scheduler : os가 실행하는 동안 주기적으로 메인 메모리에 있는 전체 프로세스를 검사하여 보조기억장치로 옮길 프로세스를 찾아 옮김("Swapping")
    • Swap device = Backing store ( HD = Backing store + File system)
    • Swap out : main memory → HD / Swap in : HD → main memory
  • Context Switching(문맥 전환)
    • CPU가 한 프로세스에서 다른 프로세스로 옮겨가는 것
    • Scheduler : CPU scheduler에 의해 CPU가 어느 프로세스를 선택할지 결정
    • Dispatcher : 현재 CPU 데이터는 이전 프로세스의 PCB에 갱신하고, 새로 시작되는 프로세스의 PCB 데이터를 CPU로 복원(restore)
    • Context switching overhead : context switching이 발생할 때마다, dispatcher에서 수행하는 작업은 매번 수행하는데 이게 overhead(dispatcher구현에 대해 효율성을 최대로)

'Computer Science > Operating System' 카테고리의 다른 글

[개념] Memory Management 1  (0) 2021.08.12
[개념] Virtualization  (0) 2021.08.12
[개념] IPC  (0) 2021.08.12
[개념] I/O Management  (0) 2021.08.12
[개념] Threads and Concurrency  (0) 2021.08.12

+ Recent posts