프로세스 제어 블록
- 특정 프로세스에 대한 중요한 정보를 저장하고 있는 자료구조로, 모든 프로세스는 고유의 프로세스 제어 블록을 가진다.
- 프로세스 제어 블록은 프로세스 생성 시 만들어져서 프로세스가 실행을 완료하면 폐기된다.
- 프로세스는 CPU를 할당받아 작업을 처리하다가 프로세스 전환이 발생하면 진행하던 작업을 저장하고 CPU를 반환한다.
- 이때 작업의 진행 상황을 프로세스 제어 블록에 저장하고 다시 CPU를 할당받게 되면 저장된 내용을 불러와 이전에 종료했던 시점부터 작업을 다시 수행한다.
프로세스의 상태
생성 상태 | 프로그램을 메모리에 가져와 실행 준비가 완료된 상태 |
준비 상태 | 실행을 기다리는 모든 프로세스가 자기 차례를 기다리는 상태로, CPU 스케줄러가 실행될 프로세스를 선택한다. |
실행 상태 | 선택된 프로세스가 타임 슬라이스를 얻어 CPU를 사용하는 상태 |
대기 상태 | 실행 상태에 있는 프로세스가 입출력을 요청하면 입출력이 완료될 때까지 기다리는 상태로, 입출력이 완료된 프로세스는 준비 상태가 된다. |
완료 상태 | 프로세스가 종료된 상태로, 사용하던 모든 데이터가 정리된다. |
문맥교환
- 문맥교환은 CPU를 차지하던 프로세스가 나가고 새로운 프로세스를 받아들이는 작업으로, 이때 두 프로세스 제어 블록의 내용이 변경된다.
- 이때 실행 상태에서 나가는 프로세스 제어블록에는 지금까지의 작업 내용을 저장하고, 실행 상태로 들어오는 프로세스 제어 블록의 내용으로 CPU가 다시 세팅된다.
- 즉, 두 프로세스의 프로세스 제어 블록을 교환하는 작업
'Computer Science > Operating System' 카테고리의 다른 글
프로세스 생성 (0) | 2022.04.08 |
---|---|
CPU 스케줄링 (0) | 2022.03.15 |
프로세스와 스레드 (0) | 2022.03.15 |
병렬 처리 (0) | 2022.03.15 |
컴퓨터 성능 향상 기술 (0) | 2022.03.14 |