제11장: CPU 가상화에 관한 마무리 대화
교수: 자, 자네, 무엇을 배웠나?
학생: 음, 교수님, 그건 유도 질문인 것 같은데요. 제 생각엔 교수님은 제가 "예"라고만 대답하길 원하시는 것 같습니다.
교수: 그건 사실이야. 그렇지만 정말 물어보는 것이기도 하지. 자, 나에게 쉴 수 있는 시간 좀 주지 않겠나?
학생: 그럼요, 그럼요. 저는 몇 가지 배웠습니다. 먼저 CPU를 가상화하는 방법에 대해 조금 배웠습니다. 가상화를 이해하기 위해서 알아야만 하는 중요한 많은 기법들이 있습니다. 트랩, 트랩 핸들러, 타이머 인터럽트, 그리고 프로세스 전환이 일어날 때 운영체제와 하드웨어가 상태를 저장하고 복원하는 방법 등이 그것입니다.
교수: 좋아, 좋아요!
학생: 그렇지만 이 모든 상호작용은 다소 복잡한 것 같아요. 어떻게 하면 더 자세히 알 수 있을까요?
교수: 음, 좋은 질문이야. 실제 해보는 것 이외에는 대안이 없을 것 같아. 주제에 관하여 읽기만 하는 것은 그 주제를 제대로 이해하는 데 큰 도움을 주지는 않아. 수업 시간의 프로젝트를 직접 해 봐야 돼. 장담하건대 끝날 때 쯤이면 많은 것들을 이해할 수 있을거야.
학생: 좋네요. 또 무슨 말을 해야 할지 모르겠네요.
교수: 글쎄, 기본 기법을 이해하는 과정 중에 운영체제의 철학에 대해서는 뭐 얻은 게 있나?
학생: 음 ... 있다고 생각합니다. 운영체제가 꽤 편집증을 갖고 있는 것 같습니다. 운영체제는 자신이 컴퓨터를 장악하고 있다는 것을 확인하려고 합니다. 프로그램이 가능한 효율적으로 실행되길 원하면서도 (그래서 제한적 직접 실행을 하는 이유임), 잘못되거나 악성 프로세스에게는 "아, 너무 빨리는 말고"라고 말하길 원하기도 하는 것 같습니다. 편집증 환자가 승리하여 확실히 운영체제가 컴퓨터를 장악하고 있습니다. 아마도 우리가 운영체제를 자원 관리자라고 하는 이유인 것 같습니다.
교수: 그래 확실히—자네가 이제 정리를 시작한 것 처럼 들리는군! 매우 좋아.
학생: 감사합니다.
교수: 그리고 기법 위에 구현된 정책에 관해서는 어떤가? 흥미롭게 배운게 있나?
학생: 확실히 배울 만한 것이 있습니다. 아마 약간은 이해하기 쉬웠던 것 같지만, 그래도 이해하기 쉬운 건 좋은 거니까요. 짧은 작업을 큐의 제일 앞으로 보내는 것과 같은 개념 말입니다. 저는 언젠가 가게에서 껌을 산 이후에 그것이 좋은 생각이라는 것을 알고 있었습니다. 그때 제 앞의 사람이 신용카드로 계산하려고 했지만 잘 되지 않았었습니다. 말하자면 그는 짧은 시간을 가진 작업은 아니었습니다.
교수: 그 불쌍한 친구에게는 무례하게 들리겠는걸. 다른 건 없나?
학생: 글쎄, 동시에 SJF와 RR처럼 동작하고자 하는 똑똑한 스케줄러를 구축할 수 있습니다. MLFQ는 꽤 깔끔했다, 실제 스케줄러를 구축하는 일은 어렵다 등입니다.
교수: 사실이야. 어떤 스케줄러를 사용해야 하는지에 관한 논란이 오늘날까지 이어지고 있는 이유이지. 예를 들어, Linux의 CFS, BFS와 O(1) 스케줄러 사이의 다툼을 한 번 보게. 아, 그러고 보니 아직 BFS의 본래 이름을 이야기 하지 않았네.
학생: 저는 절대로 교수님께 묻지 않을 겁니다. 이 정책 전쟁은 영원히 계속될 것처럼 보이네요. 정말 정답이 있나요?
교수: 아마 없을거야. 결국, 심지어 우리가 정한 평가 기준조차도 서로 대립될거야. 스케줄러가 반환 시간이 좋으면 응답 시간이 나쁘고, 또 그 반대도 참이지. Lampson이 말했듯이 아마도 목표는 최선의 해결책을 찾는 것이 아니라 사고를 피하는 것이지.
학생: 그건 조금 우울하군요
교수: 공학은 원래 그런거라네. 그리고 그것은 또한 권장 사항이야! 관점의 차이지. 나는 개인적으로 실용적인 것이 좋다고 생각하네. 실용주의자들은 모든 문제가 깔끔하고 쉬운 해결책을 가지진 않는다고 생각하네. 마음에 드는 뭐 다른 건 없나?
학생: 스케줄러를 의도대로 움직이게 하는 개념이 정말 맘에 들었습니다. 다음에 제가 Amazon의 EC2에서 작업을 실행할 때 조사해 볼 무언가가 있을 것 같습니다. 아마도 의심이 없는 (그리고 더 중요하게 운영체제에 관한 지식이 부족한) 고객에게 사이클을 훔칠 수도 있을 것 같습니다.
교수: 내가 괴물을 만들어 낸 것 같이 보이는군! 나는 프랑켄슈타인 교수라고 불리고 싶지 않네.
학생: 그러나 원래 그런 의도 아니셨습니까? 무언가에 관하여 우리가 흥미를 느껴서 우리 스스로 그것을 조사하게 만드는 것? 동기를 부여하는 등의 모든 것?
교수: 나도 그렇게 생각하지만. 그게 효과가 있을 줄은 몰랐지!