PCB와 Context Switching

이창훈·2024년 6월 27일

PCB(Process Controll Block)

PCB(Process Control Block)는 운영 체제에서 각 프로세스에 대한 정보를 저장하는 자료 구조입니다. 프로세스 테이블에 저장되어 사용되며, 주기억장치에 위치합니다. 문맥 교환(Context Switching)을 위해 필수적인 요소입니다.

프로세스의 상태

프로세스는 여러 상태를 가질 수 있습니다.


new와 terminated

  • New: 프로세스가 생성된 상태.
  • Terminated: 프로세스가 종료된 상태.
  • New와 Terminated 상태는 임시적이며, 주로 아래의 세 가지 상태(Ready, Running, Waiting)가 반복되면서 프로세스가 동작합니다.

ready

  • 실행될 준비가 된 상태입니다. 스케줄러(Scheduler)에 의해 선택되고 디스패처(Dispatcher)에 의해 CPU에 할당됩니다.

running & waiting

  • Running: 프로세스가 실행 중인 상태.
  • Waiting: 사용자의 입력을 기다리는 상태. 예를 들어, 프로그램이 다운로드 중 사용자 허용을 기다리는 상황에서는 다운로드는 Running 상태, 허용을 기다리는 상태는 Waiting 상태입니다.

pcb의 구조

  • 프로세스 식별자: 프로세스를 식별하는 용도
  • 프로세스 상태: 준비, 대기,await, 실행 등의 상태를 가진다.
  • 프로세스 권한: 프로세스의 현재 위치를 저장하는 것
  • 프로세스 카운터: 프로그램 카운터는 이 프로세스가 다음에 실행할 명령어의 주소를 가리킴
  • cpu 스케줄링 정보: 우선 순위, 최종 실행시각, CPU 점유시간
  • 계정 정보: 페이지 테이블, 스케줄링 큐 포인터, 소유자, 부모
  • i/o 상태 정보: 프로세스에 할당된 입출력장치 목록, 열린 파일 목록 등
  • cpu 레지스터: 프로세스 실행 중 사용되는 레지스터 상태

Context Switching(문맥 교환)

문맥 교환은 CPU가 현재 실행 중인 프로세스의 상태를 PCB에 저장하고, 다른 프로세스의 상태를 PCB에서 읽어 레지스터에 적재하는 과정을 말합니다.

  • idel: 유후상태
  • excuting: 실행중인 상태
  1. 프로세스 P1이 인터럽트나 시스템 호출을 만나면 PCB1에 상태를 저장합니다.
  2. 프로세스 P2의 상태를 읽어와서 CPU에 할당합니다.
  3. 프로세스 P2가 인터럽트나 시스템 호출을 만나면 PCB2에 상태를 저장합니다.
  4. 프로세스 P1의 상태를 읽어와서 CPU에 할당합니다.

Context Switching이 발생하는 원인

선점형 스케줄링 방식 때문입니다. 선점형 스케줄링에서는 우선순위가 높은 프로세스가 실행 중인 프로세스를 중지시키고, CPU를 차지합니다. 기존 프로세스의 상태를 저장하고 우선순위가 높은 프로세스를 실행하는 것이 Context Switching입니다.

Context Switching의 문제점

잦은 Context Switching은 오버헤드(Overhead)를 발생시켜 성능을 저하시킬 수 있습니다.

  • 오버헤드(Overhead): 문맥 교환 시 사용되는 시간과 메모리의 양.
  • 실행할 프로세스의 정보를 PCB에서 가져오는 동안 CPU가 할당된 프로세스가 없어서 아무 일도 하지 못하는 상황이 잦아지면 성능이 저하됩니다.

Context Cost

  • 캐시 초기화: CPU 캐시가 초기화됩니다.
  • 메모리 매핑 초기화: 메모리 매핑이 초기화됩니다.
  • 커널의 실행 유지: 커널 상태를 유지합니다.

이 문제를 해결하려면, 여러 프로세스 대신 단일 프로세스 내에서 여러 스레드를 생성하여 문맥 교환을 수행하는 것이 좋습니다. 스레드는 메모리 공간을 공유하기 때문에 스택만 정리하면 되므로, 프로세스 간 문맥 교환보다 비용이 적게 듭니다.

참고자료 : https://github.com/devSquad-study/2023-CS-Study/blob/main/OS/os_pcb_and_context_switching.md

profile
한화시스템 BEYOND SW CAMP 2기

0개의 댓글