보조기억장치

 

  • 메모리(RAM)은 휘발성 저장장치 이기 때문에, 전원이 공급되지 않더라도 내용을 저장하는게 필요해짐
  • 그 역할을 하는게 바로 보조기억장치

 

 

 

하드디스크


 

하드디스크의 구성

  • 자기적인 방식으로 데이터 저장 (플래터에 N극과 S극으로 데이터들이 저장됨)
  • 일반적으로 플래터 양면 모두 사용, 여러장 겹쳐서 사용
  • "스핀들"이 플래터를 돌려줌 
  • RPM(Revolution Per Minute) : 분당 회전수

 

 

  • 헤드 : 자기적인 물질로 덮여 있는 플래터를 읽고 쓸 수 있는 수단(아주 미세하게 떠있음)
  • 디스크 암 : 헤드를 움직여주는 구성 요소
  • 일반적으로 모든 헤드가 디스크 암에 부착되어 함께 이동
  • 플래터의 면마다 헤드가 달려 있음
  • 연속된 정보는 한 실린더에 기록 

 

 

하드디스크의 저장 단위

 

  • 기본적으로 트랙(track)과 섹터(sector) 단위로 데이터 저장
    • 트랙 : 플래터를 이루고 있는 동심원을 그리는 저장단위(운동장의 트랙처럼)
    • 섹터 : 피자 조각처럼 나눈 한 조각
  • 섹터의 크기 : 512바이트 ~ 4096 바이트 

 

 

  • 플래터는 트랙과 섹터로 나뉘고, 같은 트랙이 모여 실린더를 이룸
  • 실린더(cylinder) : 여러 겹의 플래터 상에서 같은 트랙이 위치 한 곳을 모아 연결한 논리적 단위

  • 연속된 정보는 한 실린더에 기록됨 
    • 예를 들어, 2개의 플래터를 사용하는 하드디스크에서 4개의 섹터에 걸쳐 데이터를 저장해야 한다면
      첫번째 플래터 윗면과 뒷면, 두번째 플래터의 윗면과 뒷면 이런식으로 한 실린더에 기록이 됨
    • 이유 : 헤드는 디스크 암에 부착되서 다같이 움직이기 때문에, 한 실린더에 기록하면 헤드를 움직이지 않고 곧바로 읽을 수 있음

 

 

 

하드 디스크의 데이터 접근 과정


하드 디스크가 저장된 데이터에 접근하는 시간

  • 탐색 시간 , 회전 지연 , 전송 시간


  • 탐색 시간 (seek time) : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간

 

  • 회전 지연 (rotational latency) : 헤드가 있는 곳으로 플래터를 회전시키는 시간


 

  • 전송 시간 (transfer time) : 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간

 

Jeef Dean - Numbers Every Programmer Should Know

  • 하드디스크에 접근하는 시간이 별거 아닌 것 같아도 다른 컴퓨터 동작들과 비교했을 때 아주 긴 시간임
  • 그러므로 주요한 변인

  •  ns(나노초) : 1/10^9 초 
  • 패킷(packet) : 네트워크의 기본적인 전송 단위 

  • hard drive running, hard drive in slow motion 같은걸 검색하면 실제 움직이는 영상 볼 수 있음

반짝반짝

 


 

플래시 메모리


  • 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치
  • 범용성이 넓기에 보조기억장치에만 속한다고 보기는 어려움 
  • 실제 주기억장치 중 하나인 ROM으로도 플래시 메모리가 많이 사용됨
  • SSD나 SD카드를 보면 쉽게 발견할 수 있음  

 

플래시 메모리의 종류

  • NAND 플래시 메모리
  • NOR 플래시 메모리 

오늘날 대용량 저장장치로 많이 사용되는 플래시 메모리는 NAND연산을 수행하는 회로인 NAND 플래시 메모리임 

 

 

 

플래시 메모리의 구성

 

셀(cell)

  • 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
  • 이 셀이 모이고 모여 수 MB, GB, TB 저장 장치가 됨

  • 한 셀에 저장할 수 있는 비트 수에 따라 종류가 나뉨
    • SLC : 1비트를 저장할 수 있는 플래시 메모리 (Single Level Cell Type)
    • MLC : 2비트를 저장할 수 있는 플래시 메모리
    • TLC : 3비트를 저장할 수 있는 플래시 메모리
    • QLC : 4비트를 저장할 수 있는 플래시 메모리

  • 집과 사람으로 비유하면 이해하기 쉬움
    • 사람 한 명 == 1 비트 / 셀 == 집
    • SLC == 한 집에 한 명
      MLC == 한 집에 두 명
      TLC == 한 집에 세 명 

 

SLC

  • 한 셀로 두 개의 정보 표현(2^1개)
  • 비트의 빠른 입출력 : 혼자 드나드니까
  • 긴 수명 : 혼자 사니까
  • 용량 대비 고가격 : 월세 혼자 감당해야하니까

SLC

 

 

MLC

 

MLC

  • 한 셀로 네 개의 정보 표현 (SLC에 비해 상대적으로 대용량화에 유리)
  • SLC보다 느린 입출력 : 나가려면 두 명이 준비해야하니까
  • SLC보다 짧은 수명 : SLC 보다 썼다 지웠다 할 수 있는 횟수가 작음 
  • SLC보다 저렴 : 월세 나눠냄
  • 시중에서 많이 사용 (MLC, TLC, QLC)

 

 

TLC

TLC

  • 한 셀로 여덟 개의 정보 표현 (대용량화 유리)
  • MLC 보다 느린 입출력 
  • MLC 보다 짧은 수명
  • MLC 보다 저렴
  • 시중에서 많이 사용 (MLC, TLC, QLC)

 

 

SLC, MLC, TLC 비교

  • 같은 플래시 메모리라도 종류에 따라 수명, 가격, 성능이 다르다
  • 같은 16GB SSD라도 타입에 따라 수명, 가격, 성능이 다름

 

 

 

플래시 메모리의 저장 단위

 

  • 셀이 모여 페이지(page)
  • 페이지가 모여 블록(block)
  • 블록이 모여 플레인(plane)
  • 플레인이 모여 다이(die)

 

 

  • 플래시 메모리의 읽기/쓰기 단위삭제 단위다름
    • 읽기와 쓰기 : 페이지 단위
    • 삭제 : 블록 단위 (페이지보다 더 큰 단위)

 

  • 페이지의 상태
    • 플래시 메모리는 하드 디스크와 달리 덮어쓰기가 불가능하기 때문에 상태를 둠
    • Free 상태 : 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
    • Valid 상태 : 이미 유효한 데이터를 저장하고 있는 상태
    • Invalid 상태 : 유효하지 않은 데이터(쓰레기값)를 저장하고 있는 상태

 

 

플래시 메모리의 동작 예시

읽기/쓰기는 페이지 단위

 

 

 

새롭게 저장된 C와 기존에 저장되어 있던 B는 그대로 둔채,

기존의 A만을 A'로 수정해야 한다면?

 

 

삭제는 블록 단위로 이루어지기 때문에 A만 삭제 불가

플래시메모리는 덮어쓰기 불가

 

 

그러므로,

기존 A를 invalid 페이지로 만든 뒤,

빈 공간에 A'를 새로운 페이지로 저장

 

 

근데 그러면 불필요한 A가 용을 차지하는 문제

이를 해결하기 위한게 가비지 컬렉션

 

 

 

 

가비지 컬렉션

유효한 페이지들만 새로운 블록으로 복사한 후 기존 블록을 삭제하여 공간을 정리하는 기능

저장공간을 관리하는 플래시 메모리의 관리 기법

 

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

 

 

 


 

RAID의 정의와 종류

 

1TB 하드 디스크 네 개로 RAID를 구성하면

4TB 하드 디스크 한 개의 성능과 안정성을 능가할 수 있음

 

RAID (Redundant Array of Independent Disks)


  • 하드 디스크와 SSD로 사용하는 기술
  • 데이터의 안전성 혹은 높은 성능을 위해
    여러 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술

1TB 장치 다섯 개가 아닌, 5TB짜리 하나의 장치로 쓰는 느낌

 

 

 

RAID 레벨


  • RAID를 구성하는 기술(방법)
  • RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID6,
  • 그로부터 파생된  RAID 10, RAID 50, ...
  •  RAID 2, RAID 3은 요즘 많이 사용되진 않음


  • 각 RAID 레벨마다 장단점이 있음
  • 어떤 상황에서 무엇을 최우선으로 원하는지에 따라 최적의 RAID 레벨은 달라질 수 있음
  • 각 RAID 레벨의 대략적인 구성과 특징을 아는 것이 중요

 

 

 

RAID 0

  • 데이터를 단순히 나누어 저장하는 구성 방식

 

  • 각 하드 디스크는 번갈아가며 데이터를 저장
  • 저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장 

  • 스트라입 (stripe) : 마치 줄무늬처럼 분산되어 저장된 데이터
  • 스트라이핑 (striping) : 분산하여 저장하는 것 

 

RAID 0 의 장점

  •  입출력 속도의 향상 
  • 데이터를 순차적으로 읽을 때 나뉘어 저장되었기 때문에 동시에 입출력을 할 수 있음

 

 

RAID 0의 단점

  • 저장된 정보가 안전하지 않음
  • 하드 디스크 하나가 고장나 버리면 그 곳에 저장된 데이터 활용이 불가능해짐 

 


 

 

 

RAID1

  • RAID1 은 미러링이라고 하기도 함 : 복사본을 만드는 방식
  • 데이터를 쓸 때 원본과 복사본 두 군데에 씀
  • 단점
    • 느린 쓰기 속도
    • 하드 디스크 개수가 한정되었을 때 사용 가능 용량이 적음 
      => 많은 양의 하드 디스크 필요 => 비용 증가
  • 장점
    • 백업과 복구가 쉽다(더 안전한 방식) 

2TB를 저장하려면 4TB가 필요

 


RAID4 

  • RAID 1 처럼 완전한 복사본을 만드는 대신,
    오류를 검출하고 복구하기 위한 정보(패리티 비트)를 저장
    • 패리티 비트(Parity Bit) : 원래 오류 검출용 정보인데, 레이드에서는 오류의 검출뿐만 아니라 복구도 가능하도록 계산식이 추가되어 있음!
  • 패리티비트를 하나의 하드디스크에 몰아 넣어서, RAID 1보다 적은 하드디스크로도 데이터를 안전하게 보관할 수 있음 

 

  • RAID 4 단점 : 패리티 디스크의 병목 현상
    • 데이터를 새롭게 쓸 때마다 페리티 디스크에도 저장해야하기 때문에 바쁨
    • 오류 검출 코드도 계속 저장하기 때문에 새로운 정보를 저장할 때마다 패티리 디스크도 계속 저장 
      => 병목 현상 발생 

 


RAID5

  • 패리티 정보를 분산하여 저장하는 방식 
  • RAID 4 는 패리티를 저장한 장치를 따로 두는 방식,
    RAID 5 는 패리티를 분산하여 저장하는 방식 => 병목 현상 완화 

 

 


 

RAID6

  • 두 종류의 패리티(오류를 검출하고 복구할 수 있는 수단)을 두는 방법
  • RAID 5 보다 안전하지만 느림 

 

 

 

 

 

 

출처 : 혼자 공부하는 컴퓨터구조 + 운영체제 (저자 강민철)