운영체제

PCB와 Context Switching

탁재민 2024. 3. 20. 21:03

프로세스 제어 블록 (PCB: Process Control Block)

프로세스의 생성부터 종료까지 그 프로세스에 대한 모든 중요 정보를 유지하는 자료구조

 

PCB에 저장되는 정보

  • 프로세스 식별자(Process ID, PID)
  • 프로세스 상태: Ready, Running, Waiting
  • 프로그램 카운터(Program Counter, PC): 프로세스가 다음에 실행할 명령어의 주소
  • CPU 레지스터
  • CPU 스케줄링 정보: 프로세스 우선순위, 스케줄링 큐에 대한 포인터, 최종 실행 시간 등
  • 메모리 관리 정보: 프로세스의 주소 공간, 페이지 테이블, 세그먼트 테이블 등
  • 입출력 상태 정보: 프로세스에 할당된 입출력 장치 등
  • 계정 정보: CPU 사용 시간, 실제 사용 시간 등

컨텍스트 스위칭 (Context Switching)

CPU가 다른 프로세스로 작업을 전환하는 과정
  1. 멀티태스킹 상황(실행 중인 CPU 사용 허가시간을 모두 소모)이나 인터럽트 처리 위해 컨텍스트 스위칭 발생
  2. 현재 실행 중인 프로세스의 상태 PCB에 저장
  3. 스케줄러에 의해 선택된 다음 프로세스의 PCB에서 상태 정보를 로드하여 CPU 레지스터, 프로그램 카운터 등을 설정
  4. 새 프로세스 실행