JUST WRITE

Process 본문

OS

Process

천재보단범재 2022. 1. 9. 16:29
이 글은 KOCW 강좌 중 경성대학교 양희재 교수님의 '운영체제' 강의를 정리한 글입니다.

 

Process

Process

Main Memory에 Load 된 실행 중인 ProgramProcess라고 한다.

다른 말로 task, job이라고도 한다. Process의 상태는 시시각각 변한다.

  • New -> Main Memory에 막 올라온 상태
  • Ready -> 초기화 완료, 실행할 준비가 된 상태
  • Running -> CPU에 의해 실행되고 있는 상태
  • Waiting -> CPU 사용을 다른 Process가 하면서 대기하고 있는 상태
  • Terminated -> Process가 종료

Process는 위 사진과 같이 상태가 변하면서 진행이 된다.

실행한 준비가 되면(Ready) CPU에 의해 실행된다.(Running)

I/O와 같은 Event가 발생하면 CPU 사용을 Event가 하면서 실행 중이던 Process는 대기하게 된다.(Waiting)

Event가 완료되면 Process가 실행할 준비를 마치고(Ready) 다시 CPU에 의해 실행된다.

Time Sharing System에서는 자동으로 Running상태에서 Ready상태가 될 수 있다.

CPU 사용시간을 Process끼리 번갈아 사용하게 되면서 Running, Ready이 주기적으로 변경된다.(Time Expired)

PCB

Process Control Block

PCB는 OS에서 관리하며, Process에 대한 모든 정보를 가지고 있다.

Task Control Block(TCB)라고도 한다.

아래와 같은 상태를 관리하고 있다.

  • Process State
  • Registers
  • MMU Information
  • CPU Time
  • Process ID
  • List of open files

PCB에서 Process의 정보를 저장함으로써 CPU의 Process 사용 전환시 이 정보를 바탕으로 이어서 전환할 수 있다.

Process Queue

Main Memory에서 1개의 Process만 실행되고 있는 게 아니라 다수의 Process가 실행된다.

다수의 Process를 실행하기 위해서 대기하는 곳과 실행하는 순서를 효율적으로 구성하는 것이 중요하다.

OS에서는 Process와 관련된 3개의 Queue를 사용하고 있다.

  • Job Queue
    • Hard Disk에서 Program이 실행되어 Main Memory에 Process로 Load되기 위해 대기하는 Queue
    • Long-term Scheduler
  • Ready Queue
    • Process가 CPU 사용을 대기하는 Queue
    • Short-term Scheduler
  • Device Queue
    • Process가 I/O를 기다리는 Queue

주요 용어

  • Degree Of MultiProgramming
    • 현재 Main Memory에 Load 된 Process 개수
  • I/O-bound Process
    • I/O 작업 비중이 높은 Process
  • CPU-bound Process
    • CPU 사용(연산) 비중이 높은 Process
  • Swapping
    • Memory 공간을 효율적으로 사용하기 위해 장시간 사용하지 않는 Process를 처리하는 방법
    • 장시간 사용하지 않는 Process를 Swap Device(Backing Store)에 Process Image를 옮긴다(Swap out)
    • Swap Out했던 Process를 다시 사용하려 하면 다시 Main Memory로 옮긴다.(Swap in)
    • Swap Device(Backing Store)는 보통 Hard Disk
  • Context Switching
    • CPU 사용을 한 Process에서 다른 Process로 바뀌는 것
    • CPU Scheduler -> 효율적으로 CPU 사용하기 위해 Process 전환을 관리
    • Dispatcher -> Process의 CPU 사용을 전환하면서 변경 전후의 Process의 정보를 바꿔줌
    • Context Switching Overhead
      • Context Switching이 발생할 때마다 Process의 정보를 갱신하는 작업이 필요
      • 과도한 Context Switching은 부담이 되며 이를 Context Switching Overhead이라 함.
      • 효율적인 Process 전환 Scheduling이 필요

 

728x90
반응형

'OS' 카테고리의 다른 글

Process vs Thread  (0) 2022.01.12
CPU Scheduling  (0) 2022.01.11
OS Service  (0) 2022.01.06
Dual Mode and Protection  (0) 2022.01.05
Interrupt-Based System  (0) 2022.01.04
Comments