본문 바로가기

3학년 1학기/운영체제

Process Control Block,프로세스 컨트롤 블록,PCB

 

프로세스 컨트롤 블록은 운영체제가 생성하고 관리하는 자료구조(data structure)이다.

위의 그림을 제외하고도 여러 요소가 프로세스 컨트롤 블록, 즉, PCB의 요소이다.

 

 

*식별자 : 각 프로세스를 다른 프로세스들과 식별/구별하게 해주는 유일한 요소

 

*상태 : 프로세스 상태를 의미한다. 프로세스가 현재 수행중이면 running 상태이다

 

*우선순위 : 다른 프로세스들에 대해 상대적인 우선순위

 

*프로그램 카운터 : 프로그램에서 다음에 수행될 명령어의 주소

 

*메모리 포인터 : 프로세스와 연계된 프로그램 코드 및 데이터, 다른 프로세스들과 함께

공유되는 메모리 블록들에 대한 포인터

 

*문맥 데이터 : 프로세스가 수행중일때, 처리기의 레지스터에 존재하는 데이터.

 

*입출력 상태 정보 : 미해결 입출력 요청 , 프로세스에 할당된 입출력장치, 프로세스에 의해 사용중인 파일들의 리스트 등을 포함한다.

 

*어카운팅 정보 : 사용된 처리기 시간 및 클록시간,시간제한,계정 번호 등을 포함한다. 

 

프로세스 제어 블록의 주요 역할이란?

 

중요한 정보를 유지하고 저장하고 있다. 여기서 중요한 정보란,

수행 프로세스를 인터럽트 한 후 나중에 그 인터럽트가 발생되지 않은 것처럼

프로세스 수행을 재개할 수 있는 정보를 뜻한다.

(인터럽트가 발생된다면 processor는 현재 수행중인 user program을 일시 정지시키고

발생한 인터럽트를 처리하고 다시 user program을 수행하게 된다.)

 

어떤 프로세스들이 인터럽트될 때,

프로그램 카운터,및 processor 레지스터들(context data)의

현재 값들이 프로세스 제어 블록의 필드에 저장이되고,

그 프로세스의 상태가 bloacked / ready 값으로 변경이 된다.

 

그리고 운영체제는 다른 프로세스를 수행 상태로 만들게 되는데,

이때 그 수행 상태로 만들어진프로세스의

프로그램 카운터(PC)와 문맥 데이터(CONTEXT DATA)를

processor 레지스터로 load하여 수행을 시작하게 된다.

 

프로세스 제어 블록은 운영체제로 하여금

다수의 프로세스를 지원하고 다중처리를 제공할 수 있게 해주는 KEY TOOL이다.

 

단일 processor 컴퓨터(single processor computer)에서,

단 하나의 프로세스만이 수행상태 이다.