[CS] 컴퓨터 구조 - 보조기억장치

이상혁·2023년 9월 15일
0

Computer science

목록 보기
7/15
혼자 공부하는 컴퓨터 구조 + 운영체제를 읽고 공부한 내용입니다.

다양한 보조 기억 장치

하드 디스크

하드 디스크는 자기적인 방식으로 데이터를 저장하는 보조기억장치이다.

하드 디스크의 생김새를 보면 플래터, 스핀들, 헤드, 디스크 암으로 이루어져 있다.

플래터는 실질적으로 데이터가 저장되는 곳이고 동그란 원판으로 되어 있다.
플래터는 자기물질로 덮여 있어서 N극과 S극으로 저장이 되어 있는데 이 N극과 S극에 0과 1을 저장한다.

스핀들은 플래터를 회전을 시키는 구성 요소이다.
분당 회존 속도를 RPM으로 표시한다.

헤드는 플래터를 대상으로 데이터를 읽는 역할을 한다.
플래터 위에 미세하게 떠 있는 채로 데이터를 읽고 쓴다.

디스크 암은 헤드를 원하는 위치로 해드를 이동시키는 역할을 한다.

플래터는 일반적으로 양면을 사용할 수 있고 여러 겹으로 되어 있다.
플래터를 양면으로 사용하면 양면에 하나 씩 플래터 당 2개의 헤드를 사용한다.

플래터는 트랙섹터 단위로 데이터를 저장한다.
트랙은 플래터를 여러 동심원으로 나누었을 때 그 중 하나의 원을 트랙이라고 부른다.
육상 트랙을 생각하면 이해가 쉽다.

섹터는 트랙은 피자처럼 조각으로 나누어져 있는데 그 조각들을 섹터라고 한다.

플래터는 여러 겹으로 겹쳐있다.
이렇게 플러터가 겹쳐있을 때 같은 트랙이 위치한 곳을 연결한 논리적 단위를 실린더라고 한다.
연속된 정보는 실린더에 저장이 된다.
그 이유는 실린더는 같은 트랙을 묶어 놓은 것이기 때문에 헤드을 움직일 필요가 없기 때문이다.

하드 디스크가 저장된 데이터에 접근하는 시간은 탐색 시간, 회전 지연, 전송 시간으로 나누어져 있다.

탐색 시간은 접근하려는 데이터가 저장된 트랙으로 이동하는 시간을 말한다.
회전 지연은 헤드가 있는 곳으로 회전을 시키는 시간을 의미한다.
전송 시간은 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간을 의미한다.

플래시 메모리

플래시 메모리는 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치이다.
주로 USB, SD카드 SSD에 많이 사용한다.
플래시 메모리에는 이라는 단위가 있습니다.
은 플래시 메모리에 데이를 저장하는 가장 작은 단위이다.

셀은 샐 하나의 몇 비트가 담기냐에 따라 종류가 달라진다.
1비트를 담을 수 있다면 SLC 타입,
2비트를 담을 수 있다면 MLC 타입,
3비트를 담을 수 있다면 TLC 타입이다.

SLC는 한 셀에 1비트만 들어간다.
MLC나 TLC 타입에 비해서 빠른 출력이 가능하고 수명도 길다.

하지만 용량이 대비해서 가격이 높기 때문에 고성능의 빠른 저장 방치가 필요한 경우에 SLC를 사용한다.

MLC는 한 셀에 2개의 비트가 들어간다.
SLC에 비해서 속도와 수명이 떨어지지만 2개의 비트를 저장할 수 있다는 점에서 대용화하기가 쉽다.

TLC는 한 셍에 3개의 비트가 들어간다.
TLC는 SLC나 MLC에 비해서 속도나 수명이 떨어지지만
가격이 싸고 대용화하기가 쉽다.

플래시 메모리의 가장 작은 단위는 셀이다.
이 셀들이 모이면 더 큰 단위가 되는데 이 단위에 대해서 알아 보자

들이 모여서 만들어진 단위를 페이지,
페이지들이 모여서 만들어진 블록,
블록들이 모여져서 만들어진 플레인,
플레인들이 모여져서 만들어진 다이가 있다.

플래시 메모리의 읽기와 쓰기페이지 단위로 이루어지고 삭제블록 단위에서 이루어진다.

페이지 단위는 총 3개의 상태를 가질 수 있다.
Free 상태, Valid 상태, Invalid 상태이다.

Free 상태는 어떠한 데이터도 저장되어 있지 않아서 데이터 저장이 가능한 상태이다.
Valid 상태는 이미 유효한 데이터를 저장하고 있는 상태이다.
Invalid 상태는 유효하지 않는 데이터를 저장하고 있는 상태이다.

플래시 메모리는 하드 디스크와 달리 덮어쓰기가 불가능하다.
그래서 Valid나 Invalid 상태에서는 새 데이터를 저장하지 않을 수 없다.

그래서 수정된 데이터를 저장하기 위해선 다음과 같은 과정을 거친다.
먼저, 블록은 페이지가 4개가 모여 블록을 이룬다.
그래서 총 4개의 페이지에서 A페이지를 수정을 하고 싶다면
수정된 A페이지의 값을 Free 상태에 페이지에 저장을 한다.

그리고 A페이지와 수정된 A페이지가 든 블록에서 A를 제외한 나머지 페이지를 다른 블록에 복사를 한다.
그리고 기존의 블록을 삭제한다.

이 방법을 가비지 컬력션이라고 한다.

RAID의 정의와 종류

RADI의 정의

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

RADI의 종류

RAID 구성하는 방법은 여러가지가 있는데,
그 RADI 구성 방법을 RADI 레벨이라고 표현을 한다.
대중적인 방법으로 RADI 0, RADI 1, RADI 4, RADI 5, RADI 6가 있고 이에 대해서 알아보자

RADI0
RADI0은 보조기억장치에 데이터를 단순히 나누어 저장하는 방식이다.
저장하려는 데이터를 각각의 하드디스크에 하나 씩 순회하면서 저장을 하는 것이다.
이 때, 줄무늬처럼 분산이 되어서 저장된 데이터를 스트라입이라고 하고,
분산하여 저장하는 것을 스트라이핑이라고 한다.

이렇게 저장을 하게되면 데이터를 동시에 쓰고 읽을 수 있기 때문에 속도가 더 빠르다는 장점이 있다.
하지만 저장이 된 정보가 안전하지 않다. 디스크 중 하나라도 문제가 생긴다면 다른 디스크도 문제가 생길 수 있다.

RADI1
RADI1은 복사본을 만드는 미러링을 이용한다.
스트라이핑이 이용이 되지만 복사본을 만들어 나머지 반에 저장을 한다.
이렇게 되면 원본에 문제가 생겨도 복사본이 있기 때문에 안전성이 높아진다.

하지만 반을 복사본을 만드는데 쓰기 떄문에 그 만큼 용량이 많이 들고 용량이 많이 드는 만큼 비용도 올라간다.

RADI4
RADI4는 복사본을 만드는 대신 오류를 검출하고 복구하기 위한 정보를 저장한 장치를 두는 구성 방식이다.
이 때, 오류를 검출하고 복구하기 위한 정보를 패리티 비트라고 한다.
RADI4에서는 이 패리티 비트를 저장한 장치에서 다른 장치에 오류를 검출하고 오류를 복구한다.
이 방법으로 RADI1보다 더 작은 하드 디스크로 데이터를 보관할 수 있다.

RADI5
RADI5는 RADI4에서 일어나는ㄴ 패리티 저장 장치의 방목 현상을 막기 위해서 각 페리티를 분산해서 저장을 한다.
저장을 할 떄는 RADI0처럼 순회하면서 저장을 한다.

RADI6
RAID6는 기본적인 구성은 RADI5와 같다.
다른 점은 패리티 비트를 2개를 저장한다.
오류를 검출하고 복귀하는 정보를 2개 저장하는 것이다.
RADI5보다는 속도가 느릴 수 있지만 안전성은 더 높다는 장점이 있다.

profile
개발 공부 하기 위해 만든 블로그

0개의 댓글