[CS 스터디] 운영체제 8일차 - 메인 메모리(RAM)

강아람·2023년 1월 3일
0

운영체제

목록 보기
8/11
post-thumbnail

📚 주기억장치와 보조기억장치

주기억장치

(Computer Memory, Primary Memory)

컴퓨터 내부에서 현재 CPU가 처리하고 있는 내용을 저장하는 기억장치

주로 메인 메모리라 한다!


특징

  • 비교적 용량이 크고, 처리속도가 빠름

메인 메모리는 프로세서처럼 전자 소자로 만들어지고 데이터가 전기 신호로 저장되기 때문에 하드 디스크에 비해 속도가 빠름

  • CPU의 명령에 의해 기억된 장소에 직접 접근하고 읽고 쓸 수 있음

ROM (Read Only Memory)

전원 공급이 끊겨도 저장된 데이터가 사라지지 않는 비휘발성 메모리(Non-Volatile Memory)

특징

  • 반영구적인 데이터 저장 (ROM의 종류에 따라 기록된 데이터 수정 가능)
  • BIOS와 같이 시스템에 반영하기 위해 제조 단계에서 저장하여 변하면 안되는 데이터 저장
  • 비휘발성 메모리 장치

RAM (Random Access Memory)

응용 프로그램, 운영체제 등을 불러와 CPU가 작업할 수 있도록 돕는 기억장치

특징

  • ROM과는 달리 읽기, 쓰기가 모두 가능
  • 휘발성 메모리 장치 : 전원이 꺼지면 데이터 사라짐

보조기억장치

(Auxiliary Memory, Secondary Memory)

주기억장치보다 느리지만 전원이 차단되어도 많은 양의 데이터를 영구적으로 보관할 수 있는 기억장치


HDD (Hard Disk Driver)

물리적인 디스크를 고속으로 회전시켜 데이터를 저장하는 장치

  • 데이터를 디스크에 물리적으로 저장하기 때문에 충격에 약하며, 소음이 발생함

SSD (Solid State Driver)

물리적으로 데이터를 저장하지 않고 전기적으로 저장하는 기억 장치

  • HDD의 단점을 해결하기 위해 개발된 반도체 기반의 기억장치
  • 속도가 HDD에 비해 월등히 빠르며, 소음 발생이 없음
  • HDD에 비해 가격이 높음



📚 RAM

RAM의 용량과 성능

프로그램을 실행하기 위해서는 보조기억장치에 있는 프로그램 실행 파일을 RAM에 가져오고, 이를 CPU가 실행하는 과정이 필요하다.

RAM의 용량이 프로그램 A, B, C 중 하나만 저장할 수 있을 만큼 작다면 CPU가 프로그램 A를 실행하고 싶을 때는 보조기억장치에서 프로그램 A를 RAM으로 가져오고, 프로그램 B를 실행하고 싶을 때는 다시 프로그램 B를 가져와야 한다.

하지만 RAM의 용량이 충분히 크다면 보조기억장치에서 프로그램 A, B, C를 미리 가져다 RAM에 저장하고, 3개의 프로그램을 동시에 실행할 수 있다.
(overhead가 적다!!)


RAM의 종류

DRAM (Dynamic RAM)

시간이 지나면 저장된 데이터가 사라지기 때문에 데이터의 소멸을 막기 위해 일정 주기로 데이터를 다시 저장해야 하는 RAM

  • 소비 전력이 비교적 낮고, 저렴하고, 집적도가 높음

SRAM (Static RAM)

저장된 데이터가 변하지 않는 RAM

  • 데이터를 주기적으로 다시 저장할 필요가 없음
  • DRAM 보다 더 빠름
  • DRAM에 비해 소비 전력이 크며, 더 비싸고, 집적도가 낮음
  • 캐시 메모리에 사용 (속도가 빠르지만 크지 않은 메모리)

SDRAM (Synchronous Dynamic RAM)

클럭 신호와 동기화된, 발전된 형태의 DRAM
▶ 클럭 타이밍에 맞추어 CPU와 정보를 주고받을 수 있음

DDR SDRAM (Double Data Rate SDRAM)

대역폭을 넓혀 속도를 빠르게 만든 SDRAM
▶ 데이터를 주고 받는 양이 커짐, 데이터를 주고받는 속도가 빨라짐

한 클럭에 한 번씩 CPU와 데이터를 주고받는 SDRAM에 비해 DDR SDRAM은 두 배의 대역폭으로 한 클럭당 두 번씩 CPU와 데이터를 주고받을 수 있다.

SDRAM을 SDR(Single Data Rate) SDRAM이라고도 부른다.

최근에 흔히 사용하는 메모리인 DDR4 SDRAM은 DDR3보다 2배, DDR2보다 4배, DDR보다 8배, SDR SDRAM보다 16배 넓은 대역폭을 가짐



📚 메모리의 주소 공간

물리 주소와 논리 주소

물리주소 : 메모리가 사용하는 주소

  • 정보가 실제로 저장된 하드웨어 상의 주소

논리주소 : CPU와 실행 중인 프로그램이 사용하는 주소

  • 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소

CPU와 실행중인 프로그램은 현재 실행중인 프로그램의 물리 주소를 알지 못해도 된다. 새로운 프로그램이 언제든 메모리에 적재될 수 있고, 실행되지 않는 프로그램이 메모리에서 사라질 수 있기 때문이다.

각각의 프로그램(프로세스)들은 0번지부터 시작하는 논리 주소를 가지고, CPU는 이 논리 주소를 받아들이고, 해석하고, 연산한다.

CPU와 메모리가 상호작용 하려면 논리 주소와 물리 주소 간의 변환이 필요하다.
이 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(Memory Management Unit, MMU)가 수행한다.

MMU가 논리 주소를 물리 주소로 변환하는 방법

CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.
예를 들어 현재 베이스 레지스터에 15000이 저장되어 있으면 프로그램 A가 물리주소 15000번지부터 저장된다는 뜻이고, CPU가 발생시킨 논리 주소가 100번지라면 이 논리 주소는 물리주소 15100번지로 변환된다.


메모리 보호 기법

한계 레지스터

만약, 실행 중인 프로그램이 물리 주소 1000~1999번지에 저장되어 있을 때 해당 프로그램의 명령 중 "1500번지에 숫자 100을 저장해라" 또는 "2100번지에 저장된 데이터를 삭제해라" 라는 명령이 존재한다면 어떻게 될까?

해당 프로그램의 영역 외의 다른 영역을 침범하는 것을 예방하기 위해 한계 레지스터(limit register) 를 사용한다.

  • 베이스 레지스터 : 실행 중인 프로그램의 첫 물리 주소 저장
  • 한계 레지스터 : 실행 중인 프로그램의 마지막 논리 주소 저장

CPU는 한계 레지스터에 저장된 값보다 큰 논리 주소에 접근할 수 없다. CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사하고, 만약 CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)가 발생힌다.



📚 캐시 메모리(Cache Memory)

캐시 메모리

CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리(DRAM)보다 빠른 SRAM 기반의 저장 장치이다.

캐시 메모리를 사용하는 이유

CPU가 메모리에 접근하는 속도보다 CPU의 연산 속도가 훨씬 빠르기 때문에 CPU가 대기하는 시간이 발생한다.

CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위해 사용

  • 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가져와 활용하기 위해 사용

저장 장치 계층 구조

  • CPU와 가까울수록 빠르다.
  • 속도가 빠를수록 저장 용량이 작고, 가격이 비싸다.

속도

레지스터 > 캐시 메모리 > 메모리 > 보조기억장치

레지스터 > L1 캐시 > L2 캐시 > L3 캐시 > 메모리 > 보조기억장치


캐시의 참조 지역성 원리

CPU의 메모리 접근은 균등하지 않다. 메모리가 보조기억장치에 있는 데이터 중 실행 중인 프로그램에 대한 데이터만 저장하고 있는 것처럼 캐시는 CPU가 접근할 만한 데이터를 저장하게 된다.


캐시 히트 : 캐시 메모리 내의 데이터가 CPU에서 활용되는 경우
캐시 미스 : CPU가 원하는 데이터가 캐시에 없어 메모리에 접근하는 경우
캐시 적중률 : 캐시 히트의 비율

캐시 적중률
= 캐시 히트 횟수 / (캐시 히트 + 캐시 미스)


참조 지역성 원리

1) 시간 지역성

CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.

2) 공간 지역성

CPU는 접근한 메모리 공간 근처에 접근하려는 경향이 있다.



질문 1

캐시의 지역성 원리에 대해 설명하세요.

CPU의 메모리 접근이 균등하지 않다는 가정으로, 메모리 접근에 특성이 존재하기 때문에 캐시 메모리는 이러한 점을 반영하여 메모리에서 미리 일부 데이터를 가져와 저장합니다.
최근 접근한 메모리에 접근하려는 경향을 반영하는 시간 지역성, 접근한 메모리와 인접한 메모리에 접근하려는 경향을 반영하는 공간 지역성이 있습니다.


질문 2

캐시가 필요한 이유에 대해 설명하세요.

CPU의 연산 속도는 매우 빠른데 비해 CPU가 메모리에 접근하는 속도는 느리기 때문에 이러한 속도 차에 의한 병목 현상을 줄이기 위해 사용합니다.


질문 3

DRAM과 SRAM의 공통점과 차이점에 대해 설명하세요.

모두 RAM(Random Access Memory)의 일종입니다. RAM이란 메모리 상의 임의의 위치(주소)에 접근하고자 할 때 그 시간이 모두 똑같이 걸리는 메모리입니다. 또한 DRAM과 SRAM 모두 전력이 공급되지 않으면 데이터가 삭제됩니다.

DRAM은 동적 램으로 주기적으로 데이터가 삭제되기 때문에 재저장이 필요합니다. SRAM보다 소비 전력이 낮고, 더 저렴하며, 집적도가 높다는 장점으로 메인 메모리에 주로 사용됩니다.

SRAM은 정적 램으로 전원이 공급되는 동안 데이터가 삭제되지 않습니다. DRAM보다 더 빠르지만 소비 전력이 더 크고, 더 비싸며, 집적도가 낮습니다.

0개의 댓글