[OS] Context Switching

emz·2022년 7월 31일
0

Context Switching이란?

  • 수행 중인 프로세스를 변경할 때, CPU의 레지스터 정보가 변경되는 것을 context switching이라고 한다.
  • CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에 읽어 레지스터에 적재하는 과정.
  • 보통 인터럽트가 발생하거나, 실행 중인 CPU 사용 허가시간을 모두 소모하거나, 입출력을 위해 대기해야 하는 경우에 발생한다.
  • 다양한 사람들이 동시에 사용하는 것처럼 하기 위해서 context switching이 필요하게 됐다. 빠르게 Task를 바꾸면서 실행하기에 사람들한테는 실시간 처리가 되는 것처럼 보인다.

PCB란?

  • 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓을 수 있는 저장 장소. 한 PCB 안에는 한 프로세스의 정보가 담겨 있다.
  • CPU에서는 프로세스의 상태에 따라 교체작업이 이루어지는데, 이때, 앞으로 다시 수행할 대기 중인 프로세스에 관한 저장값을 PCB에 저장해두는 것이다.
  • PCB는 LinkedList 방식으로 관리된다.
  • 프로세스가 생성되면 해당 PCB가 생성되고 프로세스 완료 시 제거된다.

인터럽트(Interrupt)란?

  • 프로그램 실행 도중에 예기치 못한 상황이 발생했을 때 현재 실행 중인 프로그램을 즉시 중단하고, 발생된 상황에 대한 우선 처리가 필요함을 CPU에게 알리는 것.
  • 지금 실행 중인 일보다 더 중요한 일(ex. 입출력, 우선순위 연산 등)이 발생하면 그 일을 먼저 처리하고 나서 하던 일을 계속해야 된다.
  • 외부/내부 인터럽트는 CPU의 하드웨어 신호에 의해 발생
  • 소프트웨어 인터럽트는 명령어의 수행에 의해 발생





    [참고]
  • PCB&Context Switching
  • Interrupt
  • Interrupt
profile
끄적끄적

0개의 댓글