Goal
- 각 저장 장치의 역할에 대한 이해
- 메모리 계층 구조에 대한 이해
프로그램은 저장장치에 저장된다. 그리고 프로그램을 실행하면 메인 메모리에 올라가 동작하게 된다. 따라서 프로그램을 개발하는 프로그래머로서 메모리에 대한 이해를 할 필요가 있다. 메모리 동작 방식을 이해하고 메모리 친화적인 프로그램을 개발하면 프로그램 성능을 향상 시킬 수 있다.
캐싱, 가상 메모리 관련 기법 등과 같은 각 저장 장치에서 사용되는 기술적인 내용에 대해서는 따로 다룰 예정
메모리(memory)
데이터를 저장하는 장치로 기억장치 또는 저장장치라고도 한다.
일반적으로 메모리라고 하면 주기억 장치인 RAM을 의미한다.
<참고> 엔디언
메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻한다.
바이트를 배열하는 방법을 특히 바이트 순서(Byte order)라 한다.
종류 | 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
'운영체제' 카테고리의 다른 글
스레드(Thread) (0) | 2020.10.24 |
---|---|
프로세스(Process) (0) | 2020.10.23 |
중앙처리장치(CPU) - 5 (병렬 컴퓨팅, 병렬 컴퓨터) (0) | 2020.09.30 |
중앙처리장치(CPU) - 4 (명령어 파이프라인) (0) | 2020.09.28 |
중앙처리장치(CPU) - 3 (CPU 명령어 사이클) (0) | 2020.09.21 |