1. 프로세스 제어 블록
- 프로세스 제어 블록은 프로세스를 실행하는데 필요한 중요한 정보를 보관하는 자료구조임
- 프로세스 제어 블록에 저장되는 정보는 다음과 같은 것들이 있음
(1) 포인터
- 프로세스 제어 블록의 첫 번째 블록에는 포인터가 저장됨
-> 프로세스 제어 블록을 연결하여 준비 상태나 대기 상태의 큐를 구현할 때 포인터를 사용함
(2) 프로세스 상태
- 프로세스 상태에는 생성, 준비, 실행, 대기, 보류 준비, 보류 대기 등이 있음
(3) 프로세스 구분자
- 운영체제 내에 있는 여러 프로세스를 구별하기 위한 구분자를 저장함
(4) 프로그램 카운터
- 다음에 실행될 명령어의 위치를 가리키는 프로그램 카운터의 값을 저장함
이외에 프로세스 우선순위, 각종 레지스터 정보, 메모리 관리 정보, 할당된 자원 정보, 계정 정보,
부모 프로세스 구분자와 자식 프로세스 구분자 등이 있음
2. 문맥 교환
- 문맥 교환은 CPU를 차지하던 프로세스가 나가고 새로운 프로세스를 받아들이는 작업을 말함
-> 이 때, 두 프로세스 제어 블록의 내용이 변경됨
-> 실행 상태에서 나가는 블록에는 지금까지의 작업 내용을 저장하고,
반대로 실행 상태로 들어오는 프로세스 제어 블록의 내용으로 CPU가 다시 세팅됨
- 문맥 교환이 일어나는 경우는 매우 다양함
-> 일반적으로 한 프로세스가 자신에게 주어진 시간을 다 사용하면 발생하고,
인터럽트가 걸렸을 때도 발생함
참고
- 쉽게 배우는 운영체제