티스토리 뷰
7. 보조기억장치
- 보조기억장치는 딱히 볼 게 있을까? 싶었다.
- 하지만 HDD와 플래시를 본다고 하니 급 궁금해졌다.
- RAID도 본다고 하니 더 궁금해졌다.
- 레이드 보스와의 연관성은 모르겠다.
7.1 다양한 보조기억장치
- 내가 9살 쯤 학교에서 처음 만졌던 컴퓨터는 보조기억장치가 없었다.
- 그냥 누르니까 뭔가 나오는 신기한 장치였다.
- 대충 이렇게 생겼었다.
출처: https://uxdesign.cc/what-i-learned-from-a-30-year-old-video-game-console-9eafa9abf9da
- 컴퓨터 학원에서 만졌던 컴퓨터는 5.25인치 플로피 디스크를 넣을 수 있었다.
- 디스크를 넣어야 MS-DOS가 구동되었던 걸로 기억한다.
- 왜 이렇게 불편할까, 영구 저장 가능한 저장장치는 왜 없는걸까, 라고 불편해하고 있었는데,
- 몇 년 후 정말로 HDD가 달린 컴퓨터가 나왔다.
- 수 십 MB 정도의 저장용량이었을 것 같다.
- 30년 전 얘기다. 지금 이 글을 쓰고 있는 PC는 4 TB짜리 HDD가 달려 있다.
- 아, 물론 OS는 1 TB 짜리 SSD에서 돌아가고 있다.
7.1.1 하드 디스크
- 대학원에 들어가기 전 학부 연구생을 했다.
- 당시 맡은 업무는 하드 디스크의 헤드 구동기 시뮬레이션이었다.
- 하드 디스크의 디스크 암은 스피커에 들어가는 voice coil motor로 움직이는데,
- 헤드 쪽에 더 작게 움직이는 구동기를 붙이는 과제였다.
- 누군가는 이렇게 설명했다.
- 헤드가 디스크 위에 떠서 움직이는 것은, 비행기가 지상 30 cm 위에서 비행하는 것과 같다고.
- 실제로 요즘 HDD에서 헤드가 떠있는 높이는 5 nm라고 한다.
- nm 맞다. micron 아니다.
- 그래서 지문만 묻어도 crash가 일어날 수 있다.
- 책에서 좀 멀어지는 듯하니 하드웨어 얘기는 여기까지 하자.
- HDD의 각 디스크는 플래터라고 부른다.
- 플래터는 트랙으로 나뉘고, 트랙은 섹터로 나뉜다.
- 트랙은 피자 전체의 치즈 크러스트이고, 섹터는 피자 한 조각의 치즈 크러스트이다.
출처: https://en.wikipedia.org/wiki/Cylinder-head-sector
- 여러 플래터의 같은 위치의 트랙을 모라서 실린더라고 부른다.
- 실린더라는 개념이 필요한 이유는?
- 연속된 정보를 하나의 실린더에 기록하기 때문이다.
- 그렇게 하면 헤드를 움직이지 않고 정보를 읽을 수 있다! 완전 천재다.
7.1.2 플래시 메모리
- 10년 전 만 해도 플래시 메모리는 거의 USB 메모리를 뜻했다.
- 요즘은 개인 PC나 태블릿에도 플래시 메모리가 대세(?)다. 바로 SSD다.
- 플래시 메모리에서 정보 저장의 가장 작은 단위는 셀이다.
- 한 셀에 1비트만 저장할 수 있는 것을 SLC(Single Level Cell) 타입이라 부른다.
- 2비트면 MLC(Multiple Level Cell), 3비트면 TLC(Triple Level Cell)이다.
- SLC -> MLC -> TLC로 갈수록
- 수명이 짧아지고
- 읽기/쓰기 속도가 느리지만
- 싸다.
- 셀이 모인 단위를 페이지, 페이지가 모인 단위를 블록, 블록이 모인 단위를 플레인, 플레인이 모인 단위를 다이라고 부른다.
- 플래시 메모리에서 읽기/쓰기는 페이지 단위로 이루어진다.
- 그런데 삭제는 페이지보다 큰 블록 단위로 이루어진다.
- 왜 그래야만 했을까...
출처: https://www.youtube.com/watch?v=qgIKeaZBlbo
- 게다가 플래시 메모리는 덮어쓰기가 안된다.
- 그래서 값을 수정하려면 빈 공간에 써야 한다.
- 그러면 안 쓰는 쓰레기 값이 생기잖아?
- 그런데 삭제는 통으로(블록 단위로) 지워야 하네?
- 그래서 가비지 컬렉션이 이루어진다.
- 블록을 통채로 다른 블록으로 옮기고 기존 블록을 삭제한다.
- 다시 한번...
출처: https://www.youtube.com/watch?v=qgIKeaZBlbo
7.2 RAID의 정의와 종류
- RAID 보스 그런거 아닌 거 같다.
- RAID라는 단어는 15년 쯤 전에 들어보긴 했는데,
- HDD 뻑날 때를 대비해서 백업을 만들어두는 것 정도로 알고 있었다.
7.2.1 추가과제: RAID의 종류와 장단점
RAID는 Redundant Array of Independent Disks의 약자다.
RAID 0부터 RAID 6까지 있다.
RAID 0
- 데이터를 여러 HDD에 분산시켜서 저장한다.
- 이렇게 분산하여 저장하는 것을 스트라이핑이라고 부른다.
- 장점: 한번에 동시에 읽으면 읽는게 빠르다.
- 단점: HDD 하나 뻑나면 (...욕 필터링 중...) 된다.
RAID 1
- 데이터의 복사본을 만든다.
- 장점: 뻑나도 복구 가능하다.
- 단점: 용량이 줄어든다.
RAID 4
- 오류 검출, 복구를 위한 정보만 저장하는 HDD를 따로 둔다.
- 이 정보를 패리티 비트(parity bit)라고 부른다.
- 장점: 오류 검출 가능
- 단점: 오류를 복구해준다는 말은 아님
RAID 5
- 패리티 정보를 여러 HDD에 분산해서 저장한다.
- 장점: 병목 현상이 줄어든다.
- 단점: 패리티가 날아가면...?
RAID 6
- 패리티 정보를 2개 만든다.
- 장점: 오류 검출/복구 수단이 2개가 생겼다.
- 단점: 쓸 게 많아서 느리다.
결론: 이게 동작한다는 게 신기할 정도다. 컴퓨터 만든 사람들 존경함다.
'혼공컴운' 카테고리의 다른 글
[혼공컴운] 9장. 운영체제 시작하기 (0) | 2024.07.29 |
---|---|
[혼공컴운] 8장. 입출력장치 (0) | 2024.07.22 |
[혼공컴운] 6장. 메모리와 캐시 메모리 (0) | 2024.07.21 |
[혼공컴운] 5장. CPU의 성능 향상 기법 (0) | 2024.07.15 |
[혼공컴운] 4장. CPU의 작동 원리 (0) | 2024.07.14 |
댓글