컨텍스트 스위칭이란?
문맥교환(Context Switching)
멀티 프로세스 환경에서 현재의 프로세스 상태(Context)는 보관하고, 다음 순서의 프로세스가 동작하면서 이전에 보관했던 상태를 복구하는 작업을 말한다.
컨텍스트 스위칭은 왜 필요한가?
멀티 프로세스 환경에서 사실은 한 번에 하나의 프로세스만 실행된다. 굉장히 빠르게 바뀌고 있기 때문에 동시에 실행되고 있는 것처럼 보이는 것. 이는 프로세스 스케줄링에 의해서 이루어진다. 실행 중인 프로세스의 CPU 할당 시간이 끝나면 해당 프로세스를 중지시키고 다음 프로세스를 실행해야 한다.
어디에 무엇을 저장하는가?
운영체제가 프로세스의 정보를 저장해놓는 공간인 PCB(Process Control Block)에 정보들이 저장&복구된다.
- 프로세스 상태 : 생성, 준비, 수행, 대기, 중지
- 프로스램 카운터
- 레지스터 관련 정보
- 프로세스 번호
멀티 프로세스의 컨텍스트 스위칭
모든 메모리가 독립적이므로 컨텍스트 스위칭의 오버헤드가 크다.
멀티 쓰레드의 컨텍스트 스위칭
쓰레드도 컨텍스트 스위칭이 가능하다.
데이터, 코드, 힙 영역은 공유되고 스택, 레지스터만 백업하고 불러오기 때문에 오버헤드가 작다.
'🛡️ 기술 면접용 질문들 > 운영체제 관련' 카테고리의 다른 글
프로세스(Process) vs 쓰레드(Thread) (0) | 2021.04.16 |
---|---|
가비지 컬렉션 (Garbage Collection) (0) | 2021.04.13 |
운영체제의 메모리영역 / 스택(stack) vs 힙(heap) (0) | 2021.04.12 |