어떻게 처음 보는 장치와 말 트기
10강까지 운영체제는 안에서 CPU와 메모리를 다스렸다. 그런데 컴퓨터는 바깥 장치와도 이야기해야 한다. 키보드, 마우스, 화면, 디스크, 프린터에다 운영체제가 만들어질 때는 없던 어제 산 새 장치까지. 장치마다 말이 다 다른데 어떻게 다 알아들을까요?
세상에는 장치가 너무 많다
컴퓨터에 붙는 장치는 끝도 없이 많다. 키보드, 마우스, 화면, 디스크, 프린터, 카메라가 있고, 새 장치는 해마다 계속 쏟아져 나온다.
장치마다 주고받는 신호도 제각각이다.
운영체제가 이 많은 것을 다 외울 수는 없어요.
장치를 누르면 저마다 다른 신호로 말해서, 운영체제 혼자서는 알아듣기 어렵다.
장치마다 말이 다르니 막막하다. 그렇다고 장치 하나하나에 맞춰 운영체제를 새로 고칠 수도 없다. 새 장치는 계속 나오기 때문이다.
그래서 둘 사이에 누군가를 세워요. 바로 통역사다.
드라이버는 통역사다
운영체제는 딱 한 가지 표준 말만 쓴다. '읽어', '써', '열어' 같은 단순한 부탁이다.
장치마다 따라오는 드라이버가 그 말을 통역한다. 운영체제의 '읽어'를 그 장치만 아는 신호로 바꿔 주고, 장치의 대답도 다시 표준 말로 옮겨 줘요.
표준 명령 '읽어'를 보내면 드라이버가 장치마다 다른 신호로 통역한다.
운영체제는 늘 똑같은 표준 말만 하면 되고, 까다로운 장치 사정은 드라이버가 다 떠맡는다.
그렇다면 운영체제가 한 번도 본 적 없는, 아예 새로 나온 장치는 어떻게 쓸 수 있을까요?
새 장치? 드라이버만 깔면 된다
운영체제는 장치가 아니라 드라이버하고만 말한다. 그러니 처음 보는 새 장치가 와도 방법은 간단하다. 그 장치의 드라이버, 곧 전용 통역사만 깔면 된다.
운영체제 자신은 하나도 고치지 않아도 드라이버가 사이를 이어 줘서 바로 쓸 수 있어요.
새 장치를 연결하면 처음에는 말이 통하지 않다가, 드라이버를 깔면 바로 통한다.
드라이버 하나로 새 장치까지 거뜬히 받아들인다. 이제 말은 통하는데, 한 가지가 더 남았다.
장치는 보통 CPU보다 한참 느리다. 운영체제는 그 느린 장치를 어떻게 기다리는 것이 좋을까요?
묻지 말고, 어깨를 두드리게 한다
운영체제가 느린 장치 옆에서 '다 됐어? 다 됐어?' 하고 계속 물으며 기다리면, 빠른 CPU가 그동안 논다.
그건 너무 아깝다. 그래서 부탁만 해 두고 다른 일을 한다. 장치는 일이 끝나면 인터럽트로 어깨를 톡 두드린다. '끝났어!'
그제야 운영체제가 돌아와 챙겨요.
두 방식을 견주면, 계속 묻기는 CPU가 놀고 어깨 두드리기는 CPU가 다른 일을 한다.
어깨를 두드리게 하니 CPU가 한순간도 놀지 않는다. 부탁해 놓고 다른 일을 하다가 신호가 오면 그때 챙긴다.
이 인터럽트가 바깥 장치와 일하는 핵심 솜씨예요. 그렇다면 통역사와 어깨 두드림, 두 가지가 모이면 어떻게 될까?
통역사와 어깨 두드림으로 바깥과 잘 지낸다
운영체제는 끝없이 늘어나는 장치들을 두 가지 솜씨로 다룬다. 장치마다 통역해 주는 드라이버, 그리고 끝나면 알려 주는 인터럽트다.
덕분에 처음 보는 장치까지 낭비 없이 다룰 수 있다.
그 많은 장치 가운데 특히 중요한 것이 하나 있는데, 바로 파일이 사는 디스크다. 운영체제는 그 디스크를 어떻게 정리할까요?
운영체제를 가운데 두면 드라이버가 통역하고, 장치가 인터럽트로 어깨를 두드리는 모습이 보인다.
정리하면, 바깥 장치와 잘 지내는 비결은 둘이다. 장치마다 말을 옮겨 주는 통역사인 드라이버, 그리고 느린 장치가 일을 마치면 알려 주는 어깨 두드림인 인터럽트다.
이 둘로 운영체제는 세상 어떤 장치와도 손잡을 수 있다. 다음 레슨에서는 그 장치 가운데 디스크를 파일과 폴더로 정리하는 법을 봐요.