위 그림은 하드디스크 구조이다. 가장 작은 단위 조각은 sector로 1개의 sector가 1개의 페이지를 담당한다. sector가 모여서 한 개의 원을 이루는데 이것이 바로 track이다. track도 반지름에 따라 여러가지 있는데 같은 반지름의 트랙의 집합이 바로 실린더이다.
Sector -> 섹터의 정보(59 bytes), 데이터(512 bytes)
클러스터, 블록 -> 섹터의 집합 ex) 4KB
디스크의 접근 시간은 seek time + rotation delay + transfer delay로 구성되는데 우리가 접근시간을 줄일 수 있는 방법은 seek time이다. 나머지는 하드디스크 제조사에서 해결할 문제이다.
암을 움직이면서 실린더들을 왔다갔다하는데 Disk Scheduling에서 큐 관리를 통해 응답시간을 줄일 수 있다. 스케줄링 기법들은 상황에 따라 다르기 때문에 생략.
RAM -> 읽고 쓰기 가능, 휘발성 -> 발전 방향: 속도만 빠르게
DRAM -> 요즘 발전하고 있는 RAM ex) DDR2, DDR3 -> 숫자가 +1 될때마다 2배 빨라짐
ROM -> 읽기만 가능한 메모리 -> 발전 방향: 쓰기도 가능하게 범용적으로
NVRAM -> 읽기/쓰기 모두 가능한 RAM, 비휘발성 -> ex) 메인보드 역할: BIOS, UEFI
EEPROM -> Electrically Erasable Programmable ROM -> 전기로 지울 수 있는 메모리
플레시 메모리 -> EEPROM의 한 종류 -> 장점: 빠른 읽기, 저전력, 비휘발성 단점: 쓰기 느림, 덮어쓰기 기능 X, 지워서 써야하는데 지우는데 오래걸림, 블록의 지움 횟수 finite -> 하드디스크를 완전히 대체 못하는 이유
NOR 플레시메모리 -> 연산 ex) CPU
NAND 플레시메모리 -> 저장장치 ex) SSD
SSD -> 플레시 메모리의 한 종류 -> 읽기는 거의 RAM 급으로 빠른데 쓰기 속도는 후달림 -> 과거에는 비싸서 잘 사용하지 않았으나 요즘은 하드디스크랑 가성비를 비교하면 비슷해서 많이 사용함.
플래시 메모리
FTL(Flash Translation Layer)
-> NAND 플래시 컨트롤러에 의해 데이터 처리 순서 결정
마모 평준화(Wear Leveling)
읽고 쓰기는 페이지 단위로 실행 ex) 512KB
삭제는 블록단위로 실행 ex) 4KB
부가적인 쓰기(Write amplification) -> 쓰기는 페이지 크기에 맞춰서 실행되므로, 그 크기보다 작은 데이터에 의해 비효율적으로 저장공간이 낭비되는 현상
가비지 컬렉션 -> 페이지 상태 변환 : stale -> free
오버 프로비저닝 -> Wear-Leveling, Garbage-Collection을 원활하게 동작시기키 위한 여유 공간
ex) 다나와에서 SSD 살 때 128GB -> 120GB + 8GB인 이유
'잡동사니' 카테고리의 다른 글
[리눅스] 파일시스템 관련 명령어 모음 (0) | 2021.10.11 |
---|---|
[PostgreSQL 실습] (0) | 2021.10.09 |
git 버전별로 컴파일 후 패치된 취약점 확인과정 (0) | 2021.10.02 |
[운영체제 개념] (0) | 2021.10.01 |
심플한 원격 데스크톱 (0) | 2021.09.29 |
댓글