PCB와 Context Switching

상현·2023년 1월 29일
0

cs스터디

목록 보기
16/28
post-thumbnail

PCB

  • 프로세스 제어 블록

  • 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 커널의 자료구조

  • 프로세스 스케줄링을 위해 프로세스에 관한 모든 정보를 가지고 있는 데이터베이스

  • 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거됨

  • PCB가 프로세스의 중요한 정보를 포함하고 있기 때문에, 일반 사용자가 접근하지 못하도록 보호된 메모리 영역 안에 남음

    • 일부 운영 체제에서 PCB는 커널 스택의 처음에 위치함

구성

  • 프로세스 식별자(ID)
  • 프로세스 상태
  • 프로세스 계수기
    • 이 프로세스가 다음에 실행할 명령어의 주소를 의미
  • CPU 레지스터 및 일반 레지스터
  • CPU 스케줄링 정보
  • 메모리 관리 정보
    • 해당 프로세스의 주소 공간
  • 프로세스 계정 정보
    • 페이지 테이블, 스케줄링 큐 포인터, 소유자, 부모
  • 입출력 상태 정보


Context Switching

  • 일반적으로 CPU가 하나이기에 하나의 Task만 실행 가능하지만 빠른속도로 Task를 바꿔가며 작업하면 실시간으로 여러 Task를 동시에 할 수 있는 것처럼 보임

    • 이러한 작업을 위해 필요한 것이 Context Switching
  • CPU가 다음 프로세스를 수행하도록 새로운 프로세스의 상태 또는 레지스터 값을 교체하는 작업

    • 너무 잦아지면 오버헤드가 발생해 비효율적
      • 오버헤드 : 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리

과정

  • 현재 실행하고 있는 Task의 PCB 정보를 저장
  • 다음에 실행할 Task의 PCB정보를 레지스터에 넣어 교체함

0개의 댓글