컴퓨터가 매번 하나의 프로세스만 처리할 수 있다면?
- 해당 Task가 끝날때까지 다음 Task는 기다릴 수 밖에 없습니다.
- 반응속도가 매우 느리고 사용하기 불편합니다.
Context-Switching이란?
- 여러개의 프로세스가 실행되고 있을 때 기존에 실행했던 프로세스를 중단하고 다른 프로세스를 실행시키는 기술입니다.
- CPU에 실행할 프로세스를 교체하는 기술입니다.
PCB
- PCB(Process Context Block)이라고 하는 메모리의 별도 공간에 프로세스 상태값들을 저장하고 찾는다.
- 프로세스가 실행 중인 상태를 스냅샷을 찍어 저장한다고 생각하면 좋습니다.
PCB 구성요소
- 프로세스 ID
- 레지스터값((1)PC,(2)SP)
(1) PC (Process Counter)
다음 실행할 명령어의 주소값
(2) SP (Process state)
프로세스상태
- Memory Info : 전체 프로세스 사이즈
Context Switching 작동순서
- 스케줄러가 A 프로세스를 중단하고 B프로세스를 실행하는 것을 요청합니다
- A프로세스에서 Stack의 데이터 위치를 가리키고 있는 SP(Stack Pointer)의 값과 다음 실행해야하는 코드의 주소값을 가지고 있는 PC의 값을 PCB에 저장합니다.
- A프로세스는 ready에서 block 상태로 바뀌고 CPU에서 B프로세스를 실행합니다. 이 과정에서 B프로세스가 ready에서 running으로 바뀌는데 이를 디스패치(dispatch)라고 합니다.
- 반대로 다시 B프로세스에서 A프로세스로 콘텍스트 스위칭을 하게 된다면, B프로세스의 SP값,PC값을 PCB에 저장하고 A프로세스 PCB에서 SP값과 PC값을 찾아 덮어씌웁니다
'면접 질문지 소스' 카테고리의 다른 글
면접질문: OSI 7계층 vs TCP/IP 4계층 (0) | 2024.04.30 |
---|---|
면접질문: TCP와 UDP의 차이에 대해 설명해주세요. (0) | 2024.04.25 |
면접 질문 : 트랜잭션에 대해 설명해주세요 (0) | 2024.04.23 |
면접 질문 : 프로세스와 쓰레드의 차이에 대해 설명해주세요. (0) | 2024.04.23 |
면접 질문 : API에 대해 간단히 설명해주세요. (0) | 2024.04.22 |