의견.png

"주기억장치"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
6번째 줄: 6번째 줄:
 
== 역사 ==
 
== 역사 ==
 
1945년 만들어진 [[에니악]]은 배선반의 회로를 배선하여 놓고 부착된 스위치를 조작하여 계산을 수행시키는 방식으로 작동하였습니다. 따라서 한가지 계산을 하다가 다른 계산으로 바꾸려면 배선을 뜯어 일일이 다시 연결시키고 스위치를 조정해야 했다. [[존 폰 노이만]](john von Neuman)은 현재의 컴퓨터처럼 컴퓨터 내부의 기억장치에 소프트웨어 방식의 프로그램을 내장, 소프트웨어만 바꾸면 여러가지 작업에 대응할 수 있는 프로그램 내장방식 컴퓨터의 개념을 발표했습니다. 폰 노이만의 프로그램 내장방식의 원리를 기초로 여러 컴퓨터들이 개발되었고, 이들 컴퓨터가 자료 및 명령어를 저장하는 기억장치로 사용한 것은 수은지연회로(mercury delay line memory)였다. 수은지연회로 이외에 진공관의 일종인 윌리엄-킬관(Williams-ilburn tube)과 셀렉트론관(selectron), 자기 드럼 장치(magnetic drum unit) 등의 다양한 장치들이 쓰였다. 그 이후 1951년 작은 페라이트 자성체로 된 고리에 여러 가닥의 케이블이 통과하는 모양의 격자 구조로 되어있는 자기 코어(Magnetic core) 메모리를 거쳐 [[트랜지스터]]의 발명과 [[집적회로]](IC) 기술의 발전으로 오늘날의 롬(Read Only Memory, ROM)과 램(Random Access Memory)으로 넘어왔다. 현재 연구되고 있는 차세대 메모리들은 반도체 메모리가 주축을 이루며, 기본 단위인 셀의 구조나 물질에 따라 강유전체 램(Ferroelectric RAM, FeRAM), 상변화 램(Phase Change Ram, PRAM), 저항 램(Resistance RAM, ReRAM), 폴리머 램(Polymer RAM, PoRAM), 나노튜브 램(Nano Floating Gate Memory, NFGM), 홀로그래픽 메모리, 분자 전자 소자, 모듈러 메모리 등으로 구분되고 있다.<ref name=ddol> 똘이아빠, 〈[https://blog.daum.net/dasomcap/892 (컴퓨터 이야기 26)주기억장치 개발의 역사]〉, 《다음 블로그》, 2013-08-27 </ref>
 
1945년 만들어진 [[에니악]]은 배선반의 회로를 배선하여 놓고 부착된 스위치를 조작하여 계산을 수행시키는 방식으로 작동하였습니다. 따라서 한가지 계산을 하다가 다른 계산으로 바꾸려면 배선을 뜯어 일일이 다시 연결시키고 스위치를 조정해야 했다. [[존 폰 노이만]](john von Neuman)은 현재의 컴퓨터처럼 컴퓨터 내부의 기억장치에 소프트웨어 방식의 프로그램을 내장, 소프트웨어만 바꾸면 여러가지 작업에 대응할 수 있는 프로그램 내장방식 컴퓨터의 개념을 발표했습니다. 폰 노이만의 프로그램 내장방식의 원리를 기초로 여러 컴퓨터들이 개발되었고, 이들 컴퓨터가 자료 및 명령어를 저장하는 기억장치로 사용한 것은 수은지연회로(mercury delay line memory)였다. 수은지연회로 이외에 진공관의 일종인 윌리엄-킬관(Williams-ilburn tube)과 셀렉트론관(selectron), 자기 드럼 장치(magnetic drum unit) 등의 다양한 장치들이 쓰였다. 그 이후 1951년 작은 페라이트 자성체로 된 고리에 여러 가닥의 케이블이 통과하는 모양의 격자 구조로 되어있는 자기 코어(Magnetic core) 메모리를 거쳐 [[트랜지스터]]의 발명과 [[집적회로]](IC) 기술의 발전으로 오늘날의 롬(Read Only Memory, ROM)과 램(Random Access Memory)으로 넘어왔다. 현재 연구되고 있는 차세대 메모리들은 반도체 메모리가 주축을 이루며, 기본 단위인 셀의 구조나 물질에 따라 강유전체 램(Ferroelectric RAM, FeRAM), 상변화 램(Phase Change Ram, PRAM), 저항 램(Resistance RAM, ReRAM), 폴리머 램(Polymer RAM, PoRAM), 나노튜브 램(Nano Floating Gate Memory, NFGM), 홀로그래픽 메모리, 분자 전자 소자, 모듈러 메모리 등으로 구분되고 있다.<ref name=ddol> 똘이아빠, 〈[https://blog.daum.net/dasomcap/892 (컴퓨터 이야기 26)주기억장치 개발의 역사]〉, 《다음 블로그》, 2013-08-27 </ref>
 +
 +
== 관리 ==
 +
=== 기억장치 관리 ===
 +
기억장치의 관리 전략은 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것으로 반입(Fetch) 전략, 배치(Placement) 전략, 교체(Replacement) 전략이 있다.<ref name=son> 손명기, 〈[https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=audrl1010&logNo=120180676363 (운영체제) 3. 기억장치 관리]〉, 《네이버 블로그》, 2013-02-06 </ref>
 +
==== 반입 전략 ====
 +
반입(Fetch 전략보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략이다.<ref name=son></ref>
 +
* 요구 반입(demand fetch) : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법
 +
* 예상 반입(Anticipatory fetch) : 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 예상하여 적재하는 방법.
 +
==== 배치 전략 ====
 +
프로그램이나 데이터를 주기억장치의 어디에 배치할 것인지를 결정하는 전략이다.<ref name=son></ref>
 +
* 최초적합(First-Fit) : 주기억 장치 빈 공간 중 순서대로 첫 번째 주소에 배치하는 전략
 +
* 최적적합(Best-Fit) : 빈 공간 중 입력 데이터의 크기와 가장 비슷한 위치에 배치하는 전략, 빈 공간이 가장 적게 남는 위치에 배치한다.
 +
* 최악적합(Worst-Fit) : 빈 공간 중 입력 데이터의 크기와 가장 다른 위치에 배치하는 전략, 빈 공간이 가장 많이 남는 위치에 배치한다.
 +
=== 교체 전략 ===
 +
주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략이다.<ref name=son></ref>
 +
* FIFO(First In First Out) 교체
 +
주기억장치에 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법으로 이해하기 쉽고 프로그래밍 및 설계가 간단하다.
 +
* LFU(Least Recently Used) 교체
 +
사용 빈도가 가장 낮은 페이지를 교체하는 기법이다.
 +
* LRU(Least Frequently Used) 교체
 +
최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법으로 각 페이지 마다 계수기나 스택을 두어 현시점에서 가장 오랫동안 사용하지 않은 페이지를 교체한다.
 +
 +
== 할당 ==
 +
프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지 대한 내용으로 연속 할당 기법과 분산 할당 기법으로 분류할 수 있다.
 +
=== 연속 할당 기법 ===
 +
프로그램을 주기억 장치에 연속으로 할당하는 기법으로 단일 분할 할당 기법과 다중 분할 할당 기법이 있다.
 +
;단일 분할 할당 기법
 +
주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 가장 단순한 기법으로 초기의 운영체제가 많이 사용하던 기법이다. 하지만 오버레이 기법과 스와핑 기법은 결국 사용자 영역에는 한 프로그램만 올라갈 수 있는 단점이 있다.<ref name=libi> Libi, 〈[https://sorjfkrh5078.tistory.com/49 주기억장치 할당 기법]〉, 《티스토리》, 2021-07-06 </ref>
 +
* 오버레이 기법
 +
주기억장치보다 큰 프로그램을 실행하기 위한 기법으로 보조기억장치에 저장된 프로그램을 여러 개의 조각으로 분할한 후 필요한 조각을 차례대로 주기억장치에 할당하는 방법이다.
 +
* 스와핑 기법
 +
하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체하는 기법으로 프로그램을 분할하는 것이 아니라 프로그램 단위로 교체한다.
 +
 +
;다중 분할 할당 기법
 +
연속 할당 기법의 단점을 개선하고자 나온 기법이 다중 분할 할당 기법이며, 고정 분할 할당 기법과 가변 분할 할당 기법이 존재한다.<ref name=libi></ref>
 +
* 고정 분할 할당
 +
정적 할당 기법으로, 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비 중인 프로그램을 각 영역에 할당하여 수행하는 기법이다. 분할된 영역보다 프로그램의 크기가 더 크면 실행할 수 없고, 일정한 크기의 분할 영역에 다양한 크기의 프로그램이 할당되므로 내부 단편화 및 외부 단편화가 발생한다. 따라서 사용할 프로그램의 크기를 미리 알고 있어야한다.
 +
* 가변 분할 할당
 +
동적 할당 기법으로, 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기를 영역으로 분할해서 할당하는 기법이다. 주기억장치를 효율적으로 사용 가능하며, 다중 프로그래밍 정도를 높일 수 있다. 고정 분할 할당 기법 단편화 문제를 해결할 수 있지만 영역과 영역 사이에 단편화가 발생될 수 있다.
 +
 +
=== 분산 할당 기법 ===
 +
프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당하는 기법으로 페이징 기법과 세그먼테이션 기법으로 나뉜다.
 +
;세그먼테이션
 +
세그먼테이션(Segmentation)은 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법으로 내부 단편화는 없으나 외부 단편화가 발생할 수 있으며, 평균 세그먼트의 크기가 작을수록 외부 단편화는 작아진다.
 +
;페이징 기법
  
 
== 종류 ==
 
== 종류 ==
16번째 줄: 61번째 줄:
  
 
=== 롬 ===
 
=== 롬 ===
롬(Read Only Memory, ROM)은 전원이 끊어져도 기록된 데이터 들이 소멸되지 않는 비휘발성 메모리이다. 오직 기억된 데이터를 읽기만 가능한 장치이다. 일반적으로 쓰기가 불가능하고 데이터를 저장한 후 반 영구적으로 사용가능하여 자가 진단 프로그램(Power On System Test, POST), 입출력 시스템(BIOS)나 글꼴 등 변경될 가능성이 적은 데이터를 저장하는데 용이하다.<ref> 코딩팩토리, 〈[https://coding-factory.tistory.com/355 (H/W) 주 기억장치의 종류와 특징〉, 《티스토리》, 2019-04-28 </ref>
+
롬(Read Only Memory, ROM)은 전원이 끊어져도 기록된 데이터 들이 소멸되지 않는 비휘발성 메모리이다. 오직 기억된 데이터를 읽기만 가능한 장치이다. 일반적으로 쓰기가 불가능하고 데이터를 저장한 후 반 영구적으로 사용가능하여 자가 진단 프로그램(Power On System Test, POST), 입출력 시스템(BIOS)나 글꼴 등 변경될 가능성이 적은 데이터를 저장하는데 용이하다.<ref name=code> 코딩팩토리, 〈[https://coding-factory.tistory.com/355 (H/W) 주 기억장치의 종류와 특징〉, 《티스토리》, 2019-04-28 </ref>
 
==== 롬의 종류 ====
 
==== 롬의 종류 ====
;Mask ROM
+
;마스크 롬
제조공장에서 데이터를 영구적으로 기록하여 대량생산에 적합하고, 사용자가 내용을 변경시킬 수 없다.<ref name=ddol></ref>
+
마스크 롬(Mask ROM)은 제조공장에서 데이터를 영구적으로 기록하여 대량생산에 적합하고, 사용자가 내용을 변경시킬 수 없다.<ref name=ddol></ref>
;PROM
+
;피롬
PROM(Programmable ROM, PROM)은 프로그램이 되지 않은 상태에서 PROM 라이터(PROM Writer)를 이용해 내용을 기록할 수 있지만 한번 들어간 내용은 바꾸거나 지울 수 없다. 그 이유는 제조시 모든 메모리 비트가 퓨즈로 연결되어 1로 읽히지만 생산되는데 이를 기록하면 퓨즈가 끊어져서 0으로 읽히기 때문이다.<ref> 〈[https://ko.wikipedia.org/wiki/PROM PROM]〉, 《위키백과》 </ref>
+
피롬(Programmable ROM, PROM)은 프로그램이 되지 않은 상태에서 PROM 라이터(PROM Writer)를 이용해 내용을 기록할 수 있지만 한번 들어간 내용은 바꾸거나 지울 수 없다. 그 이유는 제조시 모든 메모리 비트가 퓨즈로 연결되어 1로 읽히지만 생산되는데 이를 기록하면 퓨즈가 끊어져서 0으로 읽히기 때문이다.<ref> 〈[https://ko.wikipedia.org/wiki/PROM PROM]〉, 《위키백과》 </ref>
;EPROM
+
;이피롬
EPROM(Erasable PROM)필요할 때 기억된 내용을 지우고 다른 내용을 기록할 수 있는 롬으로, 지우는 방법에 따라 자외선으로 지울 수 있는 UVEPROM과 높은 전압으로 질울수 있는 EEPROM을 으로 나뉜다.<ref name=EPROM> 〈[https://ko.wikipedia.org/wiki/EPROM EPROM]〉, 《위키백과》 </ref>
+
이피롬(Erasable PROM)필요할 때 기억된 내용을 지우고 다른 내용을 기록할 수 있는 롬으로, 지우는 방법에 따라 자외선으로 지울 수 있는 UVEPROM과 높은 전압으로 질울수 있는 EEPROM을 으로 나뉜다.<ref name=EPROM> 〈[https://ko.wikipedia.org/wiki/EPROM EPROM]〉, 《위키백과》 </ref>
* EEPROM
+
* 이이피롬
EEPROM(Electrically EPROM)은 칩의 한핀에 전기적 신호를 가해줌으로써 내부 데이터가 지워지게 되어 있는 롬으로, 데이터를 삭제하기위해서는 롬 라이터(ROM Writer)를 이용해서 쓰고 지울 수 있다. 그러나 한 번에 1 바이트씩만 지울 수 있기 때문에 매우 느리며 약 10만번의  반복 기록 횟수의 제한이 있다. EEPROM은 모뎀이나 비디오 카드, 메인보드, SCSI 컨트롤러 등에서 사용된다.<ref> 〈[https://ko.wikipedia.org/wiki/EEPROM EEPROM]〉, 《위키백과》 </ref>
+
이이피롬(Electrically EPROM)은 칩의 한핀에 전기적 신호를 가해줌으로써 내부 데이터가 지워지게 되어 있는 롬으로, 데이터를 삭제하기위해서는 롬 라이터(ROM Writer)를 이용해서 쓰고 지울 수 있다. 그러나 한 번에 1 바이트씩만 지울 수 있기 때문에 매우 느리며 약 10만번의  반복 기록 횟수의 제한이 있다. EEPROM은 모뎀이나 비디오 카드, 메인보드, SCSI 컨트롤러 등에서 사용된다.<ref> 〈[https://ko.wikipedia.org/wiki/EEPROM EEPROM]〉, 《위키백과》 </ref>
* UVEPROM
+
* UV이피롬
UVEPROM(Ultra-Violet EPROM)은 강한 자외선을 쬐게 되면 전자는 게이트의 절연막을 통과해 기록이 지워지게 된다. 기록횟수는 고전압이 실리콘에 영향을 주기 때문에 20회 전후이며 차광 씰을 잘 부착하여 최적으로 보관한다면 약 10년 데이터 보관이 가능하다. UVEPROM은 과거 메인보드, 그래픽카드의 바이오스 칩이나 게임기의 롬으로 많이 사용되었다.<ref name=EPROM></ref>
+
UV이피롬(Ultra-Violet EPROM)은 강한 자외선을 쬐게 되면 전자는 게이트의 절연막을 통과해 기록이 지워지게 된다. 기록횟수는 고전압이 실리콘에 영향을 주기 때문에 20회 전후이며 차광 씰을 잘 부착하여 최적으로 보관한다면 약 10년 데이터 보관이 가능하다. UVEPROM은 과거 메인보드, 그래픽카드의 바이오스 칩이나 게임기의 롬으로 많이 사용되었다.<ref name=EPROM></ref>
* EAROM
+
* 이에이롬
EAROM(Erasable Alterable ROM)은 한 비트씩 수정이 가능한 롬이다.
+
이에이롬(Erasable Alterable ROM)은 한 비트씩 수정이 가능한 롬이다.
  
 
=== 램 ===
 
=== 램 ===
램(Random Access Memory, RAM)
+
램(Random Access Memory, RAM)은 컴퓨터가 빠른 액세스를 하기 위해 데이터를 단기간 저장하는 주기억장치이다. 어느 위치에든 똑같은 속도로 접근하여 읽고 쓸 수 있다는 의미로 Random Access라고 한다. 많은 작업이 메모리에 의존하기 때문에 램용량은 시스템 성능 속도에 매우 중요한 역할을 맏고 있다.<ref> 〈[https://www.crucial.kr/articles/about-memory/what-does-ram-stand-for# RAM이란?]〉, 《crucial》</ref>
;DRAM
+
주로 사용되는 램은 일반적으로 전원이 차단되면 내용이 지워지는 휘발성 기억 장치이다. 램은 재충전 여부에 따라 동적 램(DRAM)과 정적 램(SRAM)으로 구분된다.<ref name=code></ref>
;SRAM
+
==== 동적 램 ====
 
+
동적 램(Dynamic RAM)은 트랜지스터 위에 캐패시터(Capacitor)가 수직으로 세워져있는 구조로 캐패시터에 전하를 저장하여 전자의 유무에 따라 데이터를 저장한다. 캐패시터에 전하를 저장하여 데이터를 기록하기 때문에 시간이 지남에 따라 캐패시터 안의 전하가 빠져나가 데이터가 지워져 데이터를 기억시키기 위해서 리프레시(refresh)라는 과정이 필요하다. 스마트폰, 태블릿과 같은 모바일 기기나 컴퓨터, 노트북과 같은 메모리가 필요한 그래픽 카드 등 다양한 곳에서 사용되고 있다.<ref> 반도체_바다, 〈[https://kiyong91.tistory.com/18 DRAM이란? DRAM에 대한 기본 지식!]〉, 《티스토리》, 2018-07-04 </ref>
== 관리 전략==
+
==== 정적 램 ====
=== 반입 전략 ===
+
정적 램(Static RAM)은 기억 장치에 전원이 공급되는 한 그 내용이 계속 보존된다. 기본적으로 트랜지스터 등으로 구성된 논리 회로로 이루어지며 외부 신호에 따라 내부의 값을 유지하는 식으로 정보를 기록한다. 동적램에 비해 100배 이상으로 접근 속도가 빠르지만 구조가 복잡하여 공간을 많이 차지하므로 집적도를 높이기 어려워 가격이 비싸고 대용량으로 제작하기가 어렵다. 그래서 빠른 속도가 요구되는 캐시 메모리(Cache Memory)에 주로 사용된다.<ref> 〈[https://namu.wiki/w/RAM RAM]〉, 《나무위키》 </ref>
=== 배치 전략 ===
 
=== 교체 전략 ===
 
  
 
{{각주}}
 
{{각주}}

2021년 8월 17일 (화) 18:00 판

주기억장치는 CPU에 의해 제어되는 장치로 즉시 필요한 수치, 명령, 자료 등을 기억하는 컴퓨터 하드웨어 장치를 가리킨다.[1]

개요

주기억장치는 기억장치의 계층구조에서 보조기억장치 보다는 빠르고 캐시 메모리보다는 느리고, 용량은 보조기억장치 보다 작은 기억장치이다. 용량이 큰 보조기억장치로 부터 프로그램이나 자료를 이동시켜 실행시킬 수 있는 기억장치이다. 중앙 처리 장치가 직간접적으로 접근하여 데이터를 처리할 수 있는 기억장치로 컴퓨터 내부에서 현재 중앙 처리 장치가 처리하고 있는 내용을 저장하고 있는 기억장치이다.[2] 주기억장치는 프로그램 기억 장소, 작업 장소, 입력 데이터 기억 장소, 출력데이터 기억 장소로 구성되어 있다.[3]

역사

1945년 만들어진 에니악은 배선반의 회로를 배선하여 놓고 부착된 스위치를 조작하여 계산을 수행시키는 방식으로 작동하였습니다. 따라서 한가지 계산을 하다가 다른 계산으로 바꾸려면 배선을 뜯어 일일이 다시 연결시키고 스위치를 조정해야 했다. 존 폰 노이만(john von Neuman)은 현재의 컴퓨터처럼 컴퓨터 내부의 기억장치에 소프트웨어 방식의 프로그램을 내장, 소프트웨어만 바꾸면 여러가지 작업에 대응할 수 있는 프로그램 내장방식 컴퓨터의 개념을 발표했습니다. 폰 노이만의 프로그램 내장방식의 원리를 기초로 여러 컴퓨터들이 개발되었고, 이들 컴퓨터가 자료 및 명령어를 저장하는 기억장치로 사용한 것은 수은지연회로(mercury delay line memory)였다. 수은지연회로 이외에 진공관의 일종인 윌리엄-킬관(Williams-ilburn tube)과 셀렉트론관(selectron), 자기 드럼 장치(magnetic drum unit) 등의 다양한 장치들이 쓰였다. 그 이후 1951년 작은 페라이트 자성체로 된 고리에 여러 가닥의 케이블이 통과하는 모양의 격자 구조로 되어있는 자기 코어(Magnetic core) 메모리를 거쳐 트랜지스터의 발명과 집적회로(IC) 기술의 발전으로 오늘날의 롬(Read Only Memory, ROM)과 램(Random Access Memory)으로 넘어왔다. 현재 연구되고 있는 차세대 메모리들은 반도체 메모리가 주축을 이루며, 기본 단위인 셀의 구조나 물질에 따라 강유전체 램(Ferroelectric RAM, FeRAM), 상변화 램(Phase Change Ram, PRAM), 저항 램(Resistance RAM, ReRAM), 폴리머 램(Polymer RAM, PoRAM), 나노튜브 램(Nano Floating Gate Memory, NFGM), 홀로그래픽 메모리, 분자 전자 소자, 모듈러 메모리 등으로 구분되고 있다.[4]

관리

기억장치 관리

기억장치의 관리 전략은 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것으로 반입(Fetch) 전략, 배치(Placement) 전략, 교체(Replacement) 전략이 있다.[5]

반입 전략

반입(Fetch 전략보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략이다.[5]

  • 요구 반입(demand fetch) : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법
  • 예상 반입(Anticipatory fetch) : 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 예상하여 적재하는 방법.

배치 전략

프로그램이나 데이터를 주기억장치의 어디에 배치할 것인지를 결정하는 전략이다.[5]

  • 최초적합(First-Fit) : 주기억 장치 빈 공간 중 순서대로 첫 번째 주소에 배치하는 전략
  • 최적적합(Best-Fit) : 빈 공간 중 입력 데이터의 크기와 가장 비슷한 위치에 배치하는 전략, 빈 공간이 가장 적게 남는 위치에 배치한다.
  • 최악적합(Worst-Fit) : 빈 공간 중 입력 데이터의 크기와 가장 다른 위치에 배치하는 전략, 빈 공간이 가장 많이 남는 위치에 배치한다.

교체 전략

주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략이다.[5]

  • FIFO(First In First Out) 교체

주기억장치에 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법으로 이해하기 쉽고 프로그래밍 및 설계가 간단하다.

  • LFU(Least Recently Used) 교체

사용 빈도가 가장 낮은 페이지를 교체하는 기법이다.

  • LRU(Least Frequently Used) 교체

최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법으로 각 페이지 마다 계수기나 스택을 두어 현시점에서 가장 오랫동안 사용하지 않은 페이지를 교체한다.

할당

프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지 대한 내용으로 연속 할당 기법과 분산 할당 기법으로 분류할 수 있다.

연속 할당 기법

프로그램을 주기억 장치에 연속으로 할당하는 기법으로 단일 분할 할당 기법과 다중 분할 할당 기법이 있다.

단일 분할 할당 기법

주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 가장 단순한 기법으로 초기의 운영체제가 많이 사용하던 기법이다. 하지만 오버레이 기법과 스와핑 기법은 결국 사용자 영역에는 한 프로그램만 올라갈 수 있는 단점이 있다.[6]

  • 오버레이 기법

주기억장치보다 큰 프로그램을 실행하기 위한 기법으로 보조기억장치에 저장된 프로그램을 여러 개의 조각으로 분할한 후 필요한 조각을 차례대로 주기억장치에 할당하는 방법이다.

  • 스와핑 기법

하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체하는 기법으로 프로그램을 분할하는 것이 아니라 프로그램 단위로 교체한다.

다중 분할 할당 기법

연속 할당 기법의 단점을 개선하고자 나온 기법이 다중 분할 할당 기법이며, 고정 분할 할당 기법과 가변 분할 할당 기법이 존재한다.[6]

  • 고정 분할 할당

정적 할당 기법으로, 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비 중인 프로그램을 각 영역에 할당하여 수행하는 기법이다. 분할된 영역보다 프로그램의 크기가 더 크면 실행할 수 없고, 일정한 크기의 분할 영역에 다양한 크기의 프로그램이 할당되므로 내부 단편화 및 외부 단편화가 발생한다. 따라서 사용할 프로그램의 크기를 미리 알고 있어야한다.

  • 가변 분할 할당

동적 할당 기법으로, 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기를 영역으로 분할해서 할당하는 기법이다. 주기억장치를 효율적으로 사용 가능하며, 다중 프로그래밍 정도를 높일 수 있다. 고정 분할 할당 기법 단편화 문제를 해결할 수 있지만 영역과 영역 사이에 단편화가 발생될 수 있다.

분산 할당 기법

프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당하는 기법으로 페이징 기법과 세그먼테이션 기법으로 나뉜다.

세그먼테이션

세그먼테이션(Segmentation)은 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법으로 내부 단편화는 없으나 외부 단편화가 발생할 수 있으며, 평균 세그먼트의 크기가 작을수록 외부 단편화는 작아진다.

페이징 기법

종류

자기 드럼

자기 드럼()은 구형의 자기 기억장치이다. 둥그런 원형 표면에 자성 물질을 발라 놓아 자화시킬 수 있도록 만든 것으로, 원통 둘레를 트랙이라하며, 각 트랙마다 읽고 쓰는 헤드가 하나씩 있어서 원통이 한 바퀴 도는 동안 자료를 읽거나 쓸 수 있다. 컴퓨터가 처음 개발되었을 때에는 처리 속도가 빠르기 때문에 컴퓨터의 주기억 장치로 사용되기도 했으나, 기억 용량이 매우 작아 지금은 사용되고 있지 않다.[7]

자기 코어

자기 코어(Magnetic core) 메모리는 작은 페라이트 자성체로 된 고리에 여러가닥의 케이블이 통과하는 모양의 격자구조로 되어있다. 자기코어 기판에는 가로/세로 64개 또는 128개씩 자기코어가 평면으로 나열되어 있는데, 이러한 그물모양의 자기코어 모음의 행렬면 1장을 코어 평면 이라고 한다. 이 기판의 코어 하나가 1비트(Bit)의 기억 용량을 가진다. 자기코어에는 4가닥의 케이블이 지나가는데, 두 가닥의 쓰기 케이블이 가로와 세로로 배열되어 있고, 각 케이블이 만나는 곳 마다 코어를 하나씩 통과하게 되어 있다. 코어는 한가닥의 쓰기 케이블에 전류를 흘렸을때는 자화되지 않지만, 두 가닥에 전류를 흘리면 자화되는 자기 특성을 가지고 있다. 전류의 방향에 따라 코어의 자기장의 방향이 결정되어 0 또는 1의 비트값을 지정하게 된다. 자화된 코어는 전류가 멈춰도 자화 상태를 유지하기 때문에 비휘발성 메모리에 속한다. [4]

롬(Read Only Memory, ROM)은 전원이 끊어져도 기록된 데이터 들이 소멸되지 않는 비휘발성 메모리이다. 오직 기억된 데이터를 읽기만 가능한 장치이다. 일반적으로 쓰기가 불가능하고 데이터를 저장한 후 반 영구적으로 사용가능하여 자가 진단 프로그램(Power On System Test, POST), 입출력 시스템(BIOS)나 글꼴 등 변경될 가능성이 적은 데이터를 저장하는데 용이하다.[8]

롬의 종류

마스크 롬

마스크 롬(Mask ROM)은 제조공장에서 데이터를 영구적으로 기록하여 대량생산에 적합하고, 사용자가 내용을 변경시킬 수 없다.[4]

피롬

피롬(Programmable ROM, PROM)은 프로그램이 되지 않은 상태에서 PROM 라이터(PROM Writer)를 이용해 내용을 기록할 수 있지만 한번 들어간 내용은 바꾸거나 지울 수 없다. 그 이유는 제조시 모든 메모리 비트가 퓨즈로 연결되어 1로 읽히지만 생산되는데 이를 기록하면 퓨즈가 끊어져서 0으로 읽히기 때문이다.[9]

이피롬

이피롬(Erasable PROM)은 필요할 때 기억된 내용을 지우고 다른 내용을 기록할 수 있는 롬으로, 지우는 방법에 따라 자외선으로 지울 수 있는 UVEPROM과 높은 전압으로 질울수 있는 EEPROM을 으로 나뉜다.[10]

  • 이이피롬

이이피롬(Electrically EPROM)은 칩의 한핀에 전기적 신호를 가해줌으로써 내부 데이터가 지워지게 되어 있는 롬으로, 데이터를 삭제하기위해서는 롬 라이터(ROM Writer)를 이용해서 쓰고 지울 수 있다. 그러나 한 번에 1 바이트씩만 지울 수 있기 때문에 매우 느리며 약 10만번의 반복 기록 횟수의 제한이 있다. EEPROM은 모뎀이나 비디오 카드, 메인보드, SCSI 컨트롤러 등에서 사용된다.[11]

  • UV이피롬

UV이피롬(Ultra-Violet EPROM)은 강한 자외선을 쬐게 되면 전자는 게이트의 절연막을 통과해 기록이 지워지게 된다. 기록횟수는 고전압이 실리콘에 영향을 주기 때문에 20회 전후이며 차광 씰을 잘 부착하여 최적으로 보관한다면 약 10년 데이터 보관이 가능하다. UVEPROM은 과거 메인보드, 그래픽카드의 바이오스 칩이나 게임기의 롬으로 많이 사용되었다.[10]

  • 이에이롬

이에이롬(Erasable Alterable ROM)은 한 비트씩 수정이 가능한 롬이다.

램(Random Access Memory, RAM)은 컴퓨터가 빠른 액세스를 하기 위해 데이터를 단기간 저장하는 주기억장치이다. 어느 위치에든 똑같은 속도로 접근하여 읽고 쓸 수 있다는 의미로 Random Access라고 한다. 많은 작업이 메모리에 의존하기 때문에 램용량은 시스템 성능 속도에 매우 중요한 역할을 맏고 있다.[12] 주로 사용되는 램은 일반적으로 전원이 차단되면 내용이 지워지는 휘발성 기억 장치이다. 램은 재충전 여부에 따라 동적 램(DRAM)과 정적 램(SRAM)으로 구분된다.[8]

동적 램

동적 램(Dynamic RAM)은 트랜지스터 위에 캐패시터(Capacitor)가 수직으로 세워져있는 구조로 캐패시터에 전하를 저장하여 전자의 유무에 따라 데이터를 저장한다. 캐패시터에 전하를 저장하여 데이터를 기록하기 때문에 시간이 지남에 따라 캐패시터 안의 전하가 빠져나가 데이터가 지워져 데이터를 기억시키기 위해서 리프레시(refresh)라는 과정이 필요하다. 스마트폰, 태블릿과 같은 모바일 기기나 컴퓨터, 노트북과 같은 메모리가 필요한 그래픽 카드 등 다양한 곳에서 사용되고 있다.[13]

정적 램

정적 램(Static RAM)은 기억 장치에 전원이 공급되는 한 그 내용이 계속 보존된다. 기본적으로 트랜지스터 등으로 구성된 논리 회로로 이루어지며 외부 신호에 따라 내부의 값을 유지하는 식으로 정보를 기록한다. 동적램에 비해 100배 이상으로 접근 속도가 빠르지만 구조가 복잡하여 공간을 많이 차지하므로 집적도를 높이기 어려워 가격이 비싸고 대용량으로 제작하기가 어렵다. 그래서 빠른 속도가 요구되는 캐시 메모리(Cache Memory)에 주로 사용된다.[14]

각주

  1. 주기억장치〉, 《위키백과》
  2. 리챠드후앙, 〈컴퓨터 주기억장치 & 보조기억장치 란...무엇인가〉, 《티스토리》, 2021-01-04
  3. 컴퓨터 시스템의 구조〉, 《강원대학교》
  4. 4.0 4.1 4.2 똘이아빠, 〈(컴퓨터 이야기 26)주기억장치 개발의 역사〉, 《다음 블로그》, 2013-08-27
  5. 5.0 5.1 5.2 5.3 손명기, 〈(운영체제) 3. 기억장치 관리〉, 《네이버 블로그》, 2013-02-06
  6. 6.0 6.1 Libi, 〈주기억장치 할당 기법〉, 《티스토리》, 2021-07-06
  7. 자기 드럼〉, 《위키백과》
  8. 8.0 8.1 코딩팩토리, 〈[https://coding-factory.tistory.com/355 (H/W) 주 기억장치의 종류와 특징〉, 《티스토리》, 2019-04-28
  9. PROM〉, 《위키백과》
  10. 10.0 10.1 EPROM〉, 《위키백과》
  11. EEPROM〉, 《위키백과》
  12. RAM이란?〉, 《crucial》
  13. 반도체_바다, 〈DRAM이란? DRAM에 대한 기본 지식!〉, 《티스토리》, 2018-07-04
  14. RAM〉, 《나무위키》

참고자료

  의견.png 이 주기억장치 문서는 컴퓨터에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.