Context Switch
2021. 7. 25. 11:08ㆍCS/OS
728x90
운영체제를 이제 슬슬 공부해볼까 한다. 운영체제를 공부할 때는 프로세스와 스레드가 가장 중요한 것 같은데, 프로세스와 스레드는 인터넷에 검색해서 공부를 했고, 주변 개념들을 하나씩 보려고 한다. 나중에 시간이되면 프로세스랑 스레드도 정리해볼까 하고..
Context
CPU가 해당 프로세스를 실행하기 위한 프로세스의 정보들
- 한 프로세스의 문맥은 PCB에 저장된다.
- PCB 정보- 프로그램 카운터 : 프로세스가 다음에 실행할 명령어 주소- 프로세스 번호
- - 레지스터 : 누산기, 스택, 색인 레지스터
- - 프로세스 상태 : 생성, 준비, 수행, 대기, 중지
Context Switch
문맥 교환(Context Switch)은 하나의 프로세스가 CPU를 사용중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스 상태를 보관하고 새로운 프로세스의 상태를 적재하는 작업
프로세스간 문맥 교환
- Process P0과 Process P1이 있다.
- P0이 CPU를 Execute하고 있고 P1이 Idle 상태이다.
- 잠시 후 P1이 Execute 되고 P0이 대기가 되는 상태가 된다.
- 이 때 P0이 idle상태로 될 때 지금까지 작업하던 내용을 어딘가에 저장하게 된다 이를 PCB라 한다.
- P0은 PCB에 저장해야 하고, P1을 실행시키기 위해 PCB에서 불러와야 한다.
- 이렇게 idle -> Execute -> ... 상태를 번갈아가면서 하는 것을 Context Switch라고 한다.
단점
- 컨텍스트 스위치가 많이 일어나면 Overhead가 발생하여 성능이 저하될 수 있다.
- Context Switch가 일어날 때는 CPU가 아무 일도 하지 못 한다.
Thread
- 스레드에서는 컨텍스트 스위치를 할 때, PCB에는 스택 및 간단한 정보만 저장한다.
- 컨텍스트 스위칭이 프로세스보다 훨씬 빠르다.
참조
'CS > OS' 카테고리의 다른 글
[OS] UNIX 운영체제 (0) | 2021.08.18 |
---|---|
메모리 관리 전략 feat. 페이징, 세그멘테이션 (0) | 2021.08.08 |
Telnet으로 Memcached 정보 조회하기 (0) | 2021.07.19 |
LDAP 이란 (0) | 2021.07.19 |
[Linux] WSL (0) | 2021.07.19 |