프로세스 제어블록(Process Control Block)의 약어로 프로세스를 관리하는데 사용하는 OS의 자료구조이다.
운영체제는 프로세스를 PCB 단위로 관리하며 프로세스 스케줄링을 위한 정보를 PCB 를 통해 관리한다.
프로세스가 생성될 때마다 고유의 PCB 가 생성되며, 프로세스가 완료되면 PCB 는 제거된다.
프로세스 간 Switching 이 발생할 때, 운영체제는 PCB 를 이용해서 상태를 전이시킨다. (State Transition)
프로세스는 CPU가 처리하던 작업 내용들을 PCB에 저장하고,
다음에 다시 CPU 를 점유하여 작업할 때 PCB로부터 해당 정보들을 CPU 에 넘겨와서 하던 작업을 진행한다.
PCB는 다음과 같은 데이터 구성을 갖고 있다.
- Process Identification Data
- Process State Data
- Process Control Data
PCB 는 다음과 같은 정보들을 저장하고 있다.
(1) Process ID : 프로세스를 구분하는 ID
(2) Process State : 각 State 들의 상태를 저장한다.
(3) Program Counter : 다음 Instruction 의 주소를 저장하는 카운터. CPU는 이 값을 통해 Process 의 Instruction 을 수행한다.
(4) Register : Accumulator, CPU Register, General Register 등을 포함한다.
(5) CPU Scheduling Information : 우선 순위, 최종 실행시간, CPU 점유시간 등이 포함된다.
(6) Memory Information : 해당 프로세스 주소공간(lower bound ~ upper bound) 정보를 저장.
(7) Process Information(페이지 테이블, 스케줄링 큐 포인터, 소유자, 부모 등)
(8) Device I/O Status(프로세스에 할당된 입출력 장치 목록, 열린 팔린 목록 등)
(9) Pointer : 부모/자식 프로세스에 대한 포인터, 자원에 대한 포인터 등
(10) Open File List : 프로세스를 위해 열려있는 파일의 리스트
'Computer Base > Linux & OS' 카테고리의 다른 글
Hard Link & Symbolic Link 개념 정리 (0) | 2020.08.11 |
---|---|
Unix 기반의 File System Access Permission 에 대해 (0) | 2018.11.30 |
가상 메모리(Virtual Memory)와 페이징(Paging)에 대한 정리 (3) | 2018.10.16 |
Linux 의 입출력 스케줄링(I/O Scheduling) (0) | 2018.10.14 |
Unix/Linux 파일시스템 구조 정리 (2) (0) | 2018.10.04 |