본문 바로가기
컴퓨터공학/운영체제

OS 11. Mass-Storage Structure

by Jinger 2023. 5. 18.

서론

 컴퓨터의 비휘발성 저장장치 시스템인 대용량 저장장치가 어떻게 구성되어 있는지 알아보자. 많은 유형의 대용량 저장장치가 있으며, 모든 유형에 해당하는 내용일 경우 NVS(비휘발성 저장장치, non-volatile storage)라는 용어를 사용하거나 저장장치 "드라이브"에 대해 이야기한다.


Disk Structure

Hard Disks

 하드 디스크의 플래터 크기는 .85인치에서 14인치까지 다양하며, 주로 3.5인치, 2.5인치, 1.8인치 크기가 일반적으로 사용된다. 하드 디스크의 용량은 드라이브 당 30GB에서 3TB까지 다양하며 성능 측면에서, 이론적인 전송 속도(Transfer Rate)는 6Gb/초이지만, 실제로는 1Gb/초의 실제 전송 속도를 가지고 있다. 탐색 시간(Seek time)은 3ms에서 12ms 사이의 범위를 가지며, 일반적으로 데스크탑 드라이브에서는 9ms의 평균 탐색 시간을 가지고 있다. 평균 탐색 시간(Average seek time measured or calculated)은 트랙의 1/3을 기준으로 측정되거나 계산된다. 회전 속도에 기반한 지연 시간(Latency based on spindle speed)은 일반적으로 1 / (RPM / 60) = 60 / RPM의 공식을 사용하여 계산된다. 평균 지연 시간(Average latency)은 지연 시간의 절반으로 계산된다.

Hard Disk Internals

 하드 디스크의 내부 동작에는 다음과 같은 요소들이 포함된다.

  • 디스크 I/O 서비스 시간(Disk I/O service time): 하드 디스크에 대한 입출력 서비스의 시간이다. 이 시간은 seek time, rotational delay, 데이터 전송 시간으로 구성된다.(Seek time + Rotational delay + Data transfer time)
  • 탐색 시간(Seek time): 디스크 헤드를 원하는 트랙으로 이동하는 데 걸리는 시간이다. Seek time은 주로 디스크 헤드가 이동해야 하는 거리와 관련이 있다.
  • 회전 지연(Rotational delay): 원하는 섹터가 디스크 헤드에 도달하기까지 디스크가 회전하는 시간이다. 회전 지연은 최상의 경우 0이지만, 최악의 경우 한 번의 회전에 걸리는 시간까지 소요될 수 있다.
  • 데이터 전송 시(Data transfer time): 디스크 미디어와 디스크 버퍼 간에 데이터를 전송하는 데 걸리는 시간이다. 데이터 전송 시간은 디스크의 속도에 따라 다르며, 디스크의 회전 속도와 데이터 밀도에 영향을 받는다.

 일반적으로, seek time과 rotational delay는 데이터 전송 시간에 비해 상대적으로 긴 시간이 소요된다. 이는 하드 디스크의 성능 특성으로 인해 발생하는데, 헤드의 이동과 디스크의 회전 속도에 따라 결정된다. 이러한 요소들은 하드 디스크의 내부 작동을 이해하고 디스크 I/O의 성능을 예측하는 데 중요한 역할을 한다.

Solid-State Disks

 Solid-State Disks는 하드 드라이브처럼 사용되는 비휘발성 메모리이다. 다양한 기술 변형이 있다. HDD보다 신뢰성이 높을 수 있다. MB 당 가격이 더 비싸며, 수명이 짧을 수 있다. 용량이 더 작을 수 있지만 훨씬 빠르다. 버스(Bus)가 너무 느릴 수 있으므로, 직접 PCI와 같은 인터페이스에 연결할 수 있다. 움직이는 부품이 없기 때문에 탐색 시간이나 회전 지연이 없다.

더보기

 운영체제에서 버스는 컴퓨터 시스템의 다양한 구성 요소 간에 데이터와 신호를 전송하는 데 사용되는 통신 경로이다. 버스는 중앙 처리 장치(CPU), 메모리, 입출력 장치 등 각각의 구성 요소 간의 데이터 전송을 조정하고 제어하는 역할을 한다. 따라서 버스는 시스템의 성능과 효율성에 큰 영향을 미치는 중요한 요소이다.

Magnetic Tape

 Magnetic Tape는 초기 보조 저장 매체로 사용되었다. 비교적 영구적이며 대량의 데이터를 저장할 수 있다. 하지만 액세스 시간이 느리다.(랜덤 액세스는 디스크보다 약 1000배 정도 느리다.) 주로 백업, 드물게 사용되는 데이터의 저장, 시스템 간 전송 매체로 사용된다. 순차 액세스 방식에 보관되어 읽기-쓰기 헤드를 통과하여 감거나 되감을 할 수 있습니다. 데이터가 헤드 아래에 있으면 전송 속도는 디스크와 유사하다. 140MB/초 이상의 전송 속도를 가지고 있다. 일반적으로 200GB에서 1.5TB까지 저장 용량을 가진다.

NAS(Network-Attached Storage)

 네트워크 연결 스토리지 (NAS)는 로컬 연결 (버스 등)이 아닌 네트워크를 통해 제공되는 저장 공간이다. 원격으로 파일 시스템에 연결한다. NFS(Network File System)와 CIFS(Common Internet File System)는 일반적인 프로토콜이다. 주로 TCP 또는 UDP를 사용하는 IP 네트워크 상에서 호스트와 저장소 간에 원격 프로시저 호출(RPC)을 통해 구현된다. iSCSI 프로토콜은 IP 네트워크를 통해 SCSI 프로토콜을 전달하는 데 사용된다. 디바이스(블록)에 원격으로 연결하는 것도 가능하다.


Disk Scheduling Algorithms

 디스크 I/O 스케줄러는 디스크 I/O 서비스 요청이 도착하면 요청 큐에 순서대로 배치된다. 각 요청은 스케줄링 단위로 처리되며, 읽기 또는 쓰기 유형, 디스크 주소, 섹터 수 등의 정보를 포함한다. 요청이 완료되면 디스크 I/O 스케줄러는 다음으로 처리할 요청을 선택한다. 디스크 I/O 스케줄러의 알고리즘에 따라 평균 디스크 I/O 서비스 시간이 달라진다.


 디스크 스케줄링 알고리즘은 디스크의 탐색 시간과 회전 지연을 최소화하기 위해 설계된다. 디스크 컨트롤러는 일반적으로 실린더 기반 매핑을 사용하지만, 운영 체제는 회전 지연을 정확히 추정할 수 없다. 또한 디스크의 회전 속도와 트랙당 섹터 수는 다양하다. 디스크 스케줄링 알고리즘은 주로 탐색 시간을 최소화하는 방향으로 설계되며, 요청 큐의 상태와 디스크 헤드의 현재 위치를 고려하여 알고리즘의 성능을 평가한다. 이를 통해 각 디스크 스케줄링 알고리즘의 헤드 이동 횟수를 계산하여 비교할 수 있다.

FCFS (First Come First Served)

 FCFS (First Come First Served)도착한 순서대로 요청을 처리한다. 예를 들어, 큐에 {R1(25), R2(92), R3(56), R4(4), R5(17), R6(52), R7(10), R8(32)}이 들어왔고, 현재 디스크 헤드는 22에 있다. 이 조건에서 디스크 헤드의 총 이동 거리가 270이 된다. FCFS는 탐색 거리가 너무 길어지는 단점이 있다.

SSTF (Shortest Seek Time First)

 SSTF(Shortest Seek Time First)은 현재 헤드 위치로부터 최소 탐색 시간을 가진 요청을 우선적으로 처리하는 방식이다. 이는 탐색 시간이 가장 짧은 요청을 선택하는 탐욕 알고리즘(greedy algorithm)이다. 예를 들어, 주어진 요청 큐 상태와 헤드의 위치에 따라 SSTF 알고리즘이 동작한다. 아래 그림을 보면,  FCFS과 동일한 조건에서 SSTF으로 동작하는 상황이다. 이 상황에서 디스크 헤드의 총 이동 거리가 126이 된다. 그러나 이 알고리즘은 탐욕적인 방식으로 동작하기 때문에 일부 요청들이 배제될 수 있는 기아(starvation) 현상을 초래할 수 있다.

SCAN

 SCAN은 디스크 헤드가 디스크의 한쪽 끝에서 출발하여 반대쪽 끝까지 이동하며 요청을 처리한 후, 헤드 이동 방향을 반대로 전환하여 계속하여 요청을 처리하는 방식이다. 이 알고리즘은 엘리베이터 알고리즘으로도 알려져 있다. 예를 들어, 주어진 요청 큐 상태와 헤드의 위치에 따라 SCAN 알고리즘이 동작한다. 디스크 헤드는 22 위치에서 시작하며, 요청을 처리하기 위해 한쪽으로 이동한 후 다시 반대쪽으로 이동하며 요청을 처리한다. 그렇게 총 174 디스크 해드가 이동한 것을 알 수 있다.

C-SCAN

 C-SCAN은 SCAN의 변형 알고리즘이다. SCAN보다 더 균일한 대기 시간을 제공한다. C-SCAN은 한쪽 끝에 도달하면 바로 디스크의 처음으로 돌아가며, 반환 경로에서는 어떠한 요청도 처리하지 않는다. 예를 들어, 주어진 요청 큐 상태와 헤드의 위치에 따라 C-SCAN 알고리즘이 동작한다. 위와 같이 동일한 상황에 C-SCAN을 동작해보면, 디스크 헤드는 22 위치에서 시작하며, 한쪽 방향으로 이동하여 요청을 처리한 후, 다시 디스크의 처음으로 돌아가면서 요청을 처리하지 않는다. 그렇게  디스크 헤드의 총 이동 거리가 195가 된다.

C-LOOK

 C-LOOK은 C-SCAN의 실제 구현 방식이다. C-LOOK은 디스크 헤드가 각 방향의 마지막 요청까지만 이동한다. 그 후에는 바로 방향을 바꾸며 디스크의 끝까지 가지 않는다. 예를 들어, 주어진 요청 큐 상태와 헤드의 위치에 따라 C-LOOK 알고리즘이 동작한다. 디스크 헤드는 22 위치에서 시작하며, 각 방향으로 이동하여 해당 방향의 마지막 요청까지 이동한 후, 즉시 방향을 반대로 바꾸며 디스크의 끝까지 가지 않습니다. 그렇게  디스크 헤드의 총 이동 거리가 171이 된다.


Disk Formatting

 디스크 포맷팅(Disk Formatting)에는 물리적 포맷팅(하위 레벨 포맷팅)과 논리적 포맷팅이 있다. 물리적 포맷팅(하위 레벨 포맷팅)은 디스크를 컨트롤러가 읽고 쓸 수 있는 섹터로 나누는 과정이다. 대부분의 하드 디스크는 제조과정에서 이미 물리적으로 포맷팅이 되어 있다. 이 과정에서 각 섹터에는 디스크 컨트롤러가 사용하는 특수 데이터 구조가 추가된다. 헤더와 트레일러에는 섹터 번호, 오류 정정 코드(ECC) 등의 정보가 포함된다.
 파티션(Partition)은 하나의 디스크를 여러 개의 논리적인 디스크로 나눌 수 있다. 운영 체제는 각 파티션을 별개의 디스크로 취급할 수 있다.


 논리적 포맷팅(Logical formatting)은 운영 체제가 초기 파일 시스템 데이터 구조를 저장하는 과정이다. 슈퍼블록, 빈 공간 비트맵 등의 정보가 포함된다.


Swap Space Management

 스왑 스페이스(Swap space)는 가상 메모리에서 주 메모리의 확장으로 디스크 공간을 사용하는 것이다. 스왑 스페이스는 두 가지 형태로 구현될 수 있다. 첫째, 파일 시스템 내의 일반 파일로 구현될 수 있다. Windows에서 이 방식을 사용한다. 둘째, 별도의 디스크 파티션으로 구현될 수 있습니다. UNIX에서 이 방식을 사용한다.


핵심

  • 디스크 I/O 서비스 시간은 탐색 시간, 회전 지연 및 데이터 전송 시간의 합으로 모델링된다.
  • 디스크 I/O 스케줄러는 요청이 완료되면 요청 대기열에서 다음 요청을 선택한다.
  • 탐색 시간을 최소화하기 위한 많은 디스크 I/O 스케줄링 알고리즘이 있다. SSTF, SCAN 및 C-SCAN이 그러한 예이다.
  • 디스크를 사용하기 전에 물리적, 논리적으로 포맷해야 한다.
  • 스왑 공간은 파일 시스템의 일반 파일 또는 별도의 디스크 파티션으로 구현 가능하다.
반응형

'컴퓨터공학 > 운영체제' 카테고리의 다른 글

OS 13. File System Interface  (0) 2023.05.19
12. I/O Systems  (0) 2023.05.18
OS 10. Virtual Memory  (0) 2023.05.18
OS 9. Main Memory  (0) 2023.05.18
OS 8. Deadlocks  (1) 2023.05.16

댓글