운영체제
[운영체제] Chapter03 프로세스 상태(휴식, 보류)와 문맥 교환
wjdwwidz
2025. 1. 5. 21:08
https://www.youtube.com/watch?v=a2GDsaReFEA&list=PLXvgR_grOs1DGFOeD792kHlRml0PhCe9l&index=11
프로세스 상태 및 상태 전이 요약
1. 프로세스의 상태
프로세스는 다음과 같은 상태를 가지며, 각 상태 간 전이가 발생합니다.
- 생성 (Created)
- 프로세스가 생성되어 준비 상태로 들어감.
- 준비 (Ready)
- CPU를 사용할 준비가 된 상태.
- Ready Queue에 들어가 대기.
- 실행 (Running)
- CPU를 점유하여 실제 연산이 진행되는 상태.
- 대기 (Waiting)
- 입출력(I/O) 요청 등으로 인해 작업이 일시적으로 중단된 상태.
- 종료 (Terminated)
- 작업이 완료되거나, 특정 이유로 종료된 상태.
2. 대기 상태의 종류
- 슬립(Sleep)
- 자발적으로 프로세스가 자신을 일시 중단하는 상태.
- 주로 일정 시간 이후 대기열로 복귀.
- 예: sleep() 함수 사용.
- 서스펜드(Suspend)
- 외부 요인(OS 또는 다른 프로세스)에 의해 강제로 중단된 상태.
- 프로세스의 의도와 무관하게 발생.
- 예: 메모리 부족으로 프로세스를 Swap 영역으로 이동.
3. 문맥 교환(Context Switching)
- 정의:
CPU가 실행 중인 프로세스를 변경하기 위해 현재 프로세스의 상태를 저장하고, 새로운 프로세스의 상태를 복구하는 작업.- 문맥(Context):
프로세스가 실행되던 상태(레지스터, 프로그램 카운터 등) - PCB(Process Control Block):
프로세스 상태를 저장하는 데이터 구조.
- 문맥(Context):
- 과정:
- 실행 중이던 프로세스의 상태를 PCB에 저장.
- 대기열에 있는 다른 프로세스를 선택.
- 해당 프로세스의 PCB 정보를 복구.
- 새로운 프로세스 실행.
- 결과:
- CPU가 여러 프로세스를 번갈아 실행하며 멀티태스킹 환경을 구현.
4. 대기열에서의 전환
- 슬립 및 서스펜드 상태 모두 대기열에서 이탈 후 재진입 과정을 거침.
- 슬립: 지정된 시간 후 대기열로 복귀.
- 서스펜드: 외부 요인이 해제될 때 대기열로 복귀.
- 복귀 시 대기열 상황(앞선 프로세스 수)에 따라 추가 대기 시간이 발생.
5. 중요한 개념
- 프로세스 상태 저장:
- PCB에 프로세스의 상태(레지스터, 프로그램 카운터 등)가 저장되어야 흐름을 이어갈 수 있음.
- 실행 흐름의 유지:
- 프로세스는 실행 중단 후에도 흐름을 이어가기 위해 문맥 저장이 필수.
- 문맥 교환의 필요성:
- 멀티태스킹 환경에서 필수적인 작업으로, CPU 효율성을 높임.
6. 참고 및 추가 학습
- 슬립과 서스펜드의 차이점 및 구현 예시는 교재 143-145페이지 참조.
- 문맥 교환에 대한 그림 및 설명은 교재 150페이지에서 확인.
- PCB에 대한 추가 정보는 교재 147페이지 및 인터넷 검색 권장.
요약
- 프로세스 상태 전이는 시스템 효율성과 직결된 중요한 개념.
- 슬립과 서스펜드는 자발성과 외부 요인 여부에서 차이를 가짐.
- 문맥 교환은 CPU가 여러 프로세스를 관리하는 핵심 메커니즘.