728x90
1. 프로세스 제어 블록 (PCB, Process Control Block)
- 정의
- 운영체제가 프로세스를 관리하기 위해 사용하는 데이터 구조. 각 프로세스에 대한 중요한 정보를 저장함
(마치 상품에 달린 태그 같음)
- 특징
- PCB는 프로세스 생성 시에 만들어짐. 프로세스가 종료되면 폐기됨
- 운영체제는 PCB로 특정 프로세스를 식별하고 해당 프로세스를 처리하는 데 필요한 정보를 판단함
- 생성 위치: 커널 영역
👉 '새로운 프로세스가 생성되었다'는 말은 '운영체제가 PCB를 생성했다'는 말과 같고,
'프로세스가 종료되었다'는 말은 '운영체제가 해당 PCB를 폐기했다'는 말과 같음
- PCB에 담기는 정보
1) 프로세스ID (PID, Process ID)
- 정의: 특정 프로세스를 식별하기 위해 부여하는 고유한 번호
- 특징: 같은 일을 수행하는 프로그램이라 할지라도 두 번 실행하면 PID가 다른 두 개의 프로세스가 생성됨
2) 레지스터 값
- 저장 이유: 프로세스는 자신의 실행 차례가 돌아오면 이전까지 사용했던 레지스터의 중간값 모두 복원
- 종류
- 프로그램 카운터: 현재 프로세스가 실행 중인 명령어의 주소
- CPU 레지스터 값: 모든 일반 목적 레지스터, 주소 레지스터, 상태 레지스터 등의 현재 값
- 스택 포인터: 스택의 현재 위치
3) 프로세스 상태
- 현재 프로세스가 입출력장치를 사용하기 위해 기다리고 있는 상태인지,
CPU를 사용하기 위해 기다리고 있는 상태인지,
아니면 CPU를 이용하고 있는 상태인지 등의 프로세스 상태 정보가 PCB에 저장됨
4) CPU 스케줄링 정보
- 정의: 프로세스가 언제, 어떤 순서로 CPU를 할당받을지에 대한 정보
CPU 스케줄링 알고리즘에 대해서 궁금하다면? ↓↓
2024.06.16 - [Computer Science/OS] - [OS] CPU 스케줄링 알고리즘
5) 메모리 관리 정보
- 저장 이유: 프로세스마다 메모리에 저장된 위치가 다름
6) 사용한 파일과 입출력장치 목록
- 정의: 어떤 입출력장치가 이 프로세스에 할당되었는지, 어떤 파일들을 열었는지에 대한 정보
2. 문맥 교환
- 문맥(Context)이란?
- 정의: 하나의 프로세스 수행을 재개하기 위해 기억해야 할 정보. PCB에 기록되는 정보들
- 특징: 실행 문맥을 잘 기억해 두면 언제든 해당 프로세스의 실행을 재개할 수 있음
👉 프로세스가 CPU를 사용할 수 있는 시간이 다 되거나 예기치 못한 상황이 발생하여 인터럽트가 발생하면 운영체제는 해당 프로세스의 PCB에 문맥을 백업함. 그리고 뒤이어 실행할 프로세스 B의 문맥을 복구함
👉 자연스럽게 실행되는 프로세스가 바뀜
- 문맥 교환(Context Switching)이란?
- 정의: 기존 프로세스의 문맥을 PCB에 백업하고, 새로운 프로세스를 실행하기 위해 문맥을 PCB로부터 복구하여 새로운 프로세스를 실행하는 것
- 원리: 여러 프로세스가 끊임없이 빠르게 번갈아 가며 실행
👉 문맥 교환이 자주 일어나면 프로세스는 그만큼 빨리 번갈아 가며 수행됨
👉 우리의 눈에는 프로세스들이 동시에 실행되는 것처럼 보임
출처
- 강민철, 「혼자 공부하는 컴퓨터 구조+운영체제」, 한빛미디어, 2022, p.286-292
'Computer Science > OS' 카테고리의 다른 글
[OS] 주소 변환 Address Binding (0) | 2024.06.18 |
---|---|
[OS] 주소 공간과 가상 메모리 (0) | 2024.06.18 |
[OS] 시스템 콜 System Call (0) | 2024.06.16 |
[OS] 인터럽트 (0) | 2024.06.16 |
[OS] CPU 스케줄링 알고리즘 (2) | 2024.06.16 |