운영체제

PCB와 Context Switching

Younghun 2024. 1. 22. 11:35

1. PCB

개념

  • 운영체제가 프로세스를 관리하기 위해 사용하는 자료구조
  • PCB는 각 프로세스마다 생성되며, 해당 프로세스의 상태 정보와 제어 정보를 저장
  • Context Switching 발생 시 프로세스의 상태 유지를 위해 사용되며, 프로세스가 종료되면 PCB도 함께 제거

출처: https://junsangkwon.tistory.com/45

구성요소

  1. Process ID : 프로세스의 고유 식별자
  2. Process State : 프로세스의 상태 (new-ready-running 등)
  3. Program Counter : 다음 명령어의 주소값
  4. Register : SP 등의 CPU 레지스터 값
  5. CPU Scheduling Information : 프로세스 우선순위, 최종 실행시간, CPU 점유시간 등
  6. Memory management information : 해당 프로세스의 주소 공간 정보
  7. I/O Status : 프로세스에 할당된 입출력 장치 목록, 열린 파일 목록 등

출처: https://whereisusb.tistory.com/12

저장방식

  • PCB List Head에 Linked List 형태로 저장
  • 프로세스 레디 큐, 블락 큐도 Linked List로 관리됨

2. Context Switching

개념

  • 운영체제가 CPU에 할당된 프로세스를 다른 프로세스를 교체하는 과정
  • 여러 프로세스가 동시에 실행되는 것처럼 보이게 만들기 위해 필요
  • 시스템콜 호출 시 발생하는 [사용자 모드 - 커널 모드] 전환은 모드 스위칭이라고 부름

출처: https://junsangkwon.tistory.com/45

수행과정

  1. P1이 실행되다가 인터럽트나 시스템 콜(블로킹 등)이 발생한다.
  2. PCB1에 P1의 정보를 저장하고 PCB2에서 P2의 정보를 가져와서 실행한다.
  3. P2가 실행되다가 인터럽트나 시스템 콜이 발생한다.
  4. PCB2에 P2의 정보를 저장하고 PCB1에서 P1의 정보를 가져와서 실행한다.

발생상황

  • 프로세스 타임아웃
  • I/O 요청 (인터럽트)
  • 프로세스 작업 종료