PCB (Process Control Block)


 운영체제가 프로세스에 대한 정보를 저장해 놓은 곳으로, 프로세스당 하나씩 1:1로 생성된다.

어떤 프로세스가 Interrupt나 System Call을 만나 다른 프로세스로 작업을 전환하는 것을 Context Switching이라고 하며, 이때 운영체제는 PCB에 실행 중이던 프로세스의 정보를 저장한 후 실행할 프로세스의 정보를 가져와 작업을 수행한다.

부모와 자식 프로세스 사이에도 PCB는 공유하지 않으며 부모든 자식이든 무조건 각 프로세스당 PCB는 1:1로 생성된다.


PCB의 구조는 일반적으로 다음과 같다.




1. Process ID : 프로세스 식별자, PID


2. Process state



 현재 프로세스의 상태를 나타내며 여기에는 생성(create)/준비(ready)/실행(running)/대기(waiting)/완료(terminated)가 있다.


생성(create)       : 프로세스가 생성은 되었지만 아직 운영체제에 의해 실행은 불가능한 상태

준비(ready)        : CPU의 할당을 기다리는 상태

실행(running)     : CPU를 할당 받아 실행되는 상태

대기(waiting)      : 실행 중인 프로세스가 어떤 사건(입출력 등)이 발생할때까지 멈추어 있는 상태

완료(terminated) : 프로세스 실행이 완전히 끝나 CPU 할당이 해제된 상태


3. Program Counter : 프로세스가 다음에 실행할 명령어의 주소 저장


4. Registers : CPU 레지스터의 값 저장


5. Memory Information : 해당 프로세스의 주소 공간 등의 데이터 저장


6. Accounting Information : 페이지 테이블, 소유자, 부모, 경과 시간 등 저장


7. I/O Information : 프로세스에 할당된 입출력장치 목록, 열린 파일 목록 등 저장

'Knowledge' 카테고리의 다른 글

NAT와 NAPT의 개념과 원리  (10) 2016.12.01
멀티 태스킹(Multi-Tasking)의 원리  (0) 2016.11.21
[Assembly] Intel x86, Local JMP [0xE9]  (0) 2016.11.07
[BigData] Spark 공부  (0) 2016.10.19
Visual Studio 2008에서 libcurl 사용하기  (0) 2016.09.05
블로그 이미지

__미니__

E-mail : skyclad0x7b7@gmail.com 나와 계약해서 슈퍼 하-카가 되어 주지 않을래?

,