📌 디스패처

디스패처는 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 설정

  1. 디스패처가 선택된 프로세스의 PCB 정보를 로드
    • PCB에서 CPU 레지스터, 프로그램 카운터, 스택 포인터 값을 복원
    • 이전에 수행하던 명령어 위치를 CPU에 설정
  2. CPU 모드를 커널 모드에서 사용자 모드로 전환

🔹 단계 3 : 실행 상태로 전환 및 프로세스 시작

  1. 디스패처가 CPU의 제어권을 프로세스에 넘긴다.
  2. 프로세스가 실행( 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

+ Recent posts