CS/운영체제

[운영체제] PCB : 프로세스 제어블록

mhko411 2021. 9. 13. 23:43
728x90

우리는 PC를 이용해 웹 서핑을 하고 동시에 음악을 들으며 친구한테 메시지를 보낸다. 우리는 이러한 일들이 동시에 일어나고 있다고 느낀다. 하지만 실제로 굉장히 빠른 시간에 프로세스들이 교체되어 실행되는 것이다. 이때 운영체제가 현재 실행되고 있는 프로세스들을 관리하여 실행을 유지할 수 있는 정보들이 저장된 자료구조를 PCB(Process Control Block)이라고 한다.


PCB의 구성요소

프로세스를 할당하거나 프로세스가 교체되었을 때 지금까지 수행된 내용을 기록하기 위해서는 PCB 내의 여러가지 요소들이 사용된다. PCB의 구성요소를 파악한다면 하나의 CPU에서 어떻게 여러 개의 프로세스가 실행될 수 있는지 파악할 수 있을 것이다.

 

  • 프로세스 상태 : CPU를 할당해도 되는지 결정하기 위해 필요하며 프로세스가 현재 어떠한 상태인지 생성, 준비, 실행, 대기, 완료 등으로 나타낸다.
  • 프로그램 카운터 : 다음에 수행할 명령의 위치를 가리키는 프로그램 카운터의 값을 저장한다.
  • CPU 레지스터 : CPU 연산을 위해 현 시점에 레지스터에 어떤 값을 저장하고 있는지 나타낸다.
  • 메모리 관리 정보 : 프로세스의 CPU 스케줄링과 메모리 할당을 위해 필요한 정보이다.
  • 할당된 자원 정보 : 프로세스가 하드디스크에 저장된 파일을 열어서 작업할 때 파일에 대한 정보가 필요하다. 따라서 프로세스 실행을 위해 사용하는 입출력 자원, 오픈 파일 등에 대한 정보를 나타낸다.

문맥 교환(Context Switch)를 공부하기 전에 PCB에 대한 개념을 알고 있어야했다. 따라서 PCB에 대해 간략히 알아본 후에 문맥 교환에 대해 공부를 하려고 한다.