1 00:00:16,027 --> 00:00:17,238 여러분은 컴퓨터가 2 00:00:17,238 --> 00:00:18,659 키보드와 모니터뿐이 아니라는 것을 3 00:00:18,659 --> 00:00:20,742 처음 깨달았을 때를 기억하십니까? 4 00:00:20,742 --> 00:00:23,325 마우스 클릭과 비디오 실행 사이에 5 00:00:23,325 --> 00:00:25,598 무언가가 여러분의 의도를 잡아내어 6 00:00:25,598 --> 00:00:26,428 이해하고 7 00:00:26,428 --> 00:00:28,264 실행합니다. 8 00:00:28,650 --> 00:00:30,270 그 무언가가 무엇일까요? 9 00:00:30,270 --> 00:00:32,006 그렘린이 한 짓 일까요? 10 00:00:32,006 --> 00:00:33,665 우리가 전자만큼 작아져서 11 00:00:33,665 --> 00:00:35,141 마우스를 클릭하는 순간으로 12 00:00:35,141 --> 00:00:37,894 들어간다고 상상해 봅시다. 13 00:00:37,894 --> 00:00:39,531 마우스를 분해해 보면 14 00:00:39,531 --> 00:00:42,193 마우스는 아주 간단한 기계입니다. 15 00:00:42,193 --> 00:00:43,444 몇 개의 버튼과 16 00:00:43,444 --> 00:00:46,747 움직임과 거리를 감지하는 시스템을 가지고 있죠. 17 00:00:46,747 --> 00:00:48,163 여러분은 빛과 센서로 감지하는 18 00:00:48,163 --> 00:00:50,868 광 마우스를 갖고 있는지도 모르겠군요. 19 00:00:50,868 --> 00:00:52,958 그러나 옛날 마우스는 단단한 고무공과 20 00:00:52,958 --> 00:00:54,576 플라스틱 바퀴로 감지했습니다. 21 00:00:54,576 --> 00:00:56,325 똑같은 개념입니다. 22 00:00:56,325 --> 00:00:57,914 마우스의 버튼을 누르면 23 00:00:57,914 --> 00:00:59,716 마우스의 위치 정보를 24 00:00:59,716 --> 00:01:01,825 컴퓨터로 보냅니다. 25 00:01:01,825 --> 00:01:03,491 마우스를 눌렀다는 정보를 받으면 26 00:01:03,491 --> 00:01:06,880 그걸 기초적인 입출력 하위 시스템이 처리합니다. 27 00:01:06,880 --> 00:01:09,444 이 하위 시스템은 컴퓨터의 눈, 귀, 28 00:01:09,444 --> 00:01:12,053 입, 손처럼 행동합니다. 29 00:01:12,053 --> 00:01:13,958 무엇보다도 하위 시스템은 컴퓨터가 30 00:01:13,958 --> 00:01:16,443 주변 환경과 교류하는 방법을 제공합니다. 31 00:01:16,443 --> 00:01:18,090 하위시스템은 또 중앙 처리 장치가 방해 요소에 32 00:01:18,090 --> 00:01:21,501 압도당하지 않도록 완충제 역할을 합니다. 33 00:01:21,501 --> 00:01:23,811 이 경우에는 입출력 하위시스템이 34 00:01:23,811 --> 00:01:25,942 마우스 클릭이 매우 중요하다고 결정해서 35 00:01:25,942 --> 00:01:28,939 중앙 처리 장치에 끼어듭니다. 36 00:01:28,939 --> 00:01:31,521 "어이, 중앙 처리 장치! 여기 클릭했어." 37 00:01:31,952 --> 00:01:34,327 CPU, 중앙 처리 장치는 38 00:01:34,327 --> 00:01:36,522 전체 컴퓨터의 뇌 역할을 합니다. 39 00:01:36,522 --> 00:01:39,072 뇌가 여러분 몸을 다 차지하지 않듯이 40 00:01:39,072 --> 00:01:41,577 CPU도 컴퓨터 전체를 차지하지 않지만 41 00:01:41,577 --> 00:01:44,262 CPU가 모든 것을 운영하죠. 42 00:01:44,262 --> 00:01:46,506 그리고 CPU가 하는 일은 43 00:01:46,506 --> 00:01:48,444 메모리에서 지시를 받아 44 00:01:48,444 --> 00:01:50,451 실행하는 것입니다. 45 00:01:50,451 --> 00:01:52,380 그래서 여러분이 글자를 치고, 치고, 치고 46 00:01:52,380 --> 00:01:53,610 정말 빨리 쳐서 47 00:01:53,610 --> 00:01:55,088 1분에 낱말 60개를 치면 48 00:01:55,088 --> 00:01:57,090 CPU는 1초에 수십억개의 지시 사항을 49 00:01:57,090 --> 00:01:59,137 불러오고 실행합니다. 50 00:01:59,137 --> 00:02:02,176 네, 1초당 수십억입니다. 51 00:02:02,176 --> 00:02:04,982 마우스를 스크린 위에서 움직이고 52 00:02:04,982 --> 00:02:07,145 데스크톱에 있는 시계를 작동시키고 53 00:02:07,145 --> 00:02:08,892 인터넷 라디오를 켜고 54 00:02:08,892 --> 00:02:11,145 여러분이 하드 드라이브에서 편집하는 파일들을 관리하는 지시 따위, 55 00:02:11,145 --> 00:02:12,900 그 밖에도 훨씬 많습니다. 56 00:02:12,900 --> 00:02:16,590 컴퓨터 CPU는 엄청나게 많은 일들을 동시에 해냅니다. 57 00:02:16,743 --> 00:02:17,613 "그런데 어머나 58 00:02:17,613 --> 00:02:18,909 지금 매우 중요한 마우스 클릭 정보가 59 00:02:18,909 --> 00:02:20,030 들어오고 있어! 60 00:02:20,030 --> 00:02:22,560 모든 걸 멈추고 클릭을 처리하자!" 61 00:02:23,207 --> 00:02:24,604 CPU가 하는 일마다 62 00:02:24,604 --> 00:02:26,336 프로그램이 있습니다. 63 00:02:26,336 --> 00:02:28,058 마우스, 64 00:02:28,058 --> 00:02:29,092 시계, 65 00:02:29,092 --> 00:02:30,303 인터넷 라디오, 66 00:02:30,303 --> 00:02:33,136 그리고 키보드가 보내는 글자를 처리하는 프로그램이 있습니다. 67 00:02:33,136 --> 00:02:35,688 각 프로그램은 처음에는 사람이 읽을 수 있는 68 00:02:35,688 --> 00:02:37,906 프로그램 언어로 만들어졌습니다. 69 00:02:37,906 --> 00:02:38,765 자바(Java) 나 70 00:02:38,765 --> 00:02:39,798 C++, 71 00:02:39,798 --> 00:02:41,219 파이톤(Python) 같이 말이죠. 72 00:02:41,219 --> 00:02:43,741 그러나 사람이 읽을 수 있는 프로그램은 너무 많은 공간을 차지하고 73 00:02:43,741 --> 00:02:47,450 컴퓨터에게 필요없는 정보가 많아서 74 00:02:47,450 --> 00:02:49,191 이걸 컴파일해서 작게 만들고 75 00:02:49,191 --> 00:02:52,653 메모리 안에 1과 0의 정보로 저장합니다. 76 00:02:52,653 --> 00:02:55,410 CPU는 마우스 클릭을 처리하는 법에 대한 77 00:02:55,410 --> 00:02:57,411 지침이 필요한 것을 깨닫습니다. 78 00:02:57,411 --> 00:02:59,380 그래서 마우스 프로그램 주소를 찾아서 79 00:02:59,380 --> 00:03:01,755 메모리에 저장된 지침을 80 00:03:01,755 --> 00:03:04,625 달라고 메모리 하위시스템에게 요청합니다. 81 00:03:05,287 --> 00:03:07,216 마우스 장치 드라이버의 지침을 각각 82 00:03:07,216 --> 00:03:09,742 때맞게 가져와서 실행합니다. 83 00:03:09,742 --> 00:03:12,113 이야기는 여기서 끝이 아닙니다! 84 00:03:12,113 --> 00:03:14,654 모니터 화면의 버튼 그림 위로 85 00:03:14,654 --> 00:03:16,216 커서가 움직이면 86 00:03:16,216 --> 00:03:18,177 CPU는 마우스가 클릭된 것을 감지하고 87 00:03:18,177 --> 00:03:21,248 그 버튼이 무엇인지 알기 위해 88 00:03:21,248 --> 00:03:23,353 CPU는 메모리에게 모니터 프로그램을 요청합니다. 89 00:03:23,353 --> 00:03:25,601 그리고 나서 CPU는 메모리에게 90 00:03:25,601 --> 00:03:27,437 버튼 프로그램을 요청해야 하는데 91 00:03:27,437 --> 00:03:28,948 이 말은 CPU가 버튼과 연결되어있는 92 00:03:28,948 --> 00:03:30,688 비디오를 보여주기 위해 모니터 프로그램을 93 00:03:30,688 --> 00:03:32,860 다시 필요로 한다는 뜻입니다. 94 00:03:32,860 --> 00:03:34,742 그렇게 비디오가 실행됩니다. 95 00:03:34,742 --> 00:03:37,487 클릭하면 스크린에 있는 버튼에 빛이 들어오는 것을 96 00:03:37,487 --> 00:03:39,472 여러분이 보기도 전에 97 00:03:39,472 --> 00:03:41,379 아주 많은 프로그램이 관여한다고 생각하면 됩니다. 98 00:03:41,379 --> 00:03:43,848 그래서 마우스를 클릭하는 단순한 일은 99 00:03:43,848 --> 00:03:46,216 컴퓨터 구조에서 중요한 부분을 100 00:03:46,216 --> 00:03:48,196 다 사용한다는 뜻입니다. 101 00:03:48,196 --> 00:03:49,238 주변 장치들, 102 00:03:49,238 --> 00:03:51,047 기본적인 입출력 시스템, 103 00:03:51,047 --> 00:03:52,379 중앙 처리 장치, 104 00:03:52,379 --> 00:03:53,154 프로그램들, 105 00:03:53,154 --> 00:03:54,140 그리고 메모리가 이런 일을 하고 있습니다. 106 00:03:54,140 --> 00:03:56,133 그렘린이 아니고요.