📌 디스패처
디스패처는 CPU 스케줄러에 의해 선택된 프로세스를 실행 상태( Running )로 전환하는 역할을 수행한다.
즉, 준비( Ready ) 큐에 있는 프로세스가 CPU를 할당받아 실행되는 과정을 담당한다.
프로세스가 준비 상태에서 실행 상태로 전환되는 것을 '디스패치'라 한다.
📌주요 기능
1️⃣ 문맥 복원( Context Restoration )
- CPU가 이전에 다른 프로세스를 실행 중이었다면, 새롭게 실행될 프로세스의 PCB를 로드한다.
2️⃣ CPU 모드 전환( User Mode 전환 )
- 운영체제는 일반적으로 '커널 모드'에서 실행되지만, 일반 프로세스는 '사용자 모드'에서 실행된다.
- 디스패처는 CPU 모드를 커널 모드에서 사용자 모드( User Mode )로 전환하여 프로세스를 실행할 수 있도록 한다.
3️⃣ 프로그램 카운터( PC, Program Counter ) 설정
- 실행할 프로세스의 PCB에서 프로그램 카운터의 값을 읽어와 CPU에 설정해준다.
- 프로그램 카운터는 프로세스가 마지막으로 실행되던 명령어의 위치를 가리키는 레지스터다.
4️⃣ 프로세스 실행( CPU 제어권 넘김 )
- CPU가 해당 프로세스를 실행하도록 제어권을 넘긴다.
- 프로세스가 실행 상태로 전환된다.
📌 디스패처의 동작 과정
🔹 단계 1 : 스케줄러가 실행할 프로세스 선택
- 운영체제의 CPU 스케줄러가 준비 큐에서 실행할 프로세스를 선택한다.
🔹 단계 2 : 문맥( Context ) 복원 및 CPU 설정
- 디스패처가 선택된 프로세스의 PCB 정보를 로드
- PCB에서 CPU 레지스터, 프로그램 카운터, 스택 포인터 값을 복원
- 이전에 수행하던 명령어 위치를 CPU에 설정
- CPU 모드를 커널 모드에서 사용자 모드로 전환
🔹 단계 3 : 실행 상태로 전환 및 프로세스 시작
- 디스패처가 CPU의 제어권을 프로세스에 넘긴다.
- 프로세스가 실행( Running ) 상태로 전환되어 명령어 수행 시작
✅ 이제 프로세스가 CPU를 점유하고 실행을 시작한다고 볼 수 있다.
'CS' 카테고리의 다른 글
[CS] 빅 엔디안, 리틀 엔디안 (0) | 2025.02.23 |
---|---|
[CS] sleep 함수 (0) | 2025.02.11 |
[CS] 디자인 패턴 (0) | 2024.11.11 |
[CS] IP 주소의 체계, 사설망, 공인망 (0) | 2024.10.07 |
[CS] 랜카드, MAC 주소 (0) | 2024.10.02 |