DongDD's IT

Secondary Storage Structure - Disk Structure, Disk Attachment, Disk Scheduling, Disk Management, Swap Space Management, RAID Structure 본문

운영체제

Secondary Storage Structure - Disk Structure, Disk Attachment, Disk Scheduling, Disk Management, Swap Space Management, RAID Structure

DongDD 2017. 11. 27. 17:00

Secondary Storage Structure


Disk Structure


1) Platter : Data가 저장되는 공간

2) Read-write head : Platter위치에서 data를 read하기 위해 사용

3) Sector : Logical Block이 저장되는 공간

4) Spindle : Data를 읽고 쓰기위해 회전하는데 사용

5) Track : Platter로부터 같은 거리에 있는 Sector들의 집합

6) Cylinder : Spindle로부터 같은 거리에 존재하는 Track들의 집합


- Disk drive는 logical block들의 1차원 배열 형태로 되어있다.

- Logical block은 전송의 최소 단위로 사용된다.

- Logical block은 순차적으로 sector에 mapping된다.

- Sector 0은 첫번째 track의 첫번째 sector로 cylinder의 가장 바깥쪽에 있다.


Access Time


- Access time = Seek time + Rotational delay + Data transfer time

- Seek time : head를 찾고자 하는 sector를 가진 cylinder로 이동시키는데 걸리는 시간

- Rotational delay : disk의 head가 찾고자하는 sector로 회전시키는데 걸리는 시간

- Data transfer time : Data를 전송하는데 걸리는 시간

- Disk bandwidth : 첫번째 요청에서 마지막 전송까지 걸리는 총 시간 당 전송된 총 byte의 양으로 측정한다.


Solid-state disk


- Hard drive처럼 사용되는 비 휘발성 메모리이다.

- HDD보다 더 안정적이다.

- HDD보다 가격이 비싸다.

- 수명이 더 짧다.

- Seek time과 Rotation time이 없어서 더 빠르다.


Disk Attachment


1) Host-Attached Storage

- I/O port로 연결되어있고 I/O port에 접근해 I/O bus를 통해 통신, Data 전송이 이루어진다.

- SCSI라 불리는 하나의 버스로 하나의 cable에 16개의 장치가 연결될 수 있다.

2) Network-Attached Storage(NAS)

- Local connection이 아닌 Network를 사용하는 방법이다.

- TCP/IP를 통한 RPC를 사용한다.

- SCSI protocol을 수행하기 위한 IP network를 사용한다.

- LAN/WAN에 여러개의 NAS와 client가 연결되어 있는 형태이다.


3) Storage Area Network(SAN)

- Netowrk protocol이 아닌 Storage protocol을 사용한다.

- Storage는 동적으로 Host에 연결된다.

- Server를 통해 접속할 수 있다.

- FC(Fibre Channel)이라 불리는 것이 SAN에서 사용된다.

- FC는 빠른 속도를 가진 Serial architecture이다.


Disk Scheduling


1) FCFS

- First Come, First Serve 방식으로 먼저 온 Sector부터 순차적으로 스케쥴링된다.

- Seek Time이 매우 커질 수 있다.

- Head의 시작점이 39이고 들어온 순서가 20, 10, 35, 5, 50, 16 ,26이라면 들어온 순서대로 탐색한다.


2) SSTF(Shortest Seek Time First)

- 현재 Head의 위치에서 가장 짧은 Seek Time을 갖는, 가장 가까운 Sector를 탐색한다.

- 현재 Head 위치에 멀리 있는 Sector들은 Starvation이 발생할 수 있다.

- 현재 Head의 시작점이 39이고 가장 가까운 Sector는 35이므로 35로 가고 계속 가까운 sector를 찾아 39-35-26-20-16-10-5-50 이 순서대로 간다. 만약 1~30 사이에 엄청 많은 Sector들의 존재한다면 이 상황에서 Sector 50은 Starvation이 발생할 수 있다.


3) SCAN(Elevator algorithm)

- 0번 Cylinder부터 끝번 Cylinder까지 계속해서 왔다갔다 반복하는 방법이다.

- Starvation을 해결할 수 있다.

- 현재 Head의 위치 39에서 0번으로 가면서 중간에 있는 Sector들을 처리해주는 방식이다. 0번을 도착한 후에는 끝인 60까지 가면서 처리되지 않은 Sector들을 처리해준다. 계속해서 반복한다.


4) C-SCAN

- SCAN방식에서는 양쪽 방향으로 가며 처리를 해주지만 C-SCAN에서는 한쪽방향으로만 처리를 해주고 다시 원래 위치로 돌아와 처리하는 방법이다.

- 60번 방향으로 향할 때 만나는 Sector들을 처리해주고 0번방향으로 갈 때는 처리를 해주지 않는다. 단방향으로만 처리를 해준다. 50-5-10-16-20-26-35 순으로 처리한다.


5) Look algorithm

- SCAN알고리즘을 보완한 알고리즘으로 SCAN알고리즘에서는 0번~끝번까지 갔지만 Look algorithm에서는 0번~끝번까지 가는 것이 아니라 최소 Sector~최대 Sector까지만 탐색을 한다.

- SCAN방식대로 0번으로 가면서 처리하지만 0번까지 가지 않고 최소값인 5번까지만 가고 다시 오른쪽으로 가며 Sector를 처리한다. 여기서는 50번이 최대이기때문에 50번까지만 처리하고 다시 반대로 돌아온다.


6) C-Look algorithm

- SCAN과 C-SCAN의 차이처럼 Look algorithm에서 양방향이 아닌 단반향에서만 처리해주는 방법이다.

- 오른쪽 방향으로만 처리해주고 최대인 50을 만나면 왼쪽 최소인 5까지 돌아오고 다시 오른쪽으로 탐색하면서 만나는 Sector들을 처리해준다.


Disk Management


Disk formatting

- Low Level formatting, Physical formatting이라 불린다.

- Disk controller가 읽고 쓸 수 있도록 disk를 sector로 나누는 과정을 의미한다.

- OS가 Disk를 통해 File을 저장하기 위해 추가적인 자료구조가 필요하다.

- Partition : Disk를 하나 또는 그 이상의 Cylinder로 나눈다.(Logical Formatting, File System 생성)


Boot Block

- System을 초기화해준다.

- Bootstrap은 ROM에 저장되어있다.

- Bootstrap loader가 Boot block을 메모리에 로드해준다.


Swap Space Management


Swap Space

- 메인 메모리의 확장공간으로 사용된다.

- Swap Space는 File system안에 큰 File로 저장해 만드는 방법과 Raw disk partition을 분리해 만드는 방법이 있다.


RAID Structure


Definition : 저렴한 여러개의 Disk를 묶어서 사용하는 방법이다.


Objectives 

1) Throughput(디스크 처리 속도) 향상

- 여러 디스크에 block 내용을 분산 저장하여 병렬적으로 읽어오므로 처리 속도가 향상된다.

- Striping : Disk 그룹의 하나를 저장장치로 사용한다. (Bit-level, Block-level)

2) Fault-Tolerance(신뢰성) 향상

- 여러 디스크에 block의 동일한 내용을 분산 저장하므로 하나의 Disk에 문제가 생기더라도 복구할 수 있다.

- Mirroring : Data를 복사하는 것을 의미한다.

- Parity : Parity block을 만들어 오류를 detect하고 복구할 수 있는 정보를 의미한다.


RAID Level

1) RAID 0 : striping을 사용하지 않는다.(non-redundant)

2) RAID 1 : mirroring된 disk가 존재한다.

3) RAID 2 : error correcting을 위한 parity block이 존재한다.

4) RAID 3 : bit-interleaved parity를 사용한다.

5) RAID 4 : block-interleaved parity를 사용한다.

6) RAID 5 : block-interleaved parity를 사용하며 분산된 parity block을 가진다.

7) RAID 6 : 두 개의 block-interleaved parity가 존재한다.

Comments