구조
구성 요소
- Spindle: 디스크 플래터(Platter)를 고정하고 회전시키는 축이다. 모든 플래터는 스핀들에 의해 동일한 속도로 회전한다.
- Platter: 자성 물질로 코팅된 원판 형태의 디스크이다. 디스크 드라이브에는 여러 개의 플래터가 수직으로 쌓여 있을 수 있다.
- Read/Write Head: 데이터를 읽고 쓰는 장치이다. 각 플래터의 양면에 하나씩 붙어 있으며, 헤드는 플래터 표면 위를 이동하면서 데이터를 액세스한다.
- Arm: Read/Write Head를 움직이는 기계 장치이다. 헤드가 트랙을 따라 이동할 수 있도록 돕는다.
- Cylinder: 같은 반지름을 갖는 모든 플래터의 트랙들의 집합이다. 이는 여러 플래터가 같은 위치에 있는 트랙을 논리적으로 묶은 개념이다.
디스크 구조
- Track: 플래터의 각 면에 동심원 형태로 그려진 트랙은 데이터를 저장하는 원형 경로이다. 하나의 플래터에는 수천 개의 트랙이 존재할 수 있다.
- Sector: 각 트랙은 여러 개의 섹터로 나뉜다. 섹터는 디스크의 데이터 저장의 기본 단위로, 일반적으로 512바이트 또는 그 이상의 데이터를 저장할 수 있다.
- Block: 파일 시스템에서 데이터의 최소 할당 단위이다. 여러 섹터가 모여 하나의 블록을 구성하며, 보통 4KB 크기를 가진다.
동작 원리
- 디스크가 회전하면, Read/Write Head는 Arm에 의해 트랙을 따라 이동하며 원하는 위치에 접근한다.
- 특정 데이터를 읽거나 쓸 때, 디스크 컨트롤러는 헤드를 올바른 트랙과 섹터로 위치시키고, 데이터를 읽거나 쓴다.
- 데이터는 먼저 트랙에서 섹터로, 그리고 여러 섹터가 모여 블록 단위로 관리된다.
Disk Access Times
총 디스크 액세스 시간(Total Disk Access Time)
= 탐색 시간(Seek Time) + 회전 지연 시간(Rotational Latency) + 데이터 전송 시간(Data Transfer Time)
1. 탐색 시간(Seek Time)
탐색 시간은 디스크의 읽기/쓰기 헤드가 데이터를 읽거나 쓰기 위해 올바른 트랙으로 이동하는 데 걸리는 시간이다. 일반적으로 탐색 시간은 디스크 액세스 시간 중 가장 큰 부분을 차지한다.
2. 회전 지연 시간(Rotational Latency)
회전 지연 시간은 디스크가 회전하여 읽기/쓰기 헤드 아래에 올바른 섹터가 위치할 때까지 기다리는 시간이다. 회전 지연 시간은 디스크의 회전 속도(RPM, Revolutions Per Minute)에 크게 영향을 받는다.
- 평균 회전 지연 시간: 디스크의 회전 속도의 절반에 해당하는 시간이 일반적인 평균 지연 시간이다. 예를 들어, 7200 RPM 디스크의 평균 회전 지연 시간은 약 4.17밀리초이다.
3. 데이터 전송 시간(Data Transfer Time)
데이터 전송 시간은 디스크에서 데이터를 실제로 읽거나 쓰는 데 걸리는 시간이다. 이는 데이터가 디스크에서 메모리로, 또는 메모리에서 디스크로 전송되는 시간이다.
Sector Size
섹터 크기(Sector Size)를 선택하는 것은 디스크 설계와 파일 시스템 성능에 중요한 영향을 미친다. 섹터는 디스크에서 데이터를 저장하는 기본 단위로, 전통적으로 512바이트 크기가 표준이었으나, 현대 디스크에서는 4KB 섹터가 점점 더 일반화되고 있다.
동기화 필요성
- Read/Write 헤드의 동기화: 디스크가 회전할 때 Read/Write 헤드가 디스크 회전 속도에 맞춰 동기화되어야 한다.
- 섹터 간 간격: 각 섹터 사이에 디스크가 얼마나 빠르게 회전하는지를 측정하기 위해 100-1000 비트의 공간이 필요하다.
섹터 크기의 영향
- 작은 섹터 크기는 많은 공간을 동기화 정보와 오버헤드에 사용하게 되어 데이터 전송 속도가 매우 낮아진다.
- 적당한 섹터 크기는 유용한 데이터 비율을 높이고 전송 속도를 향상시킨다.
- 큰 섹터 크기는 거의 모든 디스크 공간을 유용한 데이터에 사용할 수 있게 하여 최고 전송 속도를 달성한다.
섹터 크기를 선택할 때는 오버헤드와 데이터 전송 효율성을 고려하여 최적의 크기를 선택하는 것이 중요하다. 더 큰 섹터 크기는 전송 속도를 극대화하는 데 도움이 되지만, 작은 파일의 경우 내부 단편화 문제가 발생할 수 있다.
Block Size
블록 크기를 선택할 때는 파일 시스템의 특성과 사용 패턴을 고려하여 최적의 크기를 선택하는 것이 중요하다. 더 큰 블록 크기는 대형 파일 처리 시 성능을 극대화하지만, 작은 파일에서는 비효율적일 수 있다. 최적의 블록 크기를 선택하면 전송 속도와 저장 효율성을 극대화할 수 있다.
블록의 크기가 크고, 작은 파일이 많을 수록 내부 단편화로 공간이 더 낭비된다.
Block Replacement
FIFO (First In First Out): 가장 오래된 Block을 제거한다.
LRU Least Recently Used): 최근에 가장 적게 사용된 Block을 제거한다.
Disk Head Scheduling
FCFS (First Come First Served): 도착한 순서대로 요청을 처리하는 방식이다.
SSTF (Shortest Seek Time First: 현재 헤드 위치에서 가장 가까운 요청부터 처리하는 방식이다. ⇒ 이상적이지만, 예측 불가능하다.
SCAN (Elevator Algorithm): 헤드가 한 방향으로 끝까지 이동 후, 반대로 이동하며 요청을 처리하는 방이다.
C-SCAN (Circluar SCAN): 헤드가 한 방향으로 끝까지 이동 후, 다시 처음으로 가서 요청을 처리하는 방식이다.
LOOK: 헤드가 한 방향으로 이동하다 마지막 요청 트랙에 도달하면, 즉시 방향을 바꾸면서 요청을 처리하는 방식이다.
C-LOOK: 헤드가 한 방향으로 이동하다 마지막 요청 트랙에 도달하면, 남은 요청 중 첫 번째로 돌아가서 처리하는 방식이다.
RAID (Redundant Array of Independent Disks)
RAID는 여러 개의 디스크를 하나의 배열(array)로 묶어 데이터 안전성과 성능을 향상시키는 기술이다. RAID는 다양한 수준(Level)으로 구현되며, 각각의 수준은 성능, 데이터 보호, 저장 용량 등에 대한 다른 특성을 제공한다.
RAID5는 성능, 용량, 데이터 보호 간의 균형을 제공하는 RAID 수준 중 하나이다. 최소 3개의 디스크로 구성되며, 데이터와 패리티 정보를 Striping을 사용하여 분산 저장하고, 각 데이터 블록의 패리티 정보를 계산하여 다른 디스크에 저장한다. 이를 통해 하나의 디스크가 고장 나더라도 데이터를 복구할 수 있다.
RAID5의 주요 장점으로는 읽기 성능이 향상되고, 하나의 디스크 장애에 대해 데이터 복구가 가능하다는 점이 있다. 그러나 단점으로는 쓰기 성능이 RAID0보다 느리며, 데이터 복구 시 성능 저하가 발생할 수 있다는 점이 있다.
'CS > 운영체제' 카테고리의 다른 글
[OS] NachOs 환경 세팅, 실행 (0) | 2024.07.02 |
---|---|
[OS] File System (0) | 2024.07.01 |
[OS] Memory Management (0) | 2024.07.01 |
[OS] Program -> Process (0) | 2024.07.01 |
[OS] Deadlock (0) | 2024.07.01 |