• 베테랑 마이크로소프트 엔지니어에 따르면, 원래의 작업 관리자(Task Manager)는 90년대 컴퓨터에서도 원활하게 작동하도록 80KB에 불과했으며, 이 초기 유틸리티는 자신이 유일하게 실행 중인 인스

    데이브 플러머가 윈도우의 ZIP 파일 지원의 천재적 주역이었습니다.

    article image

    ZIP 파일 지원 등 Windows의 상징적인 기능을 구현한 엔지니어 데이브 플러머(Dave Plummer)는 자신이 작업 관리자(Task Manager)를 어떻게 그토록 효율적으로 만들었는지 공유했습니다. 그의 유튜브 영상에 따르면, 현재의 Windows 작업 관리자는 약 4MB의 용량을 차지하지만, 그가 최초로 개발한 버전은 불과 80KB에 불과했습니다. 플러머가 이 Windows 유틸리티를 설계할 때 가장 중요하게 생각했던 점은 당시 하드웨어 자원의 극심한 제약이었습니다. 따라서 모든 시스템 기능이 실패하여 PC를 복구하는 데 쓰이는 도구일지라도, 다른 모든 부분이 멈춘 상황에서도 깨끗하고 신속하게 반응해야 했기 때문입니다.

    플러머는 "모든 코드 라인에는 비용이 따르며, 모든 할당(allocation)은 흔적을 남길 수 있습니다. 모든 종속성은 당신의 식량을 먹고 월세는 내지 않는 룸메이트와 같습니다"라고 말했습니다. 그는 이어 "작업 관리자를 개발할 때, 저는 프레임워크로 시작하고 편의성 레이어 9개, 미래 대비 레이어 6개를 추가하는 현대적인 유틸리티처럼 접근하지 않았습니다. 그 결과 이 프로그램이 800MB를 잡아먹고, 몇 개의 숫자만 보여주기 위해 동기 부여 연설이 필요한 상황에 놀라지 않으리라고 생각하지 않았죠"라고 덧붙였습니다.

    플러머가 작업 관리자의 기능 중 가장 높이 평가하는 부분 중 하나는 '시작(startup) 처리 방식'입니다. 단순하게 다른 앱 인스턴스 존재 여부를 확인하고 실행 중이라면 활성화하는 일반적인 앱들과 달리, 이 Windows 도구는 한 단계 더 나아갑니다. 이미 실행 중인 인스턴스가 있는지 확인한다면, 단순히 존재하는지를 보는 것에 그치지 않고, 해당 인스턴스에 메시지를 보내 응답을 기다립니다. 긍정적인 응답을 받는다면 다른 작업 관리자 인스턴스가 정상적으로 작동한다는 신호지만, 아무런 응답이 없다면 해당 인스턴스 역시 정지된 것으로 간주하고, 사용자가 시스템 오류에서 빠져나갈 수 있도록 새로운 인스턴스를 실행합니다.

    윈도우 작업 관리자 개발자가 '만약 내가 아직 존재한다면 작업 관리자가 어떤 모습일지'를 공개하며 보여주다

    article image

    '모든 마이크로소프트 엔지니어는 스톱워치를 가졌다'는 Windows 베테랑이 회사 과거의 속도 중시 풍토를 회상하며 밝힌 이야기

    엔지니어는 또한 자주 사용되는 문자열들은 여러 번 불러오는 대신 한 번에 전역 변수(globals)로 로드하도록 개선했으며, 도킹된 PC 분리 같은 드문 기능들은 필요할 때만 로드되도록 했습니다. 프로세스 트리를 구성하는 과정에서도 프로그램을 개별적으로 조회하는 대신 커널에 전체 프로세스 테이블을 요청함으로써 자원을 절약했습니다. 이는 불필요한 API 호출을 줄여주며, 만약 할당된 버퍼가 너무 작으면 이를 재조정하여 다시 시도하는 방식으로 작동합니다. 플러머는 나아가 Windows 작업 관리자가 과도한 자원을 사용하지 않도록 자신이 적용했던 여러 팁과 노하우를 공유했으며, 이는 당시 제한적인 컴퓨팅 파워를 가진 시스템, 심지어 이미 문제가 발생하던 시스템에서도 원활하게 실행되도록 했습니다.

    90년대 컴퓨터의 처리 및 자원 제약은 플러머가 Windows 작업 관리자를 가능한 한 경량화하도록 강제했습니다. 그는 "작업 관리자는 매우 다른 사고방식에서 탄생했습니다. 페이지 폴트가 체감되던 시대, 낮은 메모리 상태가 기묘한 냄새로 느껴지던 시대, 너무 자주 다시 그리게 하면 사무실 직원들이 신음소리를 낼 지경이었던 세상에서 비롯된 것이죠"라며 말했습니다. "물론 저는 그 옛날 하드웨어 환경으로 돌아가고 싶지는 않지만, 그 시대의 '감각'만큼은 계승되었으면 좋았겠다는 생각을 합니다. 고통이 아니라, 그 감각 말입니다. 일괄 처리(batch work)하는 본능, 필요한 데이터를 캐싱(cache)하는 본능, 보이지 않는 작업을 건너뛰는 본능, 다시 그리기 전에 차이를 확인하는(diff) 본능, 백 번 요청하는 대신 커널에 한 번만 요청하는 본능, 희귀한 데이터는 드물게 로드하는 본능, 그리고 편리함이 사용자에게 비용을 청구할 때 편리함에 대해 의심하는 본능 같은 것들 말입니다."

    Tom's Hardware를 Google News에서 팔로우하거나 즐겨찾기 소스로 추가하여 최신 뉴스, 분석 및 리뷰를 피드에서 받아보세요.

    [출처:] https://www.tomshardware.com/software/windows/veteran-microsoft-engineer-says-original-task-manager-was-only-80kb-so-it-could-run-smoothly-on-90s-computers-original-utility-used-a-smart-technique-to-determine-whether-it-was-the-only-running-instance