본문 바로가기

운영체제

메모리(memory)

728x90
반응형

Goal

  • 각 저장 장치의 역할에 대한 이해
  • 메모리 계층 구조에 대한 이해

프로그램은 저장장치에 저장된다. 그리고 프로그램을 실행하면 메인 메모리에 올라가 동작하게 된다. 따라서 프로그램을 개발하는 프로그래머로서 메모리에 대한 이해를 할 필요가 있다. 메모리 동작 방식을 이해하고 메모리 친화적인 프로그램을 개발하면 프로그램 성능을 향상 시킬 수 있다.

 

캐싱, 가상 메모리 관련 기법 등과 같은 각 저장 장치에서 사용되는 기술적인 내용에 대해서는 따로 다룰 예정


메모리(memory)

데이터를 저장하는 장치로 기억장치 또는 저장장치라고도 한다.

일반적으로 메모리라고 하면 주기억 장치인 RAM을 의미한다.

 

 

<참고> 엔디언

더보기

메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻한다.

바이트를 배열하는 방법을 특히 바이트 순서(Byte order)라 한다.

 

Big-endian 방식
Little-endian 방식

 

종류 0x1234의 표현 0x12345678의 표현
빅 엔디언 12 34 12 34 56 78
리틀 엔디언 34 12 78 56 34 12
미들 엔디언 - 34 12 78 56
또는
56 78 12 34

 

 

메모리 계층 구조

 

메모리 계층 구조

컴퓨터에서 기억장치에 접근하여 읽기(read), 쓰기(write)동작을 하는 주체는 CPU이다. 따라서 CPU에 가까운 저장 장치일수록 접근시간(access time)이 빠르다.

또한, CPU는 디코딩 속도 등의 문제로 작은 크기의 메모리에 더 빠르게 접근할 수 있다. 따라서 CPU에 가까운 메모리일수록 더 작은 크기를 갖는다.

 

CPU에 가까울수록

  • access time이 빠르다
  • 메모리 크기가 작다

<참고>

더보기

상위 계층일수록 액세스 타임이 빠른 소자들이 배치된다.

속도가 빠른 소자들은 대개 비트당 가격은 높아지고 용량은 작아진다.

반대로, CPU에서 먼 하위 계층으로 갈수록 속도는 느려지고 가격대비 용량이 큰 장치들이 배치된다.

 

기억장치 구분

  • Register : 명령어, 주소, 데이터 등의 임시 데이터를 저장. CPU 내부에 존재하고 가장 빠른 접근시간을 갖는다.
  • Cache : 자주 사용되는 데이터는 계속 자주 쓰이기 때문에 그런 데이터를 저장하는 임시 기억 장치이다. CPU와 Main Memory 속도 차이를 완화하기 시키는 역할을 한다. (cpu - main memory 완충제)
  • Main Memory : 프로그램 실행에 필요한 데이터가 저장되는 기억장치 (=primary storage)
  • Secondary Strorage : 주기억장치의 단점을 보완할 수 있는 저장 장치
    • 단점 : CPU가 직접 접근할 수 없고, 접근 속도가 주기억장치에 비해 느리다.
    • 장점 : 저장 공간이 크고 영구적으로 저장이 가능하다.

 

*가상메모리(Virtual Memory) : 실제 주기억장치다 큰 메모리 영역을 제공하는 방법으로, 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 메모리 관리 기법이다. (상세 내용은 가상 메모리 섹션에서 설명)

  • 주로 하드디스크의 일부를 확장된 램으로 가정해 부족한 메인메모리의 일부로 사용

 

References

메모리 계층구조 - 위키백과

728x90
반응형