Context Switching이란
멀티 프로세스 환경에서, 어떤 하나의 프로세스가 실행된 상태에서 인터럽트 요청에 의해 다른 프로세스가 실행되어야 할 때,
기존의 프로세스에 대한 정보를 보관하고 새로운 프로세스에 대한 정보를 적재하는 작업을 말한다.
Context란
CPU가 해당 프로세스를 실행하기 위한 해당 프로세스의 정보들이다. Context는 프로세스의 PCB에 저장된다.
인터럽트(Interrupt)란
CPU가 프로그램을 실행하고 있을 때,
실행중인 프로그램 밖(입출력 하드웨어 등)에서 예외상황이 발생하여 처리가 필요할 경우에
CPU에게 알려 예외 상황을 처리할 수 있도록 하는 것을 말한다.
즉, 인터럽트는 OS가 CPU를 현재 작업에서 빼앗아 커널 루틴을 실행할 수 있게 한다.
인터럽트가 발생하면 시스템은 인터럽트 처리 후에 Context를 복구할 수 있도록,
커널은 실행 중인 프로세스의 Context를 PCB에 저장하고 실행이 스케줄된 새 프로세스의 저장된 Context를 복구한다.
Context Switching이 진행될 동안 시스템이 아무런 유용한 일을 하지 못하기 때문에 Context Switching 시간은 순수한 오버헤드이다.
참고도서: Operating System Concepts 9th
'Development knowledge' 카테고리의 다른 글
WAS (Web Application Server)와 Web Server (0) | 2018.11.29 |
---|---|
라이브러리, 프레임워크, 아키텍처, 플랫폼이란 (0) | 2018.11.29 |
프로세스(Process)란 (0) | 2018.11.24 |
컴퓨터 시스템의 구성요소 및 운영체제(OS)란 (0) | 2018.11.24 |
함수 호출방식 (call-by-value, call-by-reference) (0) | 2018.11.21 |