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