마이컴 1993년 10월호 - 컴퓨터 새내기들 보세요 4편 

'메모리'가 궁금해요

 

 


메모리를 모르고서, PC를 잘 쓴다고 장담하지 마라. 속빈 강정같은 컴퓨터 사용자나 자신있게 할 소리다. 메모리 다루기가 능숙해야 비로서 효율적인 컴퓨터 활용에 눈을 떠 간다고 할 수 있다.

 

'메모리(Memory)’는 정보를 기억해 두었다가 컴퓨터 작동에 필요할 때 그 정보를 제공하는 일차 저장장치이다. 램과 롬 등이 이에 속한다.

 

그러나, 흔히 메모리라고 말하는 것은 플로피 디스켓이나 하드 디스크와 같은 2차 저장매체에서 읽어들인 정보를 잠시 보관했다가 중앙처리장치로 전달하는 역할을 하는 램(RAM)이다.  프로그램이 복잡해지고 기능을 다양하게 제공할수록, 필요한 램의양도 늘어난다.

 

 


기본메모리와 상위 메모리

메가바이트(MB : MegaByte)라는 단위를 사용하는 램은 각 바이트마다 해당 '번지 (address)'가 있다. 이 번지는 집 주소를 표시하는 번지처럼, 컴퓨터 내에서 각 바이트가 자리한 곳을 표시한다.


메모리의 첫번째 메가바이트는 기본(Conventional) 메모리와 상위(Upper) 메모리로 나뉘어져 있다. 1MB를 기준으로 기본 메모리는 640KB, 그 나머지인 384KB가 상위 메모리이다. 1MB는 거의 1천 바이트와 맞먹는 양이다.

 

상위 메모리(예약 메모리라고 하기도 한다) 384KB는 비디오 디스플레이 정보와 같은 내용을 저장해 두는 공간이다. 이 영역에 이미 저장되어 있는 몇몇 내용들의 점유공간을 뺀 나머지 빈 공간은 상위 메모리 블럭(UMB : Upper Memory Blocks)이라고 부른다.

 

상위 메모리 블럭은 꽤 유용한 공간이다. 작은 프로그램이나 정보를 상위 메모리 블럭에 저장해 둘 수 있어 값비싼 기본 메모리 640KB를 알뜰하게 아껴가며 사용할 수 있게 해 준다.

 

상위 메모리 블럭에 저장할 수 있는 것을 예로 들면, 디바이스 드라이버(마우스나 프린터 같은 장비와 시스템간의 의사소 통을 가능케 하는 작은 프로그램들) 나 메모리 관리자같은 것들이 있다.

 

기본 메모리 사용에 관심을 기울여야 하는 이유는 이 공간이 도스와 도스 프로그램을 실행하는 공간인 탓이다. 게다가 이 공간은 어떤 기종이든지 640KB(XT의 경우 512KB인 시스템도 있지만)로 한정되어 더욱 신경을 써야 한다. 메모리 부족으로 허덕이는 요즘 사용자들의 곤란은 빈약한 기본 메모리 한계를 고려한다면 일어날 수 밖에 없는 당연한 일이다.

 

 

 

 

어찌할 수 없는 640KB 장벽

그렇다면, 왜 640KB인가? PC 메모리의 처음 디자인은 8088 마이크로프로세서는 1MB 램까지 액세스 하도록 되어 있었다. 이 메모리는 64K단위로 조각조각 나 있다. 기본적인 메모리 구성은 <그림 1>과 같다. 각각 64KB짜리 16개열로 구성되어 있다.

 

16열의 이름은 각각 1부터 9, 그 다음은 A에서 F이다. IBM은 메모리 열을 10개로 디자인 했다. 64K단위로 10줄이니까 10 x 64KB = 640KB, 기본 메모리가 640KB가 뒷 배경에는 이런 비밀이 있었다.

 

그러나, 기본메모리 640KB가 그 때도 천덕꾸러기였던 것은 아니다. 시대가 변하고 세월이 흐르면서 어찌할 수 없는 구닥다리가 되었을 따름이다. 처음 이 디자인이 선보인 1980년초만 해도 당시 유행하던 중앙처리장치 CP/M보다 열배가 나은 성능을 보여주었다. 당시로서는 대단한 성과였다. 

 

나머지 부분인 384K를 상위 메모리 영역으로 구성한 것도 이 때이다. 마이크로소프트 도스팀 책임자인 러셀 스톡데일씨는 “PC 아키텍처가 결정되던 때로 거슬러 올라가보자. 원래 PC는 1MB까지 어드레스할 수 있었다. 640KB에서 메모리를 자른 것은 당시 디자이너들이 임의로 내린 결정이나 다름없었다"고 밝혔다. 

 

결국 당시 수준과 비교해서 640KB 정도면 모든 것이 가능할 것이라고 내다본 것이다. 그러나, 컴퓨터는 내일이 어떨지 예측키 어려울 정도로 급속한 발전을 거듭해 왔다. 640K는 금방 한계에 부딪쳤다. 획기적으로 평가받던 이 디자인도 이제는 앞으로 급속히 내달려야 하는 PC의 발목을 붙잡는 신세 로 전락했다. 

 

640K의 한계를 더욱 백일하에 드러낸 것은 새로 등장한 강력한 마이크로프로세서 신제품들이다. 16램까지 어드레스할 수 있는 80286, 4096MB나 4기가바이트램 까지 가능한 80386은 640KB로 감당하기는 역부족이었다.

 

해결책은 없는듯 했다. 그러나 궁하면 통하는 법. 도스 응용 프로그램에 더욱 많은 메모리를 확실하게 제공하는 중첩확장 메모리의 등장은 이것저것 처리하느라 숨가쁜 640KB를 한시름 놓게 했다.

 

중첩확장 메모리는 꿈을 현실화시킨 메모리이다. 기본 메모리처럼 프로그램을 실행시키는데 쓸 수 없다는 약점이 있지만, 이것만도 정말 하느님이었다. 그 이후로 더욱 나은 해결책인 연속확장 메모리도 등장하고 있다.

 

그러나, 이런 복잡한 메모리 구조는 사용자들이 메모리를 이해하는데 장애가 되어왔다. 해결책으로는 꽤 괜찮은 착상이었지만, 사용자들이 메모리를 이해하는데는 장애물이 되고 있다. 메모리 이해는 연속확장와 중첩확장를 아는데 있다고 해도 과언이 아니다.

 

 

 

 

 


저물어가는 현장 (겹쳐늘린-Expanded) 메모리

기본 메모리나 연속확장 메모리와는 달리, XT나 286기종은 중첩확장 메모리 보드를 따로 구입해야 중첩확장 메모리를 이용할 수 있다. 이런 보드에는 중첩확장 메모리 관리자가 있다.

 

386SX이상의 CPU 사용자들은 보드를 따로 사지 않아도 된다. 도스 안에 있는 'EMM386'과 같은 중첩확장 메모리 에뮬레이터를 이용하면 보드를 사용하는 것과 같은 효과를 얻을 수 있다. 연속확장 메모리의 한 비트를 빌려다가 중첩확장 메모리인척 하고 사용하는 것이다.

 

중첩확장 메모리는 EMS(Extended Memory Sepcification)에 맞춰 다루면 된다. EMS는 로터스, 인텔, 마이크로소프트가 개발한 메모리로서 표준은 LIM 4.0 EMS이다. 버전 4.0은 PC에서 32MB까지 중첩확장 메모리를 허용한다.


중첩확장 메모리는 PC 메모리의 기본 구성은 아니다. 페이지 프레임 이라고 불리우는 특별한 영역을 통해 접근할 수 있다. 이는 16K 페이지 4개를 포함하는 상위 메모리의 64KB이다. 각 페이지는 중첩확장 메모리에 복사하거나 읽어들일 수 있는 메모리를 포함하고 있다 <그림 2>.

 

 

 

 

페이지 프레임과 중첩확장 메모리 관리는 EMS 디바이스 드라이버가 한다. 자동으로 설치되는 Himem.sys와 달리, EMM386은 Config.sys파일 안에 사용자가 직접 설치해야 한다.

 

메모리 사용의 획기적인 해결책이라고 중첩확장 메모리에 쏟아지던 환호는 점차 사그라들고 있다. 화무십일홍(花無十日紅)이라고 세상에 아무리 좋은 것도 한순간이 지금은 이 메모리를 지원하는 응용 소프트웨어도 줄어들고 있다.

 

16KB 페이지로 32MB 메모리를 바라본다는 건 역시 답답한 노릇이었기 때문이다. 그래서 등장하는 주인공은 익스텐디드(Extended) 메모리, 즉 연속확장 메모리이다. 메모리 정복의 길은 멀고 험하다.

 

 

 

 


연속확장 (이어늘린 - Extended) 메모리

연속확장 메모리는 메모리 이해에 혼동을 불러온 주범이다. 80286이상 기종의 주 메모리를 말할 때는 지금까지 알던 것과 달리 1MB를 넘는 제품들이 꽤 보인다. 그것이 바로 '연속확장 메모리'가 가져온 도움이면서 혼동이다. 

 

"메모리를 추가한다"는 것은 연속확장 메모리를 추가 한다는 뜻이다. 그래서, 메모리가 4MB인 PC라면 기본메모리 640KB, 상위 메모리 384KB, 나머지 3MB 메모리가 연속확장 메모리가 되는 것이다. 물론, 연속확장 메모리 역시 기본 메모리처럼 프로그램을 실행시키지 못하는 것은 중첩확장 메모리와 같다.

 

8088, 8086 사용자는 이런 추가 메모리를 사용할 수 없다. XT CPU는 그것에 접근할 수 있게 만들어져 있지 않기 때문이다. 286 이상 기종의 CPU만 연속확장 메모리의 딱 한 비트를 어드레스할 수 있는 능력이 있다(286은 16MB 메모리까지 어드레스할 수 있다). 그러나, 그렇게 할 수 있는 능력과 실제 상황이 언제나 같은 것은 아니다.

 

16MB까지 메모리에 어드레스할 수 있어도 마더보드상의 물리적인 메모리 (흔히 주 메모리로 표시한다) 영향권에서 벗어날 수는 없다. 16MB 메모리까지 어드레스하는 CPU라도 시스템의 물리적 메모리가 4MB라면 사용자는 단지 4MB만을 가지고 있다는 말이다.

 

연속확장 메모리가 작동하려면 연속확장 메모리가 작동하는 프로텍티드 모드로 PC가 바뀌어야 한다. 기본 메모리는 리얼 모드에서 작동하지만, 연속확장 메모리는 프로텍티드 모드에서 작동한다.

 

오늘날 새롭게 등장하는 프로그램들은 대부분 연속확장 메모리를 지원 한다. 마이크로소프트 윈도우도 도스 연속확장 프로그램이다. 윈도우를 지원하는 응용 프로그램들이 모두 연속 확장 메모리 지원 프로그램인 건 당연한 이야기다.

 

연속확장 메모리는 '연속확장 메모리 관리자'가 있어야 한다. 이 프로그램은 교통경찰관과 같다. 연속확장 메모리의 같은 부분을 동시에 사용하지 않도록 정리해 준다.

 

MS-DOS나 윈도우에 있는 'Himem.sys' 파일이 바로 연속확장 메모리 관리자 프로그램이다. 연속확장 메모리를 알려면 상위 메모리 영역(HMA : High Memory Area)에 대해서도 자세히 알아야 한다.

 

상위 메모리 영역은 연속확장 메모리의 처음 64KB를 가리킨다. 상위 메모리 영역을 잘 사용하는 방법 중 하나는 도스의 부분을 그 영역에 로드해 놓는 것이다. 기본 메모리 점유를 절약하는 방법이다.

 

시스템에 연속확장 메모리가 설치되어 있고, 사용하는 도스가 버전 5.0 이상 제품이라면 도스는 자동으로 상위 메모리 영역에 로드된다.

 

이 상태는 "C:\> type config.sys"를 입력해 확인할 수 있다. 도스가 상위 메모리 영역에 로드된 상태라면, Config.sys 파일에 "DOS=high" 라는 명령이 들어 있다.

 

 

 


메모리 관리에 결정적인 CONFIG.SYS 파일의 예

컴퓨터를 켜고, 부팅되면 도스는 우선 Config.sys 파일부터 검사한다. 이는 특별한 디바이스 드라이버나 시스템 셋팅 요건이 들어있는가를 살피기 위함이다.

 

전형적인 Config. sys 파일은 마우스를 작동시키는 명령, 연속확장 메모리 관리자 인스톨 내용, 디스크 캐싱 프로그램 로드 등의 내용들을 담고 있다. 주의를 기울일 부분은 버퍼(BUFFERS) 정의문이다. 버퍼는 작지만 하드디스크 액세스 숫자를 줄여서 처리 속도상의 이득을 가져온다. 크기는 섹터 하나만큼이다.

 

이상적인 버퍼 수는 경우마다 다르지만, 'BUFFERS = 20' 정도면 어느 시스템이든 수용할만한 표준이다. 특별한 비용을 쓰지 않고 속도를 향상시킬 수 있는 기술이다. Config. sys 파일의 현재 상태를 점검한다. 단, 버퍼 수를 증가하면 프로그램을 위한 여유 공간이 줄어든다는 점도 기억해야 한다.

 

각 버퍼는 512바이트를 차지한다. 즉, 버퍼수를 20으로 설정하면 그 때문에 메모리를 10K를 점령하게 된다. Config.sys 파일에 디바이스 드라이버를 배치하는 순서는 다음과 같다.


1. HIMEM.SYS

2. EMS 관리 소프트웨어, EMS 보드가 있을 때

3. XMS 지원 디바이스 드라이버

4. EMM386.EXE

5. HMA 지원 디바이스 드라이버

 


가장 일반적인 Config.sys 파일의 예를 하나 들어보자(도스 5.0 기준).

C:\>copy con config.sys 

buffers = 20 

files = 30
device = c:\dos\himem.sys

dos = high, umb

device = c:\dos\emm386/sys 2048
devicehigh = c:\dos\ansi.sys 

devicehigh = c:\mouse.sys

 

 


다음 달에는

하드웨어하면 바늘가는데 실처럼 떠오르는 단어, 소프트웨어. 다음 달에는 소프트웨어에 관해 살피고자 한다. 소프트웨어란 무엇이며 제작 과정은 어떻게 되는지, 구입은 어떻게 할 수 있는지 등등을 챙길 계획이다.




 

 

 

  이글은 지금은 없어진 컴퓨터 잡지, 마이컴 1993년 10월호 기사에서 발췌한 내용입니다

 

글이 마음에 드시면 아래 공감버튼 살짝 눌러주세요.

공감과 댓글은 저에게 큰 힘이 됩니다. 

 

 

 

 

 

728x90
반응형
Posted by 전화카드
,