PCB(Process Control Block)
운영체제 커널의 자료구조로, 프로세스를 표현하기 위해 사용된다.
PCB는 프로세스가 생성 될 때 같이 생성되며 프로세스 고유의 정보를 포함한다.
커널은 이 자료구조를 사용해서 프로세스를 관리한다.
PCB에 포함된 정보는 다음과 같다.
- OS가 관리상 사용하는 정보 : 프로세스 상태, 프로세스 ID, 스케줄링 정보, 우선 순위
- CPU 수행 관련 하드웨어 값 : 프로그램 카운터, 레지스터
- 메모리 정보 : 코드, 데이터, 스택의 위치 정보
- 파일 정보 : 열어둔 파일 정보(핸들)
프로세스 상태
컨텍스트 스위칭에 의해 프로세스는 실행 또는 정지 상태에 놓일 수 있다.
프로세스 상태 | 내용 |
실행 | 프로세스가 CPU를 점유하고 있는 상태 |
대기 | 프로세스가 CPU 점유를 위해 기다리고 있는 상태 CPU 동작을 위한 모든 조건을 만족한 상태(메모리에 이미 올라옴) |
블록(wait, sleep) | 당장 작업이 수행될 수 없는 상태 sleep 함수를 사용하거나 동기화를 위해 대기해야 할 경우 프로세스는 블록된다. |
정지 상태 | 스케줄러나 인터럽트로 인해 비활성화된 상태 외부에서 다시 재개시켜야 활성화 가능 |
Ref.
books-and-cows.gitbook.io/-linux-kernel-lecture-note/2
2강
books-and-cows.gitbook.io
728x90
반응형
'컴퓨터과학 > OS' 카테고리의 다른 글
[OS] 스레드(Thread) (0) | 2021.04.12 |
---|---|
[OS] 프로세스(1) (0) | 2021.04.12 |