운영체제
[운영체제] PCB는 어떤 녀석일까?
hyeonit
2024. 5. 17. 15:27
PCB는 Process Control Block의 약자로 운영체제에서 *프로세스에 대한 *메타데이터를 저장한 데이터를 말한다
즉, 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳
*프로세스 : Process란 일을 처리하는 과정이나 순서
*메타데이터 : Metadata는 일반적으로 데이터에 관한 구조화된 데이터, 데이터를 설명하는 작은 데이터, 대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대해 부여되는 데이터이다
- 프로세스 제어 블록이라고도 한다
- 프로세스가 생성되면 운영체제는 해당 PCB를 생성한다
- 프로세스가 완료되면 PCB는 제거된다
- 운영 체제에서 특정 프로세스를 나타내는 데 사용된다
각 프로세스는 운영 체제에서 PCB로 축약되는 프로세스 제어 블록으로 표시 된다
또한 프로세스를 관리하는데 사용하는 OS의 자료구조로 운영체제는 프로세스를 PCB 단위로 관리한다
생김새
아래 그림은 예제 다이어그램이다
Process state |
Process number |
Program counter |
Registers |
Memory limits |
List of open files |
.... |
- 프로세스 ID는 특정 프로세스를 식별하는 고유 번호 또는 ID를 표시한다
- Process state : 특정 순간에 프로세스가 있는 특정 상태를 알려준다
- 새 상태, 실행 중, 대기 종료 등과 같은 상태가 있다
- Program counter : 특정 프로세스에 대해 실행되어야 하는 다음 명령어의 주소를 나타냄
- 프로세스가 실행될때 명령이나 코드 줄이 한줄씩 실행된다
- 따라서 이 프로그램 카운터는 실행되어야 하는 다음 명령어 라인의 주소를 알려준다
- Registers : 특정 프로세스에서 사용 중인 레지스터를 알려준다
- 레지스터에서 여러 종류의 레저스터가 있는데 특정 프로세스에서 사용중인 특정 레지스터를 알려준다
- CPU 스케줄링 정보 : 프로세스의 우선순위가 있고 스케줄링 큐에 대한 포인터 와 기타 스케줄링 매개변수가 있다
- 메모리 관리 정보 (Memory management information) : 사용중인 메모리를 나타낸다
- 회계 정보 (Accounting. information) : 특정 프로세스에서 실행을 위해 사용되는 모든 리소스에 대한 계정을 유지한다
- 입출력 상태 정보 : 프로세스에 할당된 입출력장치를 나타낸다
이러한 프로세스 제어 블록이 운영체제의 특정 프로세스를 나타내는 데 사용된다는 것을 알 수 있다
왜? 필요한가
PCB는 이러한 모든 정보를 종합적으로 관리하여 운영 체제가 효율적이고 신뢰성 있게 프로세스를 제어할 수 있도록 한다
PCB 관리 방식
- 프로세스 생성
- 새로운 프로세스가 생성 되면 운영 체제는 새로운 PCB를 할당함
- 이 PCB에는 식별자, 초기 프로세스 상태, 프로그램 카운터, 포인터, 메모리 할당 정보, 등등 초기화된 정보가 저장됨
- PCB는 프로세스 테이블 이라는 운영체제의 데이터 구조에 저장됨
- 프로세스 스케줄링
- 운영 체제의 스케줄러는 프로세스를 선택하여 실행하기 위해 PCB를 참조함
- PCB에 저장된 우선순위, 상태, cpu 사용시간등의 정보를 이용하여 스케줄러는 다음에 실행할 프로세스를 결정
- 스케줄러는 현재 실행 중인 프로세스의 PCB를 업데이터, 선택된 프로세스의 PCB를 참조하여 CPU에 로드
- 문맥 교환
- Context Switch는 CPU가 실행 중인 프로세스에서 다른 프로세스로 전환할때 방생
- 현재의 프로세스의 상태를 PCB에 저장하고 전활할 프로세스의 PCB에서 상태를 읽어와 CPU에 로드
- 프로세스 상태 관리
- PCB는 프로세스의 현재 상태를 저장
- 운영체제는 이벤트 발생 (인터럽트 등)에 따라서 프로세스의 상태를 변경하고 이것을 PCB에 기록함
- 상태 변경에 따라 PCB는 적절한 대기 큐나 준비 큐에 추가되거나 제거된다
- 프로세스 종료
- 프로세스가 종료되면 운영 체제는 해당 프로세스의 PCB를 정리한다
- PCB에 포함된 자원을 해제하고 프로세스 테이블에서 PCB를 제거함
정리를 하자면
운영체제는 PCB를 통하여 각 프로세스의 중요한 정보를 체계적으로 관리하며
이를 통하여 다중 프로세스 환경에서 효율적이고 안정적인 운영을 보장한다