PCB(Process Control Block)
: 프로세스와 관련된 정보를 내포하는 구조체의 일종이다.
PCB에 담긴 정보
- 프로세스 ID
- 실행 과정에서 사용한 레지스터 값
- 프로세스 상태
- CPU 스케줄링 우선순위 정보
- 메모리 위치 정보
- 프로세스가 사용한 파일 및 입출력장치 관련 정보
프로세스 테이블
: 실행중인 PCB의 모음이다.
새롭게 실행되는 프로세스가 있다면, 해당 프로세스의 PCB를 프로세스 테이블에 추가하고 필요한 자원을 할당한다. 반대로, 종료되는 프로세스가 있다면 사용 중이던 자원을 해제하고 해당 PCB도 프로세스 테이블에서 삭제한다.
좀비 프로세스
: 프로세스가 비정상 종료되어 프로세스 테이블에 종료된 PCB가 남아있는 상태를 뜻한다.
타이머(타임아웃) 인터럽트
: 시간이 끝났음을 알리는 인터럽트이다.
문맥 교환(Context Switching)
타이머 인터럽트가 발생하면 실행중인 프로세스는 자신의 문맥(Context)를 PCB에 백업하고, 다음 차례가 올 때까지 기다린다. 타이머 인터럽트에 의해 실행되는 프로세스는 PCB에서 자신의 문맥(Context)을 복구한 후 이어서 실행한다.
<주의> 잦은 문맥 교환은 큰 오버헤드를 일으키니 주의해야 한다.
프로세스의 상태
생성 상태 : 프로세스를 생성 중인 상태로, 메모리에 적재되어 PCB를 할당받은 상태이다. 이후, 준비 상태가 되어 CPU의 할당을 기다린다.
준비 상태 : 자신의 차례가 아니어서 기다리고 있는 상태로, CPU의 할당을 받아 실행 상태로 전환되는 것을 디스패치라고 한다.
실행 상태 : CPU를 할당받아 실행 중인 상태이다. 타이머 인터럽트가 발생하면 준비 상태가 되고, 입출력 작업을 하는 경우 대기 상태가 된다.
대기 상태 : 입출력 작업을 요청하거나 바로 확보할 수 없는 자원을 요청하는 등 실행이 불가능한 조건에 놓이는 경우 대기 상태가 된다. 실행 가능한 상태가 되면 다시 준비 상태가 된다.
종료 상태 : 프로세스가 종료된 상태로, 운영체제는 PCB와 프로세스가 사용한 메모리를 정리한다.
느낀 점
프로세스가 동작하는 원리를 알고나니, 크롬에서 창을 옮겨야하는 상황일 때마다 조심스러워진다..
컨텍스트 스위칭이 너무 자주 발생하는건 아닌지 ..
'컴퓨터 과학 > 운영체제' 카테고리의 다른 글
[운영체제] 동기화와 교착 상태 (0) | 2025.03.11 |
---|---|
[운영체제] 멀티프로세스와 멀티스레드 (0) | 2025.02.03 |
[운영체제] 프로세스의 종류 (0) | 2025.01.24 |
[운영체제] 운영체제란 (0) | 2025.01.23 |
[운영체제] 메모리구조와 할당방식 (0) | 2024.12.30 |