본문 바로가기

OS

보조기억장치

반응형

[보조기억장치]

- 전원 공급이 없어도 저장된 내용을 유지하는 저장 장치

메모리 장치로썬 보조기억장치로 분류하지만, 입출력 장치의 하나로 볼 수도 있다.

 

[하드디스크(HDD, Hard Disk Drive)]

- 자기적인 방식으로 데이터를 저장하는 장치로 자기 디스크의 일종이라고도 볼 수 있다.

 

 

 

하드 디스크의 구조는 위와 같이 되어있다.

 

플래터 - 수많은 N, S 극으로 이루어져 있으며, 데이터들의 실질적인 저장 장소로 여러장을 사용할 수 있고, 일반적으로 양면을 모두 사용한다.

플래터를 스핀들 모터가 돌려주면, 액츄에이터의 암에 부착된 헤드가 플래터를 읽어 가는데,

이 때, 플래터의 분당 회전수를 RPM(Revolution Per Minute) 으로 표현한다

 

액츄에이터 암- 동력 장치인 액츄에이터와 플래터를 읽어내기 위해 암(arm)과 슬라이더, 헤드(head)로 구성되어 있으며, 헤드를 통해 자기 물질을 읽어 낼 수 있다.

(액츄에이터 암은 구조를 어디까지 보냐에 따라 액츄에이터와 디스크 암으로 분리해서 명명하기도 한다)

플래터의 읽을 수 있는 면마다 헤드가 존재한다고 볼 수 있다. 즉 여러 개의 헤드가 존재하며, 각 액츄에이터가 따로 움직이는 것이 다같이 같느 방향으로 움직이면서 자기 물질을 읽어 낸다.

 

 

혼자 공부하는 컴퓨터 구조 운영체제

 


[HDD 저장 단위]

 

트랙 - 플래터에서 나이테 마냥 이루고 있는 원들을 트랙으로 부른다.

 

섹터 - 플래터를 일정하고 균등한 크기의 부채꼴 모양으로 나눴을 때 하나의 부채꼴에 나눠져있는 트랙 조각을 섹터라고 부른다.

하나 이상의 섹터를 묶어서 블록으로 표현하기도 한다.(섹터와 블록은 파일 시스템의 자료 단위에서도 연관성이 있다)

보통 섹터의 크기는 512byte ~ 4096byte 이다.

 

실린더 - 여러개의 플래터를 겹쳤을 때, 동일한 위치의 트랙을 이어보면 원통이 형성되는데, 이같이 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위를 실린더라고 부른다.

 

 

연속된 정보들은 한 실린더에 저장된다

(즉, 플래터의 트랙마다 데이터가 연속적으로 저장 되는 것이 아닌 같은 겹쳐져 있는 플래터들의 같은 위치에 연속된 정보가 저장된다는 것)

같은 곳에 위치한 헤더들이 같은 곳을 읽는 것이 데이터를 읽어냄에 있어서 더 효율적이기 때문이다.


[HDD의 저장된 데이터 접근 시간]

 

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

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

 

전송 시(transfer time) - HDD와 컴퓨터 간에 데이터를 전송하는 시간

 

위에 적힌 접근 시간들은 컴퓨터의 성능면에서 주요하게 작용되는 시간들이다.

 

다음은 구글의 AI를 주도하고 있는 프로그래머 Jeff Dean 의 Numbers Every Programmer Should Know 에서 발췌한 내용이다.

혼자 공부하는 컴퓨터 구조 운영체제

 

메모리에서 순차적으로 읽는 시간부터 시간 단위가 커지는 것을 볼 수 있을 정도로 위의 HDD의 데이터 접근 시간은 중요하다.

(HDD 가 읽는 모습을 직접 보고 싶으면 Hard drive ind slow motion 이라고 검색해보면 해당 영상을 볼 수 있다)


[플래시 메모리]

- 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치로 SSD, SD카드, USB 메모리 등이 속한다.

플래시 메모리는 범용성이 넓어 <보조기억장치>로 카테고리를 못박아서 표현하기에는 어렵다.

플래시 메모리는 크게 두 가지로 분류되는데 NAND 플래시 메모리, NOR 플래시 메모리 

 

(cell) - 플래시 메모리에서 데이터를 저장하는 가장 작은 단위로 이 셀이 모여서 MB, GB, TB 저장 장치가 된다.

 

셀은 다시 다음과 같이 4가지로 분류하기도 하는데

 

SLC(Single Level Cell) - 1셀에 1bit 를 저장할 수 있는 플래시 메모리

MLC(Multi Level Cell) - 1셀에 2bit 를 저장할 수 있는 플래시 메모리

TLC(Triple Level Cell) - 1셀에 3bit 를 저장할 수 있는 플래시 메모리

QLC(Qaud Level Cell) - 1셀에 4bit 를 저장할 수 있는 플래시 메모리

 

한 셀에서 저장될 수 있는 비트가 적을수록 비트의 입출력이 빠르고, 수명이 길며, 용량 대비 고가격이다.

(한 셀에 저장될 수 있는 비트가 많을수록 대용량화가 유리해, 시중에서 많이 사용되는 편이다)

 

[플래쉬 메모리 저장 단위]

 

page - cell 의 집합

block - page 의 집합

plane - block 의 집합

die - plane 의 집합

혼자 공부하는 컴퓨터구조 운영체제

 

 

[page 의 상태]

 

플래시 메모리의 읽기 / 쓰기 단위 = page

플래시 메모리의 삭제 단위= block

 

플래시 메모리는  HDD 와 달리 덮어쓰기가 불가능하다. 또한 block 단위로 삭제 되기 때문에 어떠한 특정 page 만을 삭제할 수는 없다. 그래서 다음과 같은 상태를 통해서 필요없는 데이터를 삭제한다.

 

Free 상태 - 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태

Valid 상태 - 이미 유효한 데이터를 저장하고 있는 상태

Invalid 상태 - 유효하지 않은 데이터(쓰레기값)를 저장하고 있는 상태

 

가비지 컬렉션 - 유효한 페이지들만'새로운 블록'으로 복사하고, 기존의 블록은 삭제한다.

 

 

혼자 공부하는 컴퓨터 구조 운영체제

 

현재 위의 사진에서 C 데이터가 들어옴으로써 현재 valid 상태인 page 는 A와 B, C 가 된다.

 

여기서 A를 A' 으로 바꾸고 A 를 삭제 하고 싶을 때

 

페이지 단위로는 삭제가 불가능 하기 때문에 A 만을 삭제할 순 없고, 블록 단위로 삭제를 하면 다른 데이터가 함께 삭제가 되기 때문에 다음과 같은 과정을 통해서 수정과 삭제를 이뤄지게 한다.

 

남은 공간의 Free 상태의 page 에 A' 값을 입력하고, 기존의 valid 했던 A page 를 invalid 상태로 바꾼다.

 

그럼 A' 이 저장되고 나서 현재 이 블록의 valid 한 상태의 page 는 B, C, A' 가 된다.

 

이 상태에서 가비지 컬렉션을 통해서 복사와 삭제 과정이 이루어진다. 

혼자 공부하는 컴퓨터 구조 운영체제

 

반응형

'OS' 카테고리의 다른 글

프로세스  (0) 2024.08.16
입출력 장치 / 장치 컨트롤러 & 장치 드라이버  (0) 2024.08.11
캐시 메모리  (0) 2024.08.09
메모리 주소 공간  (0) 2024.08.08
File System  (0) 2024.08.06