Computer/CS

PCB & Context Switching

에린_1 2024. 7. 3. 15:27
728x90

PCB & Context Switching

Process Management

  • CPU가 프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것을 말한다.
  • 이때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능하다. 프로세스들의 특징을 가지고 있는 것이 바로 Process Metadata 이다.
  • Process Metadata
    • Process ID
    • Process State
    • Process Priority
    • CPU Registers
    • Owner
    • CPU Usage
    • Memory Usage
  • 이 메타데이터는 프로세스가 생성되면 PCB(Process Control Block)이라는 곳에 저장된다.

PCB(Process Control Block)

  • 프로세스 메타데이터들을 저장해 놓은 곳을 말한다.
  • 한 PCB안에는 한 프로세스의 정보가 담겨있다.
  • PCB가 왜 필요한지
    • CPU에서 프로세스의 상태에 따라 교체작업이 이루어진다.(interrupt가 발생해서 할당받은 프로세스가 waiting 상태가 되고 다른 프로세스를 running으로 바궈 올릴 때)
    • 이때, 앞으로 다시 수행할 대기 중인 프로세스에 관한 저장 값을 PCB에 저장해두는 것이다.
  • PCB 관리
    • Linked List 방식으로 관리된다.
    • PCB List Head에 PCB들이 생성될 때마다 붙게 된다. 주소값으로 연결이 이루어져 있는 연결리스트이기 때문에 삽입 삭제가 용이하다.
    • 프로세스가 생성되면 해당 PCB가 생성되고 프로세스 완료시 제거된다.
    • 이렇게 수행 중인 프로세스를 변경할 때, CPU의 레지스터 정보가 변경되는 것을 Context Switching 이라고 한다.

Context Switching

  • CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에 읽어 레지스터에 적재하는 과정
  • 보통 인터럽트가 발생하거나, 실행 중인 CPU 사용 허가시간을 모두 소모하거나, 입출력을 위해 대기해야 하는 경우에 Context Switching이 발생한다.
728x90

'Computer > CS' 카테고리의 다른 글

Database - Key  (0) 2024.07.08
IPC(Inter Process Communication)  (1) 2024.07.03
프로세스 & 스레드  (1) 2024.06.28
운영체제(OS, Operationg System)  (0) 2024.06.28
ARM 프로세서  (0) 2024.06.27