Chapter 07 보조기억장치 - goorm-6th-Als/for_study_Algorithm GitHub Wiki
보조 기억 장치
보조 기억 장치의 종류는 하드 디스크 와 플래시 메모리 입니다.
하드 디스크는 자기적은 방식으로 데이터를 저장합니다. 그래서 자기 디스크라고 불립니다.
- 플래터 : 동그란 원판
- 스핀들 : 플래터를 회전시키는 구성 요소
- RPM : 분당 스핀들이 플래터를 몇 번 돌리는 나타내는 단위
- 헤드 : 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소
- 디스크암 : 원하는 위치로 헤드를 이동시키는 구성 요소
- 트랙 : 플래터를 여러 동심원으로 나누었을 떄 그중 하나의 링
- 섹터 : 트랙을 중심점을 기준으로 나누었을 때의 한 조각
- 실린더 : 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
하드디스크는 자성 물질로 덮인 플래터를 회전 시키고, 그위에 헤드를 접근시켜 플래터 표면을 자기 배열을 변경하는 방식으로 읽거나 저장한다.
- 탐색 시간: 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
- 회전 지연: 헤드가 있는 곳으로 플래터를 회전시키는 시간
- 전송 시간: 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
플래시 메모리는 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치입니다.
- 셀 : 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
- 데이터: 셀을 모아놓은 저장소
- 블록 : 페이지를 모아놓은 저장소
- 플레인 : 블록을 모아놓은 저장소
- 다이 : 플레인을 모아놓은 저장소
한 셀에 몇 비트를 저장할수 있는지에 따라 플래시 메모리의 종류가 나뉜다.
- SLC : 한 셀에 1비트를 저장할 수 있는 플레시 메모리
- MLC : 한 셀에 2비트를 저장할 수 있는 플레시 메모리
- TLC : 한 셀에 3비트를 저장할 수 있는 플래시 메모리
SLC, MLC, TLC 만을 설명을 드렸지만, 몇 비트를 저장할 수 있는지에 따라 여러 플래시 메모리가 있습니다
한 셀에 저장되는 비트가 적을수록 입출력 속도가 빠르지만, 가격이 비쌉니다.
SLC 타입은 회사에서 많이 사용하고, MLC와 TLC는 가정에서 사용합니다.
플래시 메모리는 읽기와 쓰는 페이지 단위로 이루어지고, 삭제는 블록단위로 이루어집니다. 읽기/쓰기 단위와 삭제 단위가 다르다
- Free 상태 : 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
- Valid 상태 : 이미 유효한 데이터를 저장하고 있는 상태
- Invalid 상태 : 쓰레기값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태
가비지 컬레션을 통해 쓰레기값을 정리한다.
- 유효한 페이지들만을 새로운 블록으로 복사한다.
- 기존의 블록을 상제한다.
RAID
데이터의 안전성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술이다.
RAID의 구성하는 방법에 따라 RAID 레벨이 나눈다.
RAID의 레벨에는 대표적으로 RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6 등이 있다.
여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 방식입니다.
하드 디스크 네 개로 구성한다고 가정해 봅시다
데이트를 저장할 때 각 하드 디스크에 번갈아 가며 데이터를 저장합니다.
즉 저당되는 데이터가 하드 디스크 개수만큼 나누어 저장되는 겁니다.
이때 마치 줄무늬처럼 분산되어 저장된 데이터를 스트라입이라 하고, 분산하여 저장하는 것을 스트라이핑이라고 합니다.
CPU가 동시에 접근을 할수 있기 때문에 한 개의 저장 장치를 쓰는 것 보다, 4개의 저장장치를 사용하므로 이론상 4배 빨라집니다.
위와 같이 하나의 하드 디스크가 고장이 나면, 모든 하드 디스크에 정보를 읽어 드려올수 없는 문제점이 발생합니다
RAID0에서 복사본을 만드는 방식입니다. 미러링 이라고도 한다. 데이터를 쓸 때 원본과 복사본 두 군데에서 읽어오기 때문에 시간이 오래 걸린다.
오류를 검출하고 복구하기 위한 정보를 저장한 장치를 두는 구성 방식입니다.
패리티비트 : 오류를 검출하고 복구하기 위한 정보
패리티비트는 홀수 패리티비트와 짝수 패리티비트가 있습니다.
짝수 패리티비트는 패리티비트의 1을 포함하여 다른 디스크의 1의 갯수가 짝수이면 0을 홀수이면 1을 오류 데이터에 넣어 1의 갯수를 짝수로 만들어서 데이터를 복구할수 있다.
반대로 홀수 패리티비트는 패리티비트의 1을 포함하여 다른 디스크의 1의 갯수가 짝수이면 1을 홀수이면 0을 오류 데이터에 넣어 1의 갯수를 홀수로 만들어서 데이터를 복구할수 있다.
RAID 4의 병목 현상을 해소하여 가가 하드디스크에 패리티를 저장하는 방식
RAID 4의 메모리에 접근을 하면, 패리티 저장소에 계속 접근을 하여야 해서 병목 현상이 발생한다는 문제가 있습니다.
RAID 5에서는 패리티 정보를 각각 저장소에 하나씩 저장하여 병목현상을 해결하였습니다.
RAID 5와 구조가 비슷하나, 하드디스크에 서로 다른 2개의 패리티를 두는 방식
오류를 검출하고 복구할 수 있는 수단이 두개가 있어 RAID 4, RAID 5의 보다는 안정한 구성이라고 보수 있지만 패리티가 2개 이므로 RAID 5보다 느리다.