티스토리 뷰
이번 포스팅은 저번 포스팅인 프로세스란 무엇인가 에서 살짝 이어지는 내용입니다.
저번 포스팅에서 프로세스의 상태전이, 스케줄링에 관한 이야기를 했는데 실제로 프로세스가 실행 상태에 있다가 준비 상태로 전이 되면 그 프로세스가 사용하던 정보와 상태, 그리고 레지스터 값은 어디로 가며 전에 준비 상태 이던 프로세스가 실행 상태로 전이 될때 그 프로세스가 가지고 있던 정보가 어디서로부터 오느냐 라는 문제가 생기는데.
이럴때 사용하는 방식이 문맥 교환(Context Switching)이다.
문맥 교환이란 실행 상태인 A 프로세스와 준비 상태인 B 프로세스가 존재 할때.
인터럽트나 입출력 이벤트로 인해 둘 프로세스의 상태가 서로 전이 된다고 하자.
그러면 A 프로세스는 실행 -> 준비 상태가 되며, B 프로세스는 준비 -> 실행 상태로 전이가 된다.
이때 A의 프로세스에 대한 정보(상태, 레지스터 값등)은 프로세스 마다의 고유한 메모리 공간인 PCB(Process Control Block)에 저장이 되고
B의 프로세스에 대한 정보는 B의 PCB 공간에서 CPU로 적재가 된다.
(PCB 공간을 사용하는 모습)
'OS' 카테고리의 다른 글
POSIX란 무엇인가. (0) | 2017.02.11 |
---|---|
IPC(Inter-Process Communication) 이란 (0) | 2017.02.11 |
프로세스란 무엇인가 (1) | 2017.02.09 |
커널의 종류 (0) | 2017.02.08 |
커널의 기능들 - 2 (0) | 2017.02.08 |
댓글