[필기] 정보처리기사 15강
Topic : 기억장치
1. 기억장치
1-1.
컴퓨터에서 데이터를 담아둘 수 있는 장소를 기억장치라 하며, 컴퓨터 내부에 존재하는 주기억장치. 그리고 더 많고 정확한 정보를 저장하기 위한 보조기억장치가 있다.
기억장치의 종류는 다음과 같다.
레지스터 | 고속, 고가 . . . . 저속, 저가 |
소용량 . . . . 대용량 |
캐시기억장치 (SRAM) | ||
주기억장치(DRAM) | ||
보조기억장치(Disk,Tape, Durm) |
[기억장치의 종류, 위에 위치할수록 속도와 가격이 높으나 용량이 적음]
1-2.
기억장치의 특성을 결정하는 요소
- 용량
- 자료 접근시간 (Access Time)
- 순환 주기 (Cycle TIme)
- 대역폭 (Bandwidth)
1-3.
주기억장치 (Main Memory), 내부 메모리.
종류는 두 가지이다.
- ROM (Read Only Memory)
- 이름에서도 보이듯, 읽기 전용 기억장치로서 저장, 삭제, 편집, 수정이 불가능하다. 신문 같은 친구라고 생각. 왜? 특징이 비슷함. 읽기 전용 / 수정 불가 / 비휘발성 메모리, 즉, 전원이 꺼져도 기억된 내용이 날아가지 않음.
- 종류는 다음과 같다.
- Mask ROM : 제조회사에서 미리 내용을 기록했음. 수정 불가
- PROM : 한 번은 기록 가능한 기억장치
- EPROM : 기록된 내용을 자외선을 이용하여 삭제가 가능하다.
- EEPROM : 기록된 내용을 전기를 이용하여 삭제 가능하다.
- RAM (Random Access Memory)
- 읽기, 쓰기 모두 가능하여 일반적으로 많이 사용한다. 다만 ROM과 달리 휘발성 메모리로 전원 꺼지면 기억된 내용이 날아감. 예시로 Ctrl + C 했던 내용은 전원 꺼지면 사라지니까.. 얘는 RAM에 저장되는 건가? 음.
- 종류는 다음과 같다.
- SRAM : 속도가 빠르다. 전원 공급 시엔 내용을 그대로 유지한다.
- DRAM : 전원이 유지되어도 일정 시간이 지나면 방전돼 재충전(Refresh)이 필요하다.
1-4.보조기억장치, 외부 메모리.
보조기억장치는 바깥쪽에서, 더 많이, 그리고 정확히 기억한다는 것이 특징. 우리 집 외장하드만 해도 512GB에 2004년 사진이 아직도 건재하시니.. 17년이 지난 지금도 저장돼있을걸.
(시험에 출제되는) 종류는 두 가지이다.
- 자기 테이프
- 요즘엔 거의 쓰이지 않음. (시험 때문에 외워야 하는 게 웃기긴 해 참) 순차적으로 처리하는 방식, SASD (Sequential Access Storage Device). 가격이 저렴하고 대용량 보관이 가능하다.
- 자료를 구분하기 위해 공백을 두는데, 이를 IRG, IBG라 한다. 둘이 무슨 차이가 있는데?
- IBG : BLOCK, 블록과 블록 사이 빈 공백을 두는 것
- IRG : RECORD, 레코드와 레코드 사이 빈 공백을 두는 것.
- 한 블록 내에 기록돼있는 레코드의 수를 '블록화 인수'라고 한다.
- 자기 디스크
- 하드디스크, 플로피디스크 등.. 직접 접근 DASD (Direct Access Storage Device) 방식이다.
- 이름에서 보이듯 '디스크'를 쓰기 때문에 용어 확립이 필요하다.
- 회전축을 중심으로 한 여러 개의 동심원을 트랙이라 한다.
- 이 트랙을 나눈 구간을 섹터라고 한다.
- 같은 번호의 트랙 모임을 실린더라 한다.
위에 보이는 디스크에서, 자료 접근시간을 알아볼 수 있는데, 이는 세 가지로 분류된다.
- 탐색 시간 (Seek Time) : 헤드가 특정 트랙까지 이동하는데 걸리는 시간
- 검색시간 : (Search Time) : 트랙을 찾은 후 헤드가 특정 섹터까지 이동하는 시간
- 액세스 시간 = 탐색 시간 + 검색시간 + Transmission Time
1-5.
캐시 메모리, 연관 기억장치, 가상 기억장치
우선 캐시 메모리 (Cache Memory), 레지스터와 주기억장치 사이에 위치함. 캐시 메모리가 왜 있는 건데? 속도가 빠른 레지스터에 비해 주기억장치는 느리므로, 이 속도 차이에 완충작용을 해주는 게 캐시 메모리. 이런 캐시 메모리를 가진 컴퓨터의 성능을 나타내는 척도를 캐시의 적중률 (Hit Ratio) 라 하며, 이는 다음과 같이 표현된다.
Hit Ratio = 적중 횟수 / (적중 횟수 + 실패 횟수)
연관 기억장치 (Associative Memory)의 경우 Address를 통해 데이터가 저장되지 않는 친구임. 앞선 챕터에서 살펴봤듯 사람이 내리는 명령을 컴퓨터가 알아듣기 위해선, OP-Code와 Operand로 이뤄져 있는 명령을 알아봤고, Operand부분은 데이터(자료)가 존재하는 주소(Address)를 나타낸다 하였다. 연관 기억장치의 경우는 주소를 통해 데이터가 저장되는 방식이 아닌, 내용을 통해 데이터를 액세스 시키는 방식으로, 속도가 비교적 빠르다. (Associative > Cache)
속도를 비교하면 다음과 같다.
CPU (레지스터) > Associative > Cach > Main Memory (주기억장치)
*속도 얘기가 나와서 그런데, 메모리 인터리빙 (Memory Interleaving), 새치기하는 놈이 있음. (중요)
이렇게 파일 전송 중에 Sample로(Address) 이동 중이란 걸 알아서 다른 데이터의 주소를 해독해 접근하는 방식을 사이클 스틸링 (Cycle Stealing)이라고 함. 주로 DMS (Direct Memory Access)에서 많이 사용됨.
가상 기억장치 (Virual Memory)의 경우 주기억장치가 보조기억장치에게 빌려오는 방식임. 이걸 왜 쓰냐? 용량이 필요하니까. 집 지으려면 자본이 필요한데 수중에 3억이 있어. 내가 짓고 싶은 집은 5억짜리인데? 은행에서 대출받아서 저 5억 있어요~ 해야지. 마찬가지로 프로그램을 설치하려면 주기억장치에 3GB가 있어야 하는데 용량이 2GB밖에 없어, 그럼 보조기억장치한테 여유 있게 2GB만 더 빌려오는 방식 = 가상 기억장치
가상 기억장치의 특징은 다음과 같다.
- 주소 공간의 확대가 목적
- 소프트웨어로 실현 가능하다
- 보조기억장치가 DASD 장치여야 한다.
이와 같은 가상 기억장치를 관리하는 기법은 Paging과 Segmentation이 있다.
- Paging : 고정길이(BLOCK)로 나누어 기억장치에 적재하는 기법
- Segmentation : BLOCK을 가변 길이로 나눠 기억장치에 적재하는 방법
*Fragmentation (분산화) : 메모리 중에서 사용되지 못하는 부분이 발생되는 현상을 의미한다.