일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 워게임
- Buffer Overflow
- 네트워크
- webhacking.kr
- Spring Framework
- webhacking
- system hacking
- Pwnable.kr
- Shell code
- 해킹
- Spring
- Operating System
- 정보보안기사 실기
- Lord of BOF
- Payload
- System
- SQL
- wargame
- hacking
- PWN
- OS
- Spring MVC
- 운영체제
- 웹해킹
- pwnable
- 정보보안기사
- LOB
- 정보처리기사 실기
- BOF
- stack overflow
- Today
- Total
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:00Secondary 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가 존재한다.