Context Switching

운영체제 2016. 9. 8. 21:56
반응형
SMALL

이번시간엔 Context Switching(문맥교환)에 대해 포스팅 해보려고 한다. synchronous blocking, non-blocking쪽을 공부하다가 나온 개념이었다. 그래서 이게 어떤것인지 정확하게 알지 못해서 Context Switching에 대해 공부를했다. 그 결과를 포스팅해보고자 한다.



Context Switching(문맥교환)은 우리나라 말로 해석하게 되면 문맥교환이란 의미가 된다. 컴퓨터에서도 마찬가지이다. 서로 정보를 교환한다. 하지만 이것이 어떻게 교환되는지 자세히알아보자. 


1. Context Switching은 어떤것인지?


 Ready 상태인 A 프로세스와 Running 상태인 B 프로세스가 있다고 가정하자. 이 프로세스는 인터럽트의 요청을 받게 된다고 또 가정을 하게 된다면 인터럽트에 의해서 서로 상태가 전이된다. 즉, A프로세스는 Running 상태가 되고 B프로세스는 Ready상태가 된다. 그럼 도데체 거기에 저장되어 있던 데이터는 어디로 갔을까? 만약 저장되어 있었던 기존의 데이터들이 저장되지 않고 그대로 교환되어버리면 데이터들이 날아가버리는 불쌍사가 발생한다. 그래서 A프로세스의 상태 또는 레지스터 값 등이 PCB에 저장되고, A 프로세스의 정보를 PCB에서 CPU로 적재시킨다. 그렇게 되면 또 B프로세스는 현재 저장된 A프로세스의 데이터들을 메모리 공간에 저장해두게 된다. 이것이 Context Switching이다. 서로 맞교환을 하지만 그 전에 저장되어있던 데이터들을 다 백업에 백업을 거쳐서 저장해놓기 때문에 Context Switching이 일어나도 그 전에 있던 데이터들은 항상 보존되게 된다.


2. 그럼 PCB는 무엇인지?


PCB는 Process Control Block의 약자로 프로세스나 레지스터의 값같은 데이터들을 저장할수 있는 공간이며, 프로세스마다 고유한 PCB의 값을 가지게 된다. 


3. Context Switching에 대한 모식도



출저: http://mooneegee.blogspot.kr, 윤성우의 시스템프로그래밍



이 그림이 가장 이해하기도 편해서 포스팅한다. Running상태인 A 프로세스와 Ready 상태인 B 프로세스가 Context Switching이 일어났다고 가정을 했을때 그림인데, A프로세스 데이터는 CPU에 적재되어 있고 B프로세스 데이터들은 메모리에 적재되어 있음을 보여주고 있는 상태이다.


4. 그럼 Context Switching의 단점은?


단점이 없는게 아니다. 제일 대표적인 단점이 CPU의 과부하다. 프로세스가 서로 변경되는 과정에서 데이터들을 서로 백업하고 백업하는 과정을 거치기때문에 당연히 그 과정에서 CPU가 큰 부담을 느낄 수 밖에 없다. 프로세스가 실행이 많이되면 많이 될수록 당연히 Context Switching의 과정은 많아질 수 밖에 없다. 그래서 운영체제 설계자들은 이러한것을 줄이기 위해 연구중이라고 한다. 




이렇게 Context Switching에 대해서 포스팅을 해봤는데 최대한 쉽게 풀어써보려고 노력했다. 내가 이해했던 내용을 썼지만 어려운 개념일 수도 있기 때문에 좀 더 많은 책들을 찾아보는 노력도 필요할 것 같다.

반응형
LIST

'운영체제 ' 카테고리의 다른 글

이중동작모드(Dual-Mode operation)  (0) 2017.01.15
멀티프로세싱(Multi Processing)이란?  (0) 2016.09.20
임계구역(Critical section)  (0) 2016.09.11
DeadLock 특징들  (0) 2016.08.19
가상메모리  (0) 2016.08.10
블로그 이미지

만년필석사

,