Chapter 07 보조기억장치 - goorm-6th-Als/for_study_Algorithm GitHub Wiki

7-1 다양한 보조기억장치

보조 기억 장치

보조 기억 장치의 종류

보조 기억 장치의 종류는 하드 디스크플래시 메모리 입니다.

하드 디스크

하드 디스크는 자기적은 방식으로 데이터를 저장합니다. 그래서 자기 디스크라고 불립니다.

하드 디스크의 구성요소들

  • 플래터 : 동그란 원판
  • 스핀들 : 플래터를 회전시키는 구성 요소
  • RPM : 분당 스핀들이 플래터를 몇 번 돌리는 나타내는 단위
  • 헤드 : 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소
  • 디스크암 : 원하는 위치로 헤드를 이동시키는 구성 요소

하드 디스크의 저장 단위

스크린샷 2024-02-07 오후 12 21 34 스크린샷 2024-02-07 오후 12 23 38
  • 트랙 : 플래터를 여러 동심원으로 나누었을 떄 그중 하나의 링
  • 섹터 : 트랙을 중심점을 기준으로 나누었을 때의 한 조각
  • 실린더 : 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위

하드 디스크의 작동 원리

하드디스크는 자성 물질로 덮인 플래터를 회전 시키고, 그위에 헤드를 접근시켜 플래터 표면을 자기 배열을 변경하는 방식으로 읽거나 저장한다.

스크린샷 2024-02-07 오후 12 26 02
  • 탐색 시간: 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
스크린샷 2024-02-07 오후 12 27 27
  • 회전 지연: 헤드가 있는 곳으로 플래터를 회전시키는 시간
스크린샷 2024-02-07 오후 12 28 51
  • 전송 시간: 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간

플래시 메모리

플래시 메모리는 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치입니다.

플래시 메모리의 단위

스크린샷 2024-02-07 오후 12 30 38
  • 셀 : 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
  • 데이터: 셀을 모아놓은 저장소
  • 블록 : 페이지를 모아놓은 저장소
  • 플레인 : 블록을 모아놓은 저장소
  • 다이 : 플레인을 모아놓은 저장소

플래시 메모리의 종류

한 셀에 몇 비트를 저장할수 있는지에 따라 플래시 메모리의 종류가 나뉜다.

  • SLC : 한 셀에 1비트를 저장할 수 있는 플레시 메모리
  • MLC : 한 셀에 2비트를 저장할 수 있는 플레시 메모리
  • TLC : 한 셀에 3비트를 저장할 수 있는 플래시 메모리

SLC, MLC, TLC 만을 설명을 드렸지만, 몇 비트를 저장할 수 있는지에 따라 여러 플래시 메모리가 있습니다

한 셀에 저장되는 비트가 적을수록 입출력 속도가 빠르지만, 가격이 비쌉니다.

SLC 타입은 회사에서 많이 사용하고, MLC와 TLC는 가정에서 사용합니다.

플래시 메모리의 상태

플래시 메모리는 읽기와 쓰는 페이지 단위로 이루어지고, 삭제는 블록단위로 이루어집니다. 읽기/쓰기 단위와 삭제 단위가 다르다

  • Free 상태 : 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
  • Valid 상태 : 이미 유효한 데이터를 저장하고 있는 상태
  • Invalid 상태 : 쓰레기값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태
스크린샷 2024-02-07 오후 12 31 37 스크린샷 2024-02-07 오후 12 32 17

가비지 컬레션을 통해 쓰레기값을 정리한다.

  1. 유효한 페이지들만을 새로운 블록으로 복사한다.
  2. 기존의 블록을 상제한다.

7-2 RAID의 정의와 종류

RAID

RAID란?

데이터의 안전성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술이다.

RAID의 종류

RAID의 구성하는 방법에 따라 RAID 레벨이 나눈다.

RAID의 레벨에는 대표적으로 RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6 등이 있다.

RAID 0

여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 방식입니다.

하드 디스크 네 개로 구성한다고 가정해 봅시다

스크린샷 2024-02-07 오후 12 44 23

데이트를 저장할 때 각 하드 디스크에 번갈아 가며 데이터를 저장합니다.

즉 저당되는 데이터가 하드 디스크 개수만큼 나누어 저장되는 겁니다.

스크린샷 2024-02-07 오후 12 45 11

이때 마치 줄무늬처럼 분산되어 저장된 데이터를 스트라입이라 하고, 분산하여 저장하는 것을 스트라이핑이라고 합니다.

스크린샷 2024-02-07 오후 12 46 23

CPU가 동시에 접근을 할수 있기 때문에 한 개의 저장 장치를 쓰는 것 보다, 4개의 저장장치를 사용하므로 이론상 4배 빨라집니다.

스크린샷 2024-02-07 오후 12 47 37

위와 같이 하나의 하드 디스크가 고장이 나면, 모든 하드 디스크에 정보를 읽어 드려올수 없는 문제점이 발생합니다

RAID 1

RAID0에서 복사본을 만드는 방식입니다. 미러링 이라고도 한다. 데이터를 쓸 때 원본과 복사본 두 군데에서 읽어오기 때문에 시간이 오래 걸린다.

스크린샷 2024-02-07 오후 12 48 46

RAID 4

오류를 검출하고 복구하기 위한 정보를 저장한 장치를 두는 구성 방식입니다.

패리티비트 : 오류를 검출하고 복구하기 위한 정보

패리티비트는 홀수 패리티비트와 짝수 패리티비트가 있습니다.

짝수 패리티비트는 패리티비트의 1을 포함하여 다른 디스크의 1의 갯수가 짝수이면 0을 홀수이면 1을 오류 데이터에 넣어 1의 갯수를 짝수로 만들어서 데이터를 복구할수 있다.

반대로 홀수 패리티비트는 패리티비트의 1을 포함하여 다른 디스크의 1의 갯수가 짝수이면 1을 홀수이면 0을 오류 데이터에 넣어 1의 갯수를 홀수로 만들어서 데이터를 복구할수 있다.

스크린샷 2024-02-07 오후 1 01 50

RAID 5

RAID 4의 병목 현상을 해소하여 가가 하드디스크에 패리티를 저장하는 방식

스크린샷 2024-02-07 오후 1 02 52

RAID 4의 메모리에 접근을 하면, 패리티 저장소에 계속 접근을 하여야 해서 병목 현상이 발생한다는 문제가 있습니다.

스크린샷 2024-02-07 오후 1 03 32

RAID 5에서는 패리티 정보를 각각 저장소에 하나씩 저장하여 병목현상을 해결하였습니다.

RAID 6

RAID 5와 구조가 비슷하나, 하드디스크에 서로 다른 2개의 패리티를 두는 방식

오류를 검출하고 복구할 수 있는 수단이 두개가 있어 RAID 4, RAID 5의 보다는 안정한 구성이라고 보수 있지만 패리티가 2개 이므로 RAID 5보다 느리다.

스크린샷 2024-02-07 오후 1 03 59
⚠️ **GitHub.com Fallback** ⚠️