어떻게 하나가 여럿인 척
음악을 들으며 문서를 쓰고, 다운로드까지 한다. 모두 동시에 되는 것 같지만 사실 일꾼(CPU)은 하나뿐이에요. 아주 빠르게 조금씩 번갈아 하니까 우리 눈에는 한꺼번에 되는 것처럼 보인다.
다 같이 쓰고 싶다
음악도 틀고, 문서도 쓰고, 파일도 받는다. 셋 다 일꾼(CPU)이 필요하다.
그런데 일꾼은 하나뿐이라 셋이 한꺼번에 쓸 수는 없다.
어떻게 해야 할까요?
할 일은 셋인데 일꾼은 하나뿐이다.
2강에서 실행 중인 프로그램이 프로세스라는 것을 보았다.
지금 프로세스는 셋인데 일꾼은 하나다. 이 하나를 셋이 어떻게 나눠 쓰는지가 이번 이야기예요.
잠깐씩 돌아가며 한다
방법은 이렇다. 일꾼이 음악을 잠깐, 문서를 잠깐, 파일을 잠깐씩 맡는다.
아주 조금씩 하고 다음 일로 넘어가며 한 바퀴 돌고 또 돌아요.
단추를 눌러 지켜보자.
일꾼이 조금씩 번갈아 맡는다 → 셋 다 조금씩 나아가요.
한 번에 하나씩만 한다. 그런데 워낙 빨리 바꾸니 셋 다 멈춤 없이 나아가는 것처럼 보인다.
사실 일꾼은 쉴 새 없이 이 일 저 일을 오가고 있어요.
속도가 만드는 착시
비결은 속도다. 느리게 바꾸면 번갈아 하는 것이 다 보여서 '아, 하나씩 하는구나' 하고 알아챈다.
그런데 아주 빠르게 바꾸면 사람 눈에는 끊김이 보이지 않는다. 그래서 동시처럼 느껴져요.
바꾸는 속도를 움직이면 보이는 모습이 달라진다.
실제 컴퓨터는 일꾼을 1초에 수천 번도 바꾼다. 사람은 그 빠르기를 도저히 느끼지 못한다.
그래서 '동시'라고 믿지만, 사실은 엄청나게 빠른 번갈아 하기예요.
지금 이 기기도 그렇다
지금 이 글을 보는 기기도 마찬가지다. 화면을 그리고, 소리를 내고, 연결을 확인한다.
수십 가지 일이 함께 도는 것 같지만, 일꾼 하나가 빠르게 번갈아 하는 거예요.
지금 이 기기에서도 일꾼 하나가 번갈아 일한다.
우리가 '여러 개를 동시에'라고 느끼는 그 매끄러움은, 보이지 않는 살림꾼이 일꾼을 잘게 쪼개 나눠 준 결과다.
운영체제가 뒤에서 이 일을 해요.
빠르게 번갈아, 그 한 가지
이번 레슨의 핵심은 하나다. 일꾼은 하나라도 빠르게 번갈아 하면 여럿을 동시에 하는 것처럼 보인다. 이것이 시분할이다.
그런데 번갈아 하려면 하던 일을 멈췄다가 다시 이어야 하지 않을까요?
번갈아 하기를 알았다면 다음 질문으로 넘어간다.
운영체제가 일꾼을 잘게 나눠 쓰는 덕분에 우리는 컴퓨터 한 대로 여러 일을 누린다.
'하나가 여럿인 척'하는 이 단순한 꾀가 컴퓨터를 훨씬 쓸모 있게 만들어요.