산타가 존재하지 않는 이유 (컴퓨터공학 편)

작성자

카테고리:

트위터 실트에 #산타가_없다는걸_알게된_계기 가 뜬 적이 있었습니다. 이걸 제 방식대로 설명해보죠.

일단 제가 태어난 해인 1999년에는 64비트 프로세서가 상용화 되어있지 않고 주로 32비트 프로세서를 많이 사용했습니다. 물론 당시에 닌텐도 64에 사용된 MIPS64나, 일부 워크스테이션 등지에 사용된 DEC Alpha, SPARC 등 64비트 프로세서가 고급 연산이 필요한 기업체에선 상용화가 되어있는 케이스도 있습니다. 여기서는 클라이언트, 즉 고객들을 위한 겁니다. 닌텐도 64처럼 64비트 게임기도 있지만 뭐, 산타를 집에 놓고 그 산타로 게임을 할 건 아니잖아요. 여기에서의 산타는 정수 연산 전용으로만 사용합니다.

1999년에 펜티엄 3가 나왔지만 너무 비쌌어요. 당시 펜티엄 2나 586(펜티엄 1)를 사용하는 사용자들이 태반이었고, 사무용에 국한한다면 486도 쓸만했습니다.

32비트 정수형 자료는 많아봐야 42억(2^32), 그것도 부호를 넣으면(음수를 고려한다면) 21억(2^32/2) 밖에 못 셉니다. 정확히 얘기하자면 4294967296과 2147483648입니다.

예를 들어서, 산타라는 이름의 특수목적 컴퓨터가 있다고 쳐보죠. 임베디드 시스템이라고도 부릅니다. 1일 안에 무조건 모든걸 해결해야 하니 리얼타임 시스템이라 볼 수 있겠습니다. 이 산타는 12월 25일에 1인당 1개씩 소프트웨어적인 선물을 주는 것을 목적으로 합니다. 제가 얘기하는 건 1가구당 1선물이 아니라 1인당 1선물을 얘기하는 겁니다. 1가구당 1선물이라니 좀 너무한 것 같습니다. 4명이 들어간 집에 단 1개의 선물이 놓여있다면 난리 좀 나겠군요.

이제 그 산타의 뇌가 32비트라고 가정해 봅시다. 지구 전체 인구가 약 60억이라고도 쳐 봅시다. 산타는 많아봐야 60억 인구 중 42억 인구에게만 선물을 보낼 수 있습니다. 그 42억을 모두 채우고 그 이상을 가버린다면, 산타는 몇 가구에 선물을 보냈는지 까먹게 됩니다. 0으로 돌아간다구요. 이것을 바로 오버플로우라고 부릅니다.

4294967295인에게 선물을 보낸 산타 : 호호호~ 메리 크리스마스! 이제 0번째 선물을 보내야지!

뭐, 할 말이 없군요. 32비트는 2^32가 한계니까요.

0에서 다시 시작하고, 또 다시 시작하니 무한 루프를 돌겠죠? 설상가상으로 산타에게 2038년 문제가 있다면 상황은 정밀 심각하게 악화됩니다. 산타는 12월 25일에 1번 작동하고 돌아가서 DRAM에 기억한 내용을 저장한 채 잠들고 있어야 하잖아요.

DRAM의 내용을 하드디스크에 저장하고 스스로를 꺼버리는 하이버네이션(최대 절전 모드) 기능이 Windows XP를 기점으로 생겨났지만 당시에 그런 기능은 아무리 봐도 좀 생소했습니다. 쓰는 사람이 없었죠. 지금도 하이버네이션을 자주 사용하는 경우는 노트북이나 태블릿을 포함한 모바일 기기가 아닌 이상 많이 없을겁니다.

어쨌든, 그런 루프를 반복하면 시스템이 노후화되고, 이상이 생길수도 있습니다. 그리고 ROM의 데이터 보존 기간, 부품들의 수명들까지 고려한다면 프로그래머들, 그래고 이 산타를 맏든 엔지니어들은 영원히 이 산타를 유지보수할 생각에 머리를 쥐어쌉니다.

아무리 잘 만든 프로그램이라 할 지라도 버그가 있는 것처럼, 산타도 버그가 있다고 싱상해 보세요. 정말 상상만 해도 끔찍하군요.

이런저런 문제들을 인식했다면, 그런 산타를 업그레이드 해야겠죠? 이 쯤 되면 낡아빠진 32비트 산타를 폐기하고 64비트 산타로 갈아치우는게 일반적입니다. 뭐, 제가 가장 좋아했던 시기는 2000년대 중후반입니다. 인텔 코어 2 프로세서가 히트를 치고 있죠.

64비트 중 유명한 것은? AMD 애슬론 64와 인텔 코어 2 프로세서가 있습니다. 그런 64비트가 셀 수 있는 숫자는? 부호를 넣어도 60억은 가볍게 뛰어넘습니다! 시대가 발전했으니 산타 자체의 처리 속도도 엄청나겠군요! 반도체 제작 공정이 250nm에서 65nm로 넘어가니 전력 당 성능 비도 전과 비교하면 대단할 겁니다! 이해가 안간다면 당장 펜티엄 3와 코어 2 듀오를 비교해 보세요.

이처럼 주기적으로 산타를 업그레이드 한다면 산타에 대한 고객들의 인식도 좋아질겁니다. 프로그래머들이 놀고 먹는데 어느정도 도움은 되겠습니다.

뭐, 이렇게 한다면 지금 산타가 있을 수는 있겠네요.

이상입니다. 감사합니다.

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.