알기 쉽게 설명한 문맥(Context), PCB 그리고 문맥 교환

문맥(Context), PCB(Process Control Board) 그리고 문맥 교환(Context Switching)에 대해 알아보겠습니다.

문맥(Context)이란,
  • 현재 프로세스의 상태를 의미합니다. 특정 프로세스와 관련된 정보들의 총집합으로 프로세스가 실행되기 위해 필요한 모든 정보를 포함합니다.
  • 프로세스 상태:
    • 준비 상태(Ready): 프로세스가 CPU를 할당받기 위해 준비 규(Ready Queue)에서 대기하는 상태
    • 실행 상태(Running): 프로세스가 CPU를 할당받고 실행 중인 상태
    • 대기 상태(Blocked): 실행 중인 프로세스가 입출력(I/O) 작업 등 대기가 필요한 시스템 호출(인터럽트 또는 시스템 콜)로 인해 CPU 자원을 반납하고 작업이 완료될 때까지 대기하는 상태
    • 교착 상태(Deadlock): 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
    • 종료 상태(Terminated): 프로세스가 수행을 종료한 상태로, 해당 프로세스를 관리하는 PCB도 삭제
PCB(Process Control Board)란,
  • 운영체제가 각 프로세스를 관리하기 위해 사용하는 데이터 구조로, 각 프로세스마다 고유한 PCB가 있습니다.
  • 구성 요소:
    • 프로세스 상태: 실행 중, 준비 상태, 대기 상태 등.
    • 프로세스 ID: 각 프로세스를 구별하는 고유 ID.
    • 레지스터 값: 프로세스가 마지막으로 실행될 때의 CPU 레지스터 값.
    • 프로그램 카운터: 프로세스가 실행을 재개할 주소.
    • 메모리 관리 정보: 프로세스의 메모리 사용 정보 (페이지 테이블, 세그먼트 테이블 등).
    • I/O 상태 정보: 사용 중인 입출력 장치와 파일 정보.
    • 계정 정보: 사용자의 ID, 프로세스의 우선순위 등.
문맥 교환(Context Switching)이란,
문맥 교환(Context Switching) Diagram

문맥 교환(Context Switching) Diagram

  • Context Save:
    운영체제가 한 프로세스(P1)에서 다른 프로세스(P2)로 전환할 때, 현재 실행 중인 프로세스(P0)의 context를 해당 프로세스의 PCB에 저장합니다.
  • Context Reload:
    새로운 프로세스(P2)로 전환될 때, 해당 프로세스(P2)의 PCB에 저장된 context를 복원합니다. 이를 통해 프로세스는 이전에 중단된 위치에서 실행을 재개할 수 있습니다.

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다