[OS] PCB와 Context Switching

윤정민·2023년 9월 28일
0

OperationSystem

목록 보기
7/16

1. Process Management

  • cpu의 프로세스가 여러개일 때, cpu 스케줄링을 통해 관리하는 것

2. Process Metadata

  • 프로세스의 특징을 가지고 있는 것
  • 구성: ID, State, Priority, CPU Registers, Owner, CPU Usage, Memory Usage
  • 프로세스가 생성될 때 PCB(Process Control Block)이라는 곳에 저장

3. PCB(Process Control Block)

  • 프로세스의 메타 데이터가 저장되는 곳으로, PCB안에는 한 프로세스의 정보가 담김

  • context switching 시 수정 대기 중인 프로세스에 관한 저장 값을 PCB에 저장해둠
  • Linked List 방식으로 관리됨
    • 삽입/삭제가 용이하기 때문

4. Context Switching

  • cpu가 이전 프로세스의 상태를 PCB에 보관하고, 또다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정

    • 프로세스의 상태 변경시 사용됨
  • 프로세스 수행 중 대기 상태가 될 때 CPU가 놀게되니 다른 프로세스를 실행하도록 context switching을 실행함(Context Switching 의 Overhead)

  • 문맥교환이 필요한 이유

    • cpu는 한 번에 하나의 프로세스만 수행가능
    • 하지만 여러개의 프로세스를 수행해야하니 동시에 수행하는 것 처럼 보이게 하기위해 번갈아가며 수행
  • 문맥교환이 발생하는 시점

    • cpu 스케줄링에 의해 할당된 작업 시간이 끝나 타임아웃이 발생할 때 실행
    • 프로세스의 작업이 끝났을 때
    • 실행 중이던 프로세스가 입출력 요청을 할 때
profile
그냥 하자

0개의 댓글