1. Context Switching 이란?
- 멀티 프로세스 환경에서 CPU가 어떤 하나의 프로세스를 실행하고 있을 때,
운영체제의 스케줄링에 따라 인터럽트 요청이 발생해서 다음 프로세스가 실행되어야 할 때
각 프로세스 들은 메모리를 공유하지 않기 때문에, 기존의 프로세스의 상태(레지스터 값)을 저장하고
다음 프로세스의 상태(레지스터 값)을 교체하는 작업을 Context Switching( 문맥 교환 ) 이라고 한다.
- OS에서 Context는 CPU가 프로세스를 실행하기 위한 그 프로세스의 정보들을 말한다.
이 Context는 프로세스의 PCB(Process Control Block)에 저장된다.
Context Switching이 발생하면 CPU는 해당 프로세스의 PCB 정보를 받아와서 이전의 작업을 이어 수행한다.
- ** PCB는 Process State, Process Counter ( 다음 실행할 명령어의 위치 (주소 값) ), registers 등으로 구성
- Context Switching 이 발생할 경우 시간 소요가 많이 된다.
( 실행 중이던 프로세스의 PCB를 저장하고, 실행할 프로세스의 PCB를 불러오고, 캐쉬를 초기화 하고.......등)
- 주체는 Operating System (운영 체제) 이다.
2. Interrupt 발생 시 Context Switching
- 해당 프로세스에 할당된 CPU 사용시간이 만료되어 다른 프로세스를 처리해야 할 때 Interrupt 발생
- 입출력 요청 등의 사항으로 현재 프로세스 처리를 멈춰야 할 때 Interrupt 발생
- 등등......
'학부생 공부 > 운영체제(os)' 카테고리의 다른 글
스케줄러(scheduler) 종류 (0) | 2021.09.20 |
---|---|
멀티 프로세스 VS 멀티 스레드 (0) | 2021.09.19 |
프로그램, 프로세스와 쓰레드 (0) | 2021.05.19 |