주제
배경 및 목표에 대해 1문장으로 기재
RAM의 특징과 종류
RAM의 특징
주 기억장치의 종류에는 크게 RAM, ROM이 있다. ‘메모리’라는 용어는 그중에서 RAM지칭하는 경우가 많다. RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다. 여기서 중요한 점은 전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아간다는 것이다.
•
휘발성 저장 장치(volatile memory):
◦
전원을 끄면 저장된 내용이
◦
RAM
•
비휘발성 저장장치(non-volatile memory)
◦
하드 디스크, SSD, CD-ROM, USB 메모리와 같은 보조기억장치
CPU는 보조기억장치에 직접 접근하지 못한다. 그래서 일반적으로 보조기억 장치인 비휘발성 저장 장치에는 “보관할 대상”을 저장하고, 휘발성 저장 장치인 RAM에는 “실행할 대상”을 저장한다. CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행한다.
RAM의 용량과 성능
CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 가져와야할텐데, RAM용량이 적다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어진다.
RAM 용량이 충분히 크다면 보조기억장치에서 많은 데이터를 가져와 미리 RAM에 저장할 수 있다. 이처럼 RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는데 유리하다. RAM용량이 커지면 프로그램 실행 속도가 어느정도 증가하는 건 맞지만, 용량이 필요 이상으로 커졌을 때 속도가 그에 비례하여 증가하진 않는다.
//예시: CPU가 실행할 프로그램을 책에 비유, 보조기억장치는 책에 꽂혀있는 책장, RAM을 책일 읽을수 있는 책상 (책상이 크다면 책장으로부터 많은 책을 미리 책상으로 가져올수 있으므로 책을 가지러 왔다갔다 하는 시간을 절약할 수 있음)
RAM의 종류
DRAM
DRAM(Dynamic RAM)은 시간이 지나면 저장된 데이터가 동적으로 변하는(사라지는) RAM이다. DRAM은 데이터의소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야한다. 이런 단점에도 불구하고 일반적으로 메모리로써 사용하는 RAM은 DRAM이다. 소비전력이 비교적 낮고, 저렴하고, 직접도가 높기 때문에 대용량으로 설계하기가 용이하기 때문이다.
집적도가 높다: 더 작고 빽빽하게 만들 수 있다.
SRAM
SRAM(Static RAM)은 저장된 데이터가 변하지 않은 RAM을 의미한다. 시간이 지나면 점차 저장된 내용이 소실되는 DRAM과 달리 SRAM은 시간이 지나도 저장된 데이터가 사라지지 않는다. 하여 주기적으로 데이터 재활성화할 필요도 없다. 그리고 SRAM은 DRAM보다 속도도 빠르다. 이런 장점에도 불구하고 메모리로 사용되는 RAM은 DRAM이다. SRAM은 DRAM보다 집적도가 낮고, 소비 전력도 크며, 가격도 더 비싸기 때문이다. 주로 캐시 메모리에서 사용된다.
시간이 지나도 저장된 데이터가 사라지지 않는다고 해서 SRAM이 비휘발성 메모리인것은 아니다. SRAM도 전원이 공급되지 않으면 저장된 내용이 날라간다.
SDRAM(Synchronous Dynamic RAM)
SDRAM은 클럭 신호에 맞춰 동작하며, 클럭마다 CPU와 데이터를 주고 받을수 있는 동기식 DRMA이다. 클럭 타이밍에 맞춰 CPU와 정보를 주고 받는다.
•
SDR SDRAM(Single Data Rate SDRAM)):
클럭의 상승 엣지(rising edge)에서만 데이터를 전송하는 SDRAM이다.
한번의 클럭 사이클 1회의 데이터 전송이 이루어진다.
•
DDR SDRRAM(Double Data Rate SDRAM):
대역폭을 확장하여 속도를 두배 만든 SDRAM이다.
클럭의 상승에지와 하강 에지(falling edge)에서 데이터를 전송하여, 한번의 클럭 사이클에 2회의 데이터 전송이 가능하다. 이를 통해 데이터 전송 속도가 SDR SDRAM에 비해 2배로 향상되었다.
대역폭(Data Rate): 데이터를 주고 받는 길의 너비 , 메모리 성능에 큰 영향을 미친다.
SDRAM과 DDR SDRAM은 주기억장치(main memory)에 속하며, 일반적으로 RAM 슬롯에 설치되는 DRAM 기반 메모리 모듈이다. 이들은 CPU와 직접 데이터를 주고받는 메인 메모리로서 메모리 계층 구조의 2단계에 해당한다. SDRAM 및 DDR SDRAM은 주기억장치의 역할을 하며, CPU와 메모리 컨트롤러를 통해 클럭 신호에 맞춰 데이터를 송수신한다.
메모리의 주소공간
물리주소와 논리주소
메모리 주소에는 두 종류가 있다.
•
물리주소: 메모리 하드웨어가 사용하는 주소
•
논리주소: CPU와 실행 중인 프로그램이 사용하는 주소
메모리 보호 기법
다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하기 때문에 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호할 방법이 필요하다. 이는 한계 레지스터(limit register)라는 레지스터가 담당한다.
베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소
한계 레지스터는 논리 주소의 최대 크기를 저장한다.
즉, 물리 주소 범위는 베이스 레지스터 값이상~ 베이스 레지스터 값 + 한계 레지스터 값미만이 된다.
CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안된다. 한계 레지스터보다 높은 주소 값에 접근하는 것은 곧 프로그램의 범위에 벗어난 메모리 공간에 접근하는 것과 같기 때문이다. 하여 CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다. 만약 CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)을 발생시켜 실행을 중단한다. 하여 실행 중인 프로그램의 독립적인 실행 공간을 확보하고 다른 프로그램을 침범하기 못하게 보호할 수 있다.
(그림)캐시 메모리
가상메모리
(그림)리눅스 메모리 관리 도구
(그림)재활용 가능한 메모리
(그림)OOM Killer
(그림)프로세스에 새로운 메모리 할당하기
(그림) 실습: 시스템 메모리 사용량 모니터링
실 업무에서 발생하는 문제점 + 확인 방법 + 해결 방안
8장 메모리 계층
페이지 캐시 ← 파일 시스템 관련
버퍼 캐시(Buffer Cache) ← 디스크 블록 관련
쓰기 타이밍 (RAM
Disk, Dirty Page)
직접 입출력(direct I/O)
Q&A
(01/12)캐시 메모리 vs 페이지 캐시 vs 버퍼(buffer) 캐시
참조 지역성이란?
메모리 관리 기본
(01/12)메모리 단편화와 이를 줄이는 방법에 대해 설명해보세요.
페이징(paging)과 세그먼테이션(segmentation)은 무엇인가요?
페이징(Paging)에 대해 설명해주세요. (정의 / 특징 / 장단점)
세그먼테이션(segmentation)에 대해 설명해주세요. (정의 / 특징 / 장단점)
페이징, 세그먼테이션 비교
(꼬리질문)일정한 단위, 페이지 크기는 어느정도 되나요?
가상메모리(Virtual Memory)
(01/12)가상메모리와 물리메모리의 차이와 매핑 과정에 대해 설명해보세요.
페이지 테이블(Page Table)의 구조와 역할을 설명해보세요. // 가상 주소 → 물리 주소 , 계산은 누가? mmu
MMU (Memory Management Unit) // 물리 주소 변환시 cpu mmu + cache 를 통해서
(꼬리질문)TLB(Translation Lookaside Buffer)는 무엇인가요?
(01/12)디맨드 페이징의 동작원리와 페이지 폴트 발생 과정에 대해 설명해보세요.
Q.Demand Paging이 메모리 사용 효율에 미치는 영향은 무엇인가요?
Q.Demand paging 관련된 성능 문제는 무엇이며, 이를 해결 방법은 무엇인가요?
(01/12)스왑(Swap) // 스왑 기술을 통해서 디스크 공간을 , 스왑 ≠ 가상메모리
(01/12)페이징의 이점 - COW(Copy-On-Write)
계층적 페이징(hierarchical paging), 다단계 페이지 테이블(multilevel page table)
메모리 관리 정책
메모리 할당 알고리즘에는 무엇이 있나요? (3개)
페이지 교체 알고리즘에는 무엇이 있나요? (3개)
동적 메모리 할당(Dynamic Memory Allocation)은 무엇인가요? (정의/특징/동작과정/장단점)
Memory-Mapped Files ←파일 내용을 메모리에 매핑 / 페이지 테이블
시스템 콜 mmap() 함수 ← 파일 메모리 접근 I/O
동기화 및 오류 처리
OOM (Out Of Memory)
(01/12)OOM 발생 시 트러블슈팅 방법
정리
RAM 특징과 종류
•
RAM은 휘발성 저장장치이고, 보조기억장치는 비휘발성 저장 장치이다.
•
DRAM은 시간이 지나면 저장된 데이터가 점차 사라지는 RAM이다. (일반적인 RAM)
•
SRAM은 시간이 지나도 저장된 데이터가 사라지지 않은 RAM이다. (캐시)
•
SDRAM은 클럭과 동기화된 DRAM이다.
•
DDR SDRAM은 SDRAM 에 비해 대역폭이 두 배 넓다.
메모리 주소 공간
•
물리주소는 메모리 하드웨어 상의 주소이고, 논리주소는 CPU와 실행 중인 프로그램이 사용하는 주소이다.
•
MMU는 논리주소를 물리주소로 변환한다.
•
베이스 레지스터는 프로그램의 첫 물리주소를 저장한다.
•
한계 레지스터는 실행 중인 프로그램의 논리주소의 최대 크기를 저장한다.
캐시 메모리
•
저장 장치계층 구조는 각기 다른 용량과 성능의 저장 장치들을 계층화 하여 표현한 구조이다.
•
캐시 메모리는 CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장장치이다.
•
캐시 적중률이 높으면 CPU의 메모리 접근 횟수를 줄일 수 있다.
•
캐시 메모리는 참조 지역성의 원리에 따라 데이터를 예측하여 캐시 적중률을 높인다.
연속 메모리 할당
•
스와핑은 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리로 들여보내는 메모리 관리 기법이다.
•
최초 적합 방식은 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식이다.
•
최적 적합 방식은 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식이다.
•
최악 적합 방식은 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스르 배치하는 방식이다.
•
외부 단편화는 프로스세를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상이다.
페이징
•
페이징은 물리주소 공간을 프레임 단위로 자르고 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법이다.
◦
논리 주소 공간 단위: 페이지
◦
물리 주소 공간 단위: 프레임
•
페이지 테이블을 통해 페이지가 적재된 프레임을 찾을 수 있다. 페이지 테이블에는 페이집 번호와 프레임 번호뿐 아니라 유효 비트, 보호 비트, 접근 비트, 수정 비트 등이 있다. 논리 주소 → 물리 주소 변환
•
PTBR은 각 프로세스의 페이지 테이블이 적재된 주소를 가리킨다.
•
TLB는 페이지 테이블 캐시 메모리 역할을 수행하기 위해 페이지 테이블의 일부를 저장한다.
페이지 교체와 프레임 할당
•
요구페이징은 페이지가 필요할 때에만 메모리에 적재하는 기법이다.
•
페이지 교체 알고리즘에는 FIFO, 최적, LRU 페이지 교체 알고리즘 등이 있다.
•
스래싱이란 지나치게 빈번한 페이지 교체로 인해 CPU 이용률이 낮아지는 문제를 뜻한다.
•
프레임 할당 방식에는 균등 할당과 비례할당, 작업 집합 모델 기반과 페이지 폴트율 기반 프레임 할당 방식이 있다.
Related Posts
Search