프로세스 제어 블록, Context switching
본 설명은 책 “그림으로 배우는 구조와 원리 운영체제 개정 3판”와 “Operating System Concepts(공룡책)” 를 읽으며 제 나름대로 해석하고 정리해 보았습니다.😉
프로세스 제어 블록
운영체제가 프로세스를 제어할 때 필요한 프로세스 상태 정보는 프로세스 제어 블록에 저장된다.
따라서, 프로세스가 생성되면 메모리에 프로세스 제어 블록을 생성하고, 프로세스가 실행을 종료하면 해당 프로세스 제어 블록도 삭제한다.
위의 그림과 같은 정보가 들어 있는데, 운영체제의 모든 모듈이 이 정보를 읽고 수정할 수 있다.
프로세스의 문맥 교환 (Context switching)
인터럽트나 시스템 호출 등으로 실행 중인 프로세스의 제어를 다른 프로세스에 넘겨 실행 상태가 되도록 하는 것으로 프로세스 문맥 교환이라고 한다. 프로세스 문맥 교환이 일어나면 프로세서의 레지스터에 있던 내용을 나중에 사용할 수 있도록 저장한다. 그래서 이 문맥은 앞에서 설명한 PCB에 표현 되는 것이다. 더 구체적으로 설명하자면, 프로세스 실행 중 인터럽트 혹은 시스템 콜이 발생하게 되면 현재 실행 중 이던 프로세스의 문맥을 PCB에 저장한다. 그리고 해당 프로세스는유휴 상태가 된다. 그리고 새로 실행 되는 다른 프로세스의 PCB가 복원되고 실행되게 된다. 아래의 사진을 보면 이해가 확실히 갈 것이다.