PCB (Process Control Block)
2023. 10. 15. 01:19
728x90
반응형
프로세스 제어 블록(PCB)은 특정한 프로세스를 관리할 필요가 있는 정보(메타데이터)를 포함하는 운영체제 커널의 자료 구조
운영체제가 프로세스 스케줄링을 위해 프로세스에 관한 모든 정보를 가지고 있는 데이터베이스를 의미
프로그램이 실행되어 메모리에 적대되었을 때 프로세스가 생기고, 프로세스 주소 공간에 코드, 데이터, 스택 공간이 생선된다.
- 프로세스 고유 ID
- PID -> 프로세스의 고유 번호
- 프로세스 스케줄링 상태
- 생성(new), 준비(ready), 실행(running), 대기(waiting), 종료(terminated)를 저장
- 프로세스 우선순위
- 스케줄링 및 프로세스 우선 순위
- 계정 정보
- CPU 사용 시간, 실제 사용된 시간
- 프로그램 카운터
- 프로세스를 위해 실행될 다음 명령어의 주소를 포함하는 카운터 저장(다음 실행될 명령의 포인터)
- CPU 레지스터
- 누산기, 베이스, 레지스터 및 범용 레지스터를 포함하는 CPU 레지스터에 있는 정보
- CPU 스케줄링 정보
- 우선 순위, 최종 실행 시각, CPU 점유 시간 등
- 포인터
- 프로세스의 현재 위치를 저장하는 포인터
- 열린 파일 목록
- I/O 상태 정보
- 입출력 상태 정보
컨텍스트 스위칭 (Context switching)
PCB를 교환하는 과정
원래 실행중인 프로세스의 상태를 PCB에 보관하고, 새로 들어오는 프로세스의 PCB 정보를 바탕으로 레지스터에 값을 적재하는 과정
인터럽트가 발생 되거나 프로세스 선점 허용 기간을 모두 소모한 상황, 입출력을 위해 대기하는 경우에 컨테스트 스위칭이 발생된다.
💡 인터럽트 (interrupt)
CPU가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 사용할 수 있는 기능
즉, CPU의 정상적인 프로그램 실행을 방해하는 의미
Reference
728x90
반응형
'CS > OS' 카테고리의 다른 글
프로세스(Process)와 스레드(Thread) (0) | 2023.10.15 |
---|---|
프로세스의 컴파일 (0) | 2023.10.15 |
[OS] CPU란? (0) | 2021.09.08 |
[OS] 프로세스와 쓰레드 (0) | 2021.08.22 |
[OS] 메모리 구조(Memory Structure) (2) | 2021.08.21 |