운영체제 - PCB와 Context Switching

델리만쥬 디퓨저·2024년 8월 22일

운영체제

목록 보기
5/13

PCB(Process Control Block)

  • 운영체제가 각 프로세스를 관리하기 위해 사용하는 데이터 구조
  • 각 프로세스는 고유한 PCB를 가지며, 이 PCB는 프로세스의 현재 상태 및 관련 정보를 저장함
  • 운영체제는 PCB를 참조하여 프로세스를 관리하고 문맥 교환(Context Switching)을 수행할 때 필요한 데이터를 얻고 저장

PCB 구조

  • 프로젝트 식별자(PID, Process ID)
    - 운영체제가 각 프로세스를 구분하기 위해 부여하는 고유한 식별자
  • 프로세스 상태(Process State)
    - 생성(New), 준비(Ready), 실행(Running), 대기(Waiting), 완료(Terminated) 등의 상태로 구분됨됨
  • 프로그램 카운터(Program Counter)
    - 프로세스가 다음에 실행할 명령어의 주소를 가리키는 것
  • 레지스터(Register)
    - CPU 레지스터의 현재 값들을 저장하며 여기에는 프로세스가 사용하는 다양한 데이터들이 포함
    - 문맥 교환 시 이 값들을 저장하고 불러와야 함
  • 메모리 관리 정보(Memory Management Information)
    - 프로세스가 사용하는 메모리와 관련된 정보
    - 페이지 테이블, 세그먼트 테이블, 기초 주소 레지스터(Base Register) 등이 포함됨
  • 계정 정보(Accounting Information)
    - CPU 사용 시간, 프로세스 시작 시간, 프로세스가 사용한 자원 등과 같은 정보를 담고 있음
  • 입출력 상태 정보(I/0 Status Information)
    - 프로세스가 사용 중인 입출력 장치와 파일에 관한 정보 저장

문맥 교환 (Context Switching)

  • CPU가 현재 실행 중인 프로세스의 상태를 저장하고, 다음 실행할 프로세스의 상태를 복구하는 과정
  • 멀티태스킹 환경에서 매우 중요한 작업으로, 프로세스 간의 전환이 원활하게 이루질 수 있도록 해줌

문맥 교환의 과정

  1. 현재 프로세스의 상태 저장
    • 현재 실행 중인 프로세스의 레지스터 값, 프로그램 카운터, 기타 중요한 정보를 PCB에 저장
  2. 새로운 프로세스 선택
    • CPU 스케줄러가 다음에 실행할 프로세스를 선택
    • 이 프로세스의 PCB를 가져옴
  3. 새로운 프로세스 상태 복구
    • 선택된 프로세스의 PCB에 저장된 레지스터 값과 프로그램 카운터 등을 복원
  4. 프로세스 실행 재개
    • CPU가 새로 선택된 프로세스의 명령어를 실행

문맥 교환의 오버헤드

  • 문맥 교환은 필수적인 작업이지만, CPU 자원을 소모하고 성능에 영향을 미치는 오헤드가 발생
  • 프로세스 상태 저장 및 복구, 캐시 메모리 무효화, 메모리 관리 정보 전환 등의 이유발생하는 오버헤드로 인해, 문맥 교환이 빈번하면 시스템 성능이 저하될 수 있음

PCB와 문맥 교환의 관계

  • 운영체제는 PCB를 통해 프로세스의 상태를 관리하고, 문맥 교환 시 PCB에 현재 상태를 저장하거나 이전 상태를 복구함
  • 이를 통해 운영체제는 다수의 프로세스를 효율적으로 관리하고, 사용자에게 멀티 태스킹 환경을 제공
profile
< 너만의 듀얼을 해!!! )

0개의 댓글