Context Switching

kmb·2021년 12월 12일
0

운영체제

목록 보기
1/5

Context Switching

메모리 교체가 이루어지는 과정.
즉, A 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위인 B 프로세스를 수행하도록 새로운 프로세스의 상태로 교체하는 작업을 Context Switch(Context Switching)라고 한다.


프로세스 P1, P2가 있다고 가정할때
1) 실행상태에 있는 프로세스 P1이 자기에게 주어진 시간을 다 사용해서 timeout되면 P1의 PCB에다가 현재까지의 작업결과를 저장하고 P1은 준비상태로 간다.
2) 준비상태에 있던 프로세스 P2가 실행상태로 가면 CPU의 레지스터가 P2의 PCB값으로 채워져서 작업을 하게 된다.

Context

CPU가 해당 프로세스를 실행하기 위한 해당 프로세스의 정보들
메모리 관점에서 볼 때, 메모리에 로드된 프로세스의 현재 상태를 의미하는 정보들을 의미한다.

Context는 프로세스의 PCB(Process Control Block)에 저장된다.
그래서 멀티프로세스에서는 인터럽트 요청이 왔을때 Context Switching을 통해서 CPU가 PCB의 정보를 읽고 기존의 프로세스가 실행되고 있는 상태에서 새로운 프로세스를 실행한다.

이때 Context Switching은 아래와 같은 인터럽트 요청이 올때 발생한다.
1. I/O required (입출력 요청)
2. time slice expired(CPU 사용시간 만료)
3. 자식프로세스 생성
4. 인터럽트 처리를 기다릴때

또한 Context Switching의 발생 빈도가 높으면 OverHead가 발생하여 효율이 떨어질수있다.

출처

  • 쉽게 배우는 운영체제
profile
꾸준하게

0개의 댓글