본문 바로가기
Computer Science/Operating System

Process, PCB(Process Control Block)

by Gofo 2021. 6. 16.

Process

Process는 실행 중인 프로그램이다.

 

Process는 다음과 같이 구성되어 있다.

이들을 process의 실행상태를 표현하기 위해서 사용된다.

 

  • address space
    • memory의 상태를 의미한다.
    • 메모리 상에서 process가 차지하고 있는 영역
    • = code + data + stack
      • code : instruction
      • data : global variable
      • stack : 함수의 인자, return address, local variable(temporary variable)
  • current activity
    • CPU의 상태를 의미한다.
    • program counter(PC)
    • processor의 register(범용 레지스터)

 

Program vs. Process

  • program
    • 개발자가 작성한 실행파일이 메모리에 올라온 것
  • process
    • 운영체제가 CPU를 통해서 프로그램을 실행한 것
    • 실행 중인 프로그램

 


Process Control Block (PCB)

PCB는 각 process와 관련된 정보들(process 관리에 필요한 정보들)을 포함한다.

 

대부분의 운영체제는 하드웨어나 메모리에 직접 접근해야하는 경우가 많아서 pointer를 이용해야 한다.

따라서 C로 구성되어있다.

C language로 된 운영체제에서 PCB는 구조체의 자료구조로 이루어져 있다.

 

PCB에는 다음과 같은 process 정보들이 담겨있다.

  • process state : new, running, waiting, ready, terminated
  • program counter
  • CPU register : 범용 register
  • CPU scheduling : priority, schduling queue에 대한 포인터
  • memory management : base register 값, limit register 값, page tables, segment tables
  • accounting : CPU, real-time used, time limits, process number
  • I/O status : 할당된 I/O 장치들의 list, 열려있는 file들의 list

 

Process State

운영체제에 따라 구성이 다르며, 일반적으로 5개로 이루어져있다.

  • new : process가 생성됨 
  • running : process가 실행 중
  • waiting : process가 event를 기다리고 있음(O/O completion, signal reception 등)
  • ready : process가 running을 위해서 기다리고 있음(CPU가 주어지기를 기다림)
  • terminated : process 실행이 끝남

 

위와 같이 구분된다면 process가 동작 중에 state는 running, waiting, ready의 3가지 중에서 변화한다.

 

만약 interrupt가 발생한다면 user mode에서 kernel mode로 전환되고, 실행 중인 process는 ready 상태로 간다.

이후 interrupt 처리가 끝나면 scheduler는 ready 상태인 process들 중에 하나를 선택해서 running으로 바꾸고 실행한다.

 

 

 

 

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

프로세스 생성/종료  (0) 2021.06.17
Process Scheduling (Context Switching)  (0) 2021.06.16
User Mode, Kernel Mode  (0) 2021.06.16
Interrupt, I/O Device  (0) 2021.04.05
컴퓨터 구조와 프로그램 실행  (0) 2021.04.03

댓글