Memory
CPU는 명령어를 오직 메모리에서만 가져올 수 있다.
따라서 프로그램은 실행하기 위해 메모리에서 처음으로 가져온다.
RAM :
- Random access memory ( main memory )
- 일반적으로 프로그램은 다시 쓸 수있는 메모리에 올려 실행한다.
- 메인 메모리는 일반적으로 DRAM(Dynamic Random-Access memory)라 불리는 반도체 기술에 구현된다.
Bootstrap program : 컴퓨터에 전원이 들어오면 bootstrap program이 실행되며, 운영체제 위에 올라간다.
RAM은 휘발성이기 때문에 전원이 꺼지거나 다른 방법으로 데이터가 손실 가능
때문에 bootstrap program을 유지할 수가 없다.
이를 해결하기 위해 전기적 소거 및 프로그램이 가능한 읽기 전용 메모리 (EEPROM)과 드물게 비휘발성인 다른 형태의 펌웨어를 사용한다.
Storage 정의 및 표기법
더보기
- 컴퓨터 Storage의 기본 단위는 bit이다. (0과 1로 되어있음)
- byte : 8bits, 가장 작은 저장 묶음
- 명령어로 1bit를 움직이는 것은 없지만 1byte는 있다.
- word : 가장 흔한 범위, 컴퓨터 아키텍쳐의 기본 데이터 단위
- 64-bit memory : 8byte words
- 컴퓨터의 한 번에 바이트가 아닌 native word 크기로 작업을 실행
- (네트워크 측정 단위는 일반적인 규칙에서 예외이다.)
- 데이터를bit단위로 제공
EEPROM
- 변할 수는 있지만 빈번하게 바뀌지는 않는다.
- 속도가 느리기때문에 대부분 정적인 프로그램이나 데이터들을 포함한다.
- Ex) iPhone에서는 핸드폰 장치에 대한 정보와 시리얼 정보등을 담는다.
동작
- 모든 형태의 메모리는 byte 배열을 제공한다.
- 모든 바이트는 자신의 주소를 가지고 있따.
- load와 store 명령어를 통해 특정 메모리 주소와 소통을 한다
- Load: 메인 메모리에서 CPU 내부 레지스터로
- Store: 레지스터의 내용을 메인 메모리로
- 명시적인 로드와 저장 이외에도 CPU는 PC(Program counter)에 저장된 위치에서 실행을 위해 메인 메모리에서 명령을 로드한다.
- 폰 노이만 구조를 가진 시스템에서 실행되는 명령-실행 사이클은 메모리에서 명령어를 가져오고 명령 레지스터에 저장한다.
- 명령어가 디코드되고 operands(피연산자)가 메모리에서 가져와 일부 내부 레지스터에 저장한다.
- 피연산자에 대한 명령이 실행된 후, 결과는 메모리에 다시 저장
- Memory unit이 보는 것은 오직 메모리 주소의 stream입니다.
- (따라서 메모리가 어떻게 돌아가는지 무엇을 위해 있는지 모르고 프로그램에 의해 메모리 주소가 생성되는 방법을 무시가능)
- 주요 관심 : 실행중인 프로그램에 의해 생성된 메모리 주소의 순서
위에서도 말했듯이 main memory는 휘발성이며 저장하기에는 매우 작습니다.
따라서 대부분은 컴퓨터는 main memory의 확장용인 두 번째 메모리가 있습니다
Secondary storage
대표적으로 HDD(Hard-disk drives)나 NVM(nonvolatile memory devies)가 있습니다.
둘다 데이터와 프로그램을 저장할 수 있습니다.
- 메모리에 로드되기 전까지 secondary storage에 저장된다.
- 주 메모리 보다 느리다.
사실 레지스터 , 메인 메모리 및 보조 스토리지로 구성된 스토리지는 많은 storage 시스템 디자인들 중 하나이다.
다른 구성 요소
- 캐시 메모리 \ CD-ROM or blu-ray \ magnetic tapes ...
- 다른 장치에 저장된 자료의 백업 파일들을 저장하기 위한 특수 목적으로 사용하기 위해 느리고, 용량이 크다.
- CD-ROM, magnetic tapes 3차 스토리지라고 한다. (Tertiary)
- 각각의 저장 시스템은 데이터를 저장하고 나중에 검색될 때까지 해당 데이터를 유지하는 기본 기능을 제공
- 가장 큰 차이점은 속도와 크기와 휘발 유무이다.
Registers, cache, main memory, nonvolatile memory는 반도체 기반 전자 회로로 구성된 반도체 메모리를 사용하여 구성된다.
Nonvolatile memory는 일반저긴 플래스 메모리이고 스마트폰, 태블릿과 같은 모바일 기기에서 많이 사용한다.
관련 용어
- 휘발성 저장소 : 단순한 Memory로 지칭, 특정 장치를 강조해야할 경우 명시적으로 강조
- 비휘발성 저장소 : 전원이 차단되어도 내용을 유지
- NVS라고 지칭된다.
- NVS에 소비하는 시간의 대부분은 secondary storage에 있다.
- Mechanical : 저장 시스템
- HDDs, optical disks(광 디스크), holographic storage(홀로그램 스토리지), magnetic tape(자기 테이프)
- 특정 유형의 기계식 저장 장치를 강조해야할 경우 사용
- Electrical : 전기적 저장 시스템
- FRAM, NRAM, flash memory, SSD
- NVM으로 지칭된다
- 전기적 저장 장치를 강조해야할 경우 사용
기계적 저장장치 | 전기적 저장장치 | |
메모리 크기 | 더 크고 | 작다 |
속도 | 느리다 | 빠르다 |
바이트당 비용 | 적다 | 크다 |
Balance
- Storage 시스템 설계는 균형을 맞춰야 한다.
- 필요한 만큼 비싼 메모리 사용
- 저렴한 비휘발성 storage
- 캐시를 통한 엑세스 성능 상승
'운영체제' 카테고리의 다른 글
운영체제 - Thread (0) | 2022.08.06 |
---|---|
운영체제 - 프로세스 (0) | 2022.08.06 |
운영체제 - I/O 구조 (0) | 2022.08.03 |
운영체제 - 인터럽트 (0) | 2022.08.03 |
운영체제 구조 (0) | 2022.07.30 |