Context Switching 이란?
멀티프로세스 환경에서 CPU가 하나의 프로세스를 작업중인 상황에서 인터럽트의 요청에 의한 CPU에서 작업중인 프로세스의 상태 값을 PCB 에 저장해 새로운 프로세스의 상태를 적재 하는 것을 의미합니다.
PCB
Context Switching은 PCB라는 메모리 공간에 프로세스 상태값은 저장하고, 해당값들을 찾는 방법으로 구현됩니다.
PCB에 저장되는 내용
- Process ID(PID)
- 레지스터 값(PC,SP등)
- Scheduling info(프로세스 상태)
- Memory info(메모리 사이즈),전체 프로세스 사이즈 등
Context Switching 은 언제 일어날까?
- I/O request (입출력 요청할 때)
-
time slice expired (CPU 사용시간이 만료 되었을 때)
-
fork a child (자식 프로세스를 만들 때)
Context Switching 은 왜 필요할까
- 멀티 프로세싱,멀티 쓰레딩을 통해 빠른 속도로 응답할 수 있기 때문입니다.
- 우선순위가 높은 프로세스가 현재 프로세스를 중지시키고 CPU를 차지하는 선점형 프로세스 방식이기 때문에 높은 우선순위를 가진 프로세스들이 빠른 처리가 요구되는 시스템에서 유용하기 때문입니다.
'Server' 카테고리의 다른 글
TCP 에 대해 ( 3way handshake / 4way handshake) (0) | 2023.08.13 |
---|---|
Socket 통신에 대해서(HTTP 통신과 비교) (1) | 2022.08.18 |
#1 서버(Server) 와 클라이언트(Client)이해하기 (0) | 2022.08.10 |
AWS S3(Simple Storage Service)란 무엇인가? (0) | 2022.07.11 |
AWS EC2(Elastic Compute Cloud)이 무엇인가? (2) | 2022.07.05 |
댓글