주기억장치

들어가기 전에
 컴퓨터 전원을 키면 컴퓨터는 자동으로 부팅을 합니다. 검은 화면과 흰색 글씨가 주르륵 화면에 표시되다가 어느 순간 로딩이 완료되면 윈도우 로고 혹은 맥 로고가 화면에 표시되지요. 운영체제가 로드되고 이내 GUI 기반의 바탕화면이 나타나게 됩니다. 사용자는 전원버튼만 눌렀을 뿐인데 모든 작업들이 순식간에 이루어집니다. 지금부터 운영체제가 구동되는 과정을 설명하고 그 후에 주기억장치의 종류와 정의에 대해 소개해보도록 하겠습니다.

운영체제가 구동되는 과정
 사용자가 컴퓨터 전원을 키면, ROM에 저장된 POST라는 시스템 프로그램을 실행합니다. 자가 시스템 체크가 완료되면 Bootstrap Loader가 하드디스크에 설치된 운영체제를 찾습니다. 찾은 운영체제를 RAM에 로드를 시킵니다. RAM에 로드된 운영체제는 CPU에 의해 인출(FETCH)되어 실행이 되고 운영체제 실행 로그 데이터 등을 RAM에 보내 저장합니다. RAM은 운영체제 로그 데이터를 영속적인 저장매체인 하드디스크에 저장을 시켜 데이터가 날아가지 않도록 합니다.
<그림1> 운영체제구동과정

시스템 프로그램(예. POST)
 컴퓨터에 전원이 들어오자마자 가장 처음에 실행되는 프로그램입니다. 운영체제가 로드되어 구동되기 까지 필요한 작업들을 수행되는 프로그램입니다. 이 시스템 프로그램들은 ROM에 존재하며, POST(Power On Self Test)라는 시스템 프로그램이 실행됩니다. POST 시스템 프로그램은 이름에서도 알 수 있듯이 시스템 전반에 걸친 기능들을 자가 테스트하는 프로그램으로, 하드디스크로부터 운영체제를 불러오기 전에 표준입출력장치(BIOS) 등이 제대로 동작하는지를 체크합니다. 시스템 프로그램의 종류는 다음과 같습니다.
- POST(Power On Self Test): 시스템 구동 전 자가 테스트 프로그램
- Bootstrap Loader: 운영체제 로드 프로그램
- BIOS: Basic Input Output 시스템


ROM
 ROM은 Read Only Memory의 약자로, 말 그대로 읽기만 가능한 기억장치입니다. 그 이유는 대부분의 하드웨어 장치 제조사가 기기를 납품할 때 Mask ROM 형식으로 ROM 수정이 불가하도록 막아놓기 때문에 Read Only Memory로 불리는 것입니다. 앞서 설명하였듯이 ROM에는 시스템 구동 및 운영을 담당하는 시스템 프로그램이라는 아주 중요한 프로그램이 내장(Embedded)되어 있습니다. 그런데 이 시스템 프로그램을 기기 사용자가 임의로 수정한다면, 구동에 문제가 생길 가능성이 있기 때문에 장치 제조사에서 내장된 ROM자체를 수정하지 못하도록 막는 것입니다. 컴퓨터, TV, 냉장고, 셋업박스 등 ROM이 안들어간 전자장치는 없다고 볼 수 있을 정도로 시스템에서 중요한 역할을 합니다.

ROM의 특성
 ROM은 비휘발성 메모리에 해당합니다. 컴퓨터 전원이 OFF된 후에도 자체적으로 ROM에 전기를 계속해서 공급해줌으로써 ROM 정보가 저장되고 유지되도록 합니다. 이는 시스템을 구동할 때 중요한 시스템이 언제든지 실행될 수 있도록 하기 위함이라고 볼 수 있습니다. 만약 시스템 구동 자체가 되지 않거나 구동 중에 문제가 생긴다면 ROM에 공급되는 전원에 문제가 있거나 ROM 자체에서 그 원인을 찾을 수 있습니다.

ROM의 종류
 여기서는 ROM의 종류만 간단하게 설명드리고 각 종류별 구동방식 관련한 자세한 내용은 추후에 다루겠습니다.
- Mask ROM: 제조사에서 저장 데이터에 맞게 회로를 구성합니다. 어떠한 방법으로도 데이터 수정이 불가하다는 특징을 지닙니다.
- PROM: Programmable ROM으로 PROM Writer를 이용하여 사용자가 필요한 기능을 집접 수정 및 추가할 수 있습니다. 최초 1번에 한하여 가능하고, 그 이후로는 수정 및 추가가 어렵습니다.
- EPROM: Erasable Programmable ROM으로 PROM과는 다르게 언제든지 필요시에 기억된 내용을 지우고 새로운 내용을 수정하거나 추가할 수 있습니다.
- EEPROM: 전기적 신호(Electric)를 통해 데이터를 지울 수 있는 Erasable Programmable ROM입니다.
- 플래쉬메모리: EEPROM의 한종류로 NAND 플래시형과 NOR 플래시형으로 구분합니다.


RAM
 Random Access Memory의 약자로, 임의 접근이 가능한 기억장치입니다. 왜 임의 접근이 가능한지에 대해 이유를 말씀드리자면, RAM 메모리는 각 저장 영역에 주소번지를 가지고 있습니다. 예를 들어, 우리가 친구집을 찾아갈 때 집주소를 물어보고, 집주소를 찾아갑니다. 이처럼 하드디스크에 설치된 프로그램 정보를 RAM에 로드할 때나, CPU가 연산을 위해 RAM에 로드된 데이터를 조회할 때도 16진수로 구분된 주소번지를 참조하여 데이터를 가져오는 방식입니다. 인덱스에 의한 순차접근이 아닌, 주소번지 기반으로 데이터를 접근한다고 하여 임의 접근 기억자치라고 불립니다.
 종합하자면, RAM은 하드디스크과 CPU사이에서 실행중인 프로그램 데이터를 임시저장 및 조회하는 기능을 담당합니다.

RAM의 특성
 RAM은 ROM과 다르게 읽기, 쓰기가 모두 가능합니다. 왜냐하면 프로그램을 실행할 때 하드디스크가 정보를 RAM에 로드(쓰기)도 해야하고, CPU에 의해 참조(읽기)도 되어야 하며 CPU가 연산결과를 RAM에 저장(쓰기)도 해야되기 때문입니다.
 ROM과 다른 RAM의 또다른 특성은 휘발성 메모리라는 점입니다. 컴퓨터 전원이 꺼지면 더이상 RAM에도 전기가 공급되지 않아 하드디스크에 저장되지 않은 정보들은 모두 날아가게 됩니다.

RAM의 종류
 RAM의 종류만 간단하게 설명드리고 각 종류별 구동방식 관련한 자세한 내용은 추후에 다루겠습니다.
- DRAM(Dynamic RAM): 필요할 때마다 전기를 재충전하는 방식의 메모리입니다. 대표적으로 RAM이 있습니다.
- SRAM(Static RAM): 전원이 켜진 후부터 계속적으로 전기가 공급됩니다. 따라서 전기 재충전이 필요없는 메모리입니다. 대표적으로 CACHE 메모리가 있습니다.

마지막으로 ROM과 RAM에 대해 정리하면 다음과 같습니다.


<그림2> ROM과 RAM

다음에는 CPU와 명령어 처리 방식에 대해 포스팅을 하도록 하겠습니다.
감사합니다.






Comments

Popular posts from this blog

$$ Regular Expression이 안먹는 경우

exception in thread main java.lang.unsupportedclassversionerror unsupported major.minor version 52.0

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver