728x90
목차
1. 프로세스 제어 블록(PCB)
프로세스 제어 블록(PCB)은 운영 체제가 프로세스의 정보를 저장하는 중요한 데이터 구조이다. PCB는 프로세스 상태, 프로그램 카운터, CPU 레지스터, CPU 스케줄링 정보, 메모리 관리 정보, 계정 정보, 입출력 상태 정보 등을 포함한다. 이 구조체는 프로세스의 생성 때 생성되어 종료 때 제거된다.
운영 체제는 프로세스 관리를 위해 PCB를 사용하여 각 프로세스의 상태를 추적하고, 프로세스 사이의 컨텍스트 스위칭 시 필요한 정보를 저장하는 역할을 한다. PCB는 프로세스가 CPU 자원을 할당받아 작업을 수행하는 동안 필요한 모든 정보를 포함하므로 운영 체제의 성능과 효율성에 중요한 역할을 한다.
2. PCB의 구성
PCB의 구성은 운영 체제의 설계와 구현에 따라 다를 수 있으며, 일반적으로 다음과 같은 섹션으로 구분된다:
- 프로세스 식별자(Process ID): 프로세스를 고유하게 식별하는 번호.
- 프로세스 상태: 준비(Ready), 실행(Running), 대기(Waiting) 등의 상태를 나타낸다.
- 프로그램 카운터: 프로세스가 다음에 실행할 명령어의 주소를 가리킨다.
- CPU 레지스터: 현재 작업의 중간 결과나 중요 변수들의 값을 저장한다.
- CPU 스케줄링 정보: 프로세스 우선 순위, 스케줄 큐에 대한 포인터 등을 포함한다.
- 메모리 관리 정보: 프로세스의 메모리 할당에 대한 정보, 페이지 테이블, 세그먼트 테이블 등을 포함한다.
- 계정 정보: CPU 사용 시간, 실제 사용 시간 등 실행에 대한 통계 정보.
- 입출력 상태 정보: 프로세스에 할당된 입출력 장치들과 열린 파일 목록.
PCB는 운영 체제의 핵심 부분으로서, 효율적인 프로세스 관리와 빠른 컨텍스트 스위칭을 가능하게 하는 중심적인 역할을 수행한다.
다음은 프로세스 제어 블록(PCB)의 구조를 표현한 것이다.
+-----------------------------+
| Process Control |
| Block |
+-----------------------------+
| 1. Process Identifier (PID) |
+-----------------------------+
| 2. Process State |
+-----------------------------+
| 3. Program Counter |
+-----------------------------+
| 4. CPU Registers |
| - Register 1 |
| - Register 2 |
| - ... |
+-----------------------------+
| 5. CPU Scheduling Info |
| - Process Priority |
| - Queue Pointers |
+-----------------------------+
| 6. Memory Management Info |
| - Page Tables |
| - Segment Tables |
+-----------------------------+
| 7. Accounting Information |
| - CPU Used Time |
| - Real Time |
+-----------------------------+
| 8. I/O Status Information |
| - List of I/O Devices |
| - Open Files List |
+-----------------------------+
이 그림은 PCB의 주요 구성 요소들을 보여주며, 각 섹션은 프로세스 관리에 필수적인 정보들을 포함하고 있다. 이러한 구조는 운영 체제가 프로세스를 효율적으로 관리하고 필요에 따라 컨텍스트 스위칭을 수행하는 데 사용된다.
'컴퓨터 과학 > 운영체제' 카테고리의 다른 글
[운영체제] 프로세스와 메모리 구조(6): 멀티 프로세싱과 멀티 태스킹 (0) | 2024.04.27 |
---|---|
[운영체제] 프로세스와 메모리 구조(5): 프로세스 스케줄링(Process Scheduling) (0) | 2024.04.27 |
[운영체제] 프로세스와 메모리 구조(3): 프로세스와 스레드 (1) | 2024.04.27 |
[운영체제] 프로세스와 메모리 구조(2): 커널 공간과 사용자 공간 (0) | 2024.04.27 |
[운영체제] 프로세스와 메모리 구조(1): 메모리와 저장공간 계층구조(Memory Hierachy) (0) | 2024.04.27 |