본문으로 바로가기



프로세스와 PCB


우리 컴퓨터의 CPU는 프로그램을 실행하면 프로세스의 형태로 만들어 처리한다. 이 과정에서 프로세스와 함께 해당 프로세스만의 정보를 담는 PCB(Process Controll Block)이라는 자료구조 생성해 현재 실행중인 프로세스의 정보를 담습니다. 왜 PCB라는 자료구조를 할당받는지가 중요합니다. 본 글의 주제는 문맥교환(Context Switching)이며 앞에서 설명드린 내용이 키포인트가 됩니다.



문맥교환


컴퓨터 학과에 진학해 처음 OS를 배우기 시작하면 문맥이라는 말이 정말 이상하게 들립니다. (저만..그랬는지..) 이 문맥이란 '프로세스와 PCB'단락에서 설명드린 PCB를 의미하며 문맥교환은 PCB를 교환하는 것을 말합니다. 더 정확히는 CPU가 현재 처리중인 프로세스의 PCB(문맥)을 따로 저장하고 다른 PCB(문맥)을 가져오는 것을 말합니다. 왜 그러냐구요? 한 번에 하나의 프로세스만 처리할 수 있는 CPU에게 동시에 여러가지 일을 시킬 때(게임 켜고, PC 카톡 켜고, ) CPU는 같은 타이밍에 여러 프로세스를 처리하는 것이 아니라 IO인터럽트나 시스템 콜에 의해 이 프로세스, 저 프로세스를 아주 빠르게 왔다갔다하며 처리합니다. 시분할 처리라고 하며, CPU의 자원을 효율적으로 사용하기 위해 처리할 프로세스 변경하는 것을 스케줄링이라고 합니다. 그리고 이 때 일어나는 것이 문맥교환입니다! 이제 문맥교환이 무엇이고 왜 일어나는지 언제 일어나는지 이해가 다시 한 번 생각해보고 정리하시길 바라겠습니다.



오버헤드 관련

문맥교환이 일어나는 동안에는 다른 작업을 할 수 없기 때문에 그 시간을 일종의 오버헤드라 할 수 있다.






댓글을 통해 궁금한 점이나 나누고 싶은 얘기를 남겨주시면 꼭 답글 달아드려요!






'OS 및 기타 전산 지식' 카테고리의 다른 글

[네트워크] TCP와 UDP  (0) 2018.06.04