나무 숲
Secondary Storage Structure 본문
Mass Storage Structure
- Magnetic disk (HDD..) provides bulk of secondary storage of modern computers
* Drive(Disk platters) at 60 to 200 times per second
* Transfer rate(MB/sec) : data flow between drive and computer
* Positioning time (random-access time) : move disk arm to desired cylinder(seek time) and time for desired sector to rotate under the disk head(rotational latency)
- Drive attached to computer via I/O bus
* Busses vary, including EIDE, ATA, SATA, USB, Fibre Channel, SCSI
* host controller in computer uses bus to talk to disk controller built into drive or storage array
Moving head disk mechanism
- read/write head = disk reader
- Platter size 는 성능과 관계있다 => reduce head movement (fast r/w)
Disk Structure
- Disk drives are addressed as large 1-dimensional arrays of logical blocks, where the logical block is the smallest unit of transfer
- 1-dimensional array of logical blocks is mapped into the sectors of the disk sequentially
* Sector 0 is the first sector of the first track on the outermost cylinder
* Mapping 남은 트랙에서 실린더로, 그리고 남은 실린더에서. 바깥에서 안쪽으로
Disk Scheduling
- OS는 h/w를 효과적으로 사용하고자 한다->fast time access & disk bandwidth(=transfer rate)
- Access time has 2 major components
* Seek time : 디스크가 헤드를 움직여 원하는 섹터를 가진 실린더를 찾는 시간
* Rotational latency : 헤드가 있는 위치에 원하는 섹터가 올 때까지 디스크가 도는 시간
= h/w 성능을 업 시켜서 seek time을 줄여보자!
- seek time은 seek distance와 비슷하다
- disk bandwidth는 전송된 바이트들의 총 개수이다. (서비스에 대한 첫 요청 시간+마지막 전송 시간/총 시간)
- 디스크 I/O 서비스를 위한 여러가지 알고리즘
예시는 모두 98,183,37,122,14,124,65,67로 통일! +head pointer 53
1 FCFS
* total head movement = (98-53)+(183-98)+(183-37)+(122-37)+(122-14)+(124-14)+(124-65)+(67-65) = 640 cylinders* First Come First Serve
* 실린더 간의 큰 점프가 보인다
* 가장 빠른 서비스는 아님
* swing이 커서 액세스 시간이 길어질 것!
2 SSTF
* Short Seek Time First
* 현재 head position으로부터 가장 짧은 seek time을 가진 요청을 찾는다
* SJF 스케줄링 형식 -> 어떤 request들에게 starvation을 발생시킬 수 있다
* total head movement = (65-53)+(67-65)+(67-37)+(37-14)+(98-14)+(122-98)+(124-122)+(183-124)= 236 cylinders
3 SCAN
* disk arm이 디스크 한쪽 끝에서 시작하여 다른 한쪽 끝을 향해 움직이는데, 거기까지 도달할 때까지 요청을 처리한다. head movement가 reverse 되어도 서비스는 계속된다
* elevator algorithm이라고도 불린다
* total head movement = (53-14)+(183-14)= 208 cylinders
4 C-SCAN
* provides a more uniform wait time than SCAN
* 헤드는 한쪽에서 다른 한쪽으로 이동하며 가면서 요청을 처리한다. 한쪽 끝에 도달하면 즉시 디스크의 시작으로 돌아간다. 이 때 아무런 요청도 처리하지 않는다
* 실린더가 원형 리스트인 것처럼 대한다 (Circular SCAN)
* 처음으로 돌아가는 시간이 좀 낭비될 수 있다
5 Look/C-Look
* arm은 양 방향 중 한쪽으로 가장 멀리 있는 요청으로 가고, 도착하면 방향을 즉시 바꿔서 반대 방향 중 가장 멀리 있는 요청으로 온다. (전체를 돌지 않고 범위 끝까지만 간다)* SCAN/C-SCAN의 변형
* 옆 그림은 C-Look이고 Look은 SCAN과 마찬가지로 점프 없이 읽으면서 돌아오는 것을 나타낸다
Selecting a disk scheduling algorithm
- SSTF가 흔하고 자연스럽다
- SCAN/C-SCAN은 perform better for systems that place a heavy load on the disk
- Performance depends on the number and types of requests
- 디스크 서비스를 위한 요청은 file-allocation method에 영향을 받을 수 있다
- 디스크 스케줄링 알고리즘은 운영체제에서 separate module로 사용되어야 하고 필요하다면 다른 알고리즘으로 교체하는 것이 가능하도록 해야 한다
- Either SSTF or LOOK is a reasonable choice for the default algorithm
'Career' 카테고리의 다른 글
Thrashing (0) | 2016.06.09 |
---|---|
Page Relacement (0) | 2016.06.09 |
Implementing file system (0) | 2016.06.08 |
Segmentation (0) | 2016.06.08 |
Paging (0) | 2016.06.08 |