Disk access time

advertisement
Department of Computer and IT Engineering
University of Kurdistan
Operating systems
Disk Management
By: Dr. Alireza Abdollahpouri
Hard Disk Drives
Read/Write Head
Side View
Western Digital Drive
http://www.storagereview.com/guide/
Mechanics of Disks
Platters
circular platters covered with
magnetic material to provide
nonvolatile storage of bits
Spindle
of which the platters
rotate around
Tracks
concentric circles on a
single platter
Disk heads
Sectors
segment of the track circle –
usually each contains 512 bytes –
separated by non-magnetic gaps.
The gaps are often used to identify
beginning of a sector
read or alter the
magnetism (bits) passing
under it. The heads are
attached to an arm
enabling it to move
across the platter
surface
Cylinders
corresponding tracks on the different
platters are said to form a cylinder
Hard Disk Drives
Disk Access Time
Disk platter
Disk access time =
Disk head
Seek time
+ Rotational delay
Disk arm
+ Transfer time
+ Other delays
Measure Disk Performance
• Transfer rate is rate at which data flows
between drive and computer
• Positioning time (random-access time) is time
– The time to move disk arm to desired cylinder (seek
time)
– and the time for desired sector to rotate under the
disk head (rotational latency)
Magnetic Disks



Platters range from .85” to 14”
(historically)
 Commonly 3.5”, 2.5”, and 1.8”
Range from 30GB to 3TB per drive
Performance
 Transfer Rate – theoretical – 6 Gb/sec
 Effective Transfer Rate – real –
1Gb/sec
 Seek time from 3ms to 12ms – 9ms
common for desktop drives
 Average seek time measured or
calculated based on 1/3 of tracks
 Latency based on spindle speed
 1/(RPM * 60)
 Average latency = ½ latency
(From Wikipedia)
Magnetic Disk Performance



Access Latency = Average access time = average seek time +
average latency
 For fastest disk 3ms + 2ms = 5ms
 For slow disk 9ms + 5.56ms = 14.56ms
Average I/O time = average access time + (amount to transfer /
transfer rate) + controller overhead
For example to transfer a 4KB block on a 7200 RPM disk with a 5ms
average seek time, 1Gb/sec transfer rate with a .1ms controller
overhead =
 5ms + 4.17ms + 4KB / 1Gb/sec + 0.1ms =
 9.27ms + 4 / 131072 sec =
 9.27ms + .12ms = 9.39ms
Disk Structure

Disk drives are addressed as large 1-dimensional arrays of logical
blocks, where the logical block is the smallest unit of transfer

The 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 proceeds in order through that track, then the rest of
the tracks in that cylinder, and then through the rest of the
cylinders from outermost to innermost
 Logical to physical address should be easy
 Except for bad sectors
 Non-constant # of sectors per track via constant angular
velocity
Disk Scheduling
 Disk can do only one request at a time; What
order do you choose to do queued requests?
3
2
10
7
5
2
User
Requests
Head
cylinder # of requested block
 Seek time  seek distance
 Several algorithms exist to schedule the servicing
of disk I/O requests
Disk Scheduling (Cont.)








There are many sources of disk I/O request
 OS
 System processes
 Users processes
I/O request includes input or output mode, disk address, memory address, number of
sectors to transfer
OS maintains queue of requests, per disk or device
Idle disk can immediately work on I/O request, busy disk means work must queue
 Optimization algorithms only make sense when a queue exists
Note that drive controllers have small buffers and can manage a queue of I/O requests
(of varying “depth”)
Several algorithms exist to schedule the servicing of disk I/O requests
The analysis is true for one or many platters
We illustrate scheduling algorithms with a request queue (0-199)
98, 183, 37, 122, 14, 124, 65, 67
Head pointer 53
‫‪Disk Scheduling: FCFS‬‬
‫‪ Fair among requesters, but order of arrival‬‬
‫‪may be to random spots on the disk  Very‬‬
‫‪long seeks‬‬
‫‪ Example‬‬
‫در اين روش سيلندرهاي متقاض ي‬
‫به ترتيب درخواست‌شان‬
‫سرويس‌دهي مي‌شوند‪ .‬بعبارتي هر‬
‫درخواست در صف اجرا قرار‬
‫مي‌گيرد‪ .‬ساده‌ترين روش است اما‬
‫كارآيي چنداني ندارد‪.‬‬
‫‪Disk Scheduling: SSTF‬‬
‫‪ ‬در اين روش‪ ،‬هر لحظه سيلندر متقاض ي كه به محل هد در آن لحظه‬
‫نزديكتر باشد مورد پردازش قرار مي‌گيرد‪.‬‬
Disk Scheduling: SCAN
•
The disk arm starts at one end of the disk, and moves toward the other end,
servicing requests until it gets to the other end of the disk, where the head
movement is reversed and servicing continues. Sometimes called the
elevator algorithm
Disk Scheduling: C-SCAN

The head moves from one end of the disk to the other, servicing requests
as it goes. When it reaches the other end, however, it immediately returns
to the beginning of the disk, without servicing any requests on the return
trip

Treats the cylinders as a circular list that wraps around from the last
cylinder to the first one
C-LOOK


Arm only goes as far as the last request in each direction, then
reverses direction immediately, without first going all the way to the
end of the disk
Total number of cylinders?
‫مثال‬
‫فرض کنید یک دیسک ‪ 200‬شیار داشته و صف درخواست دیسک‬
‫درخواستهای ‪ Random‬را در خود دارد ‪ .‬شیار )‪(track‬های در‬
‫خواست شده به ترتیب دریافت عبارتند از ‪:‬‬
‫‪ 55, 58, 39,18,90,160,38,184‬در هر یک از حاالت زیر‪:‬‬
‫اگر زمان حرکت از شیار به شیار دیگر ‪ 4‬میلی ثانیه طول بکشد‪ ،‬و‬
‫بازوی دیسک در ابتدا در روی شیار ‪ 100‬قرار داشته باشد ‪:‬‬
‫‪ ‬ترتیب سرویس دهی به در خواستها و طول متوسط ‪ Seek‬چقدر است ؟‬
‫‪ ‬کل زمان جستجو چقدر خواهد بود ؟‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫الف ) از روش ‪ FIFO‬استفاده کنید ‪.‬‬
‫ب ) از الگوریتم ‪ SSTF‬استفاده شود ‪.‬‬
‫ج ) از الگوریتم آسانسور استفاده شود‪.‬‬
‫د ) از الگوریتم ‪ C-SCAN‬استفاده شود ‪.‬‬
‫فرض کنید در روش ‪ scan‬و ‪ c-scan‬جهت اولیه‬
‫حرکت به سمت افزایش شماره شیار می باشد‪.‬‬
FIFO
order of service
request in queue
0
100
0
1
55
45
2
58
3
3
39
19
4
18
21
5
90
72
6
160
70
7
150
10
8
38
112
9
184
146
Average Seek Length 55.3
‫ های پیموده شده‬track ‫تعداد‬
‫ های پیموده‬track ‫ = تعداد‬498
‫‪FIFO‬‬
‫‪FIFO‬‬
‫ترتیب ‪ service‬دهی‬
‫‪8‬‬
‫‪9‬‬
‫‪7‬‬
‫‪5‬‬
‫‪6‬‬
‫‪3‬‬
‫‪4‬‬
‫‪1‬‬
‫‪2‬‬
‫‪0‬‬
‫‪0‬‬
‫‪18‬‬
‫‪38‬‬
‫‪20‬‬
‫‪39‬‬
‫‪40‬‬
‫‪90‬‬
‫‪80‬‬
‫‪100‬‬
‫‪100‬‬
‫‪120‬‬
‫‪150‬‬
‫‪184‬‬
‫شماره ‪track‬‬
‫‪58‬‬
‫‪55‬‬
‫‪60‬‬
‫‪140‬‬
‫‪160‬‬
‫‪160‬‬
‫‪180‬‬
‫‪200‬‬
‫= زمان جستجو کل‬
‫‪498 * 4 (ms) =1992 msec‬‬
‫‪ = 498‬تعداد ‪ track‬های پیموده‬
SSTF
‫ تعداد‬track
‫های پیموده شده‬
order of
service
request
serviced
0
100
1
90
10
2
58
32
3
55
3
4
39
16
5
38
1
6
18
20
7
150
132
8
160
10
9
184
24
Average
Seek Length
27.5
‫ های پیموده‬track ‫ = تعداد‬248
‫= زمان جستجو کل‬
248 * 4 (ms) = 299 msec
SSTF
‫ تعداد‬track
‫های پیموده شده‬
order of
service
request
serviced
0
100
1
90
10
0
2
58
32
20
3
55
3
40
4
39
16
60
5
38
1
80
6
18
20
7
150
132
8
160
10
140
9
184
24
160
SSTF
‫ دهی‬service ‫ترتیب‬
‫شماره شیار‬
0
1
2
3
4
5
6
7
8
9
18
39
58
38
55
90
100
100
120
150
180
200
160
184
SCAN or ELEVATOR )‫)آسانسور‬
‫ تعداد‬track ‫های پیموده شده‬
request in queue
order of service
100
0
55
1
58
2
39
3
18
4
90
5
160
6
150
7
38
8
160
184
90
58
55
39
38
184
9
18
‫ های پیموده‬track ‫ = تعداد‬250
‫= زمان جستجو کل‬
request serviced
100
150
Average
Seek Length
250 * 4 (ms) = 1000 msec
50
10
24
94
32
3
16
1
20
27.8
SCAN or ELEVATOR )‫)آسانسور‬
order of
service
SCAN
request
serviced
‫ دهی‬service ‫ترتیب‬
0
100
1
150
0
2
160
20
3
184
40
0
1
2
3
4
5
5
58
6
55
7
39
140
8
38
160
9
18
‫شماره شیار‬
90
58
90
100
120
150
180
200
8
39
80
100
7
9
18
60
4
6
160
184
55
38
C-SCAN
‫ تعداد‬track
‫های پیموده شده‬
order of
service
request
serviced
0
100
1
150
50
2
160
10
3
184
24
4
18
166
5
38
20
6
39
1
7
55
16
8
58
3
9
90
32
Average Seek Length
‫ های پیموده‬track ‫ = تعداد‬322
‫= زمان جستجو کل‬
322 * 4 (ms) = 1288 msec
35.8
C-SCAN
order of
service
request
serviced
0
100
‫ تعداد‬track
‫های پیموده شده‬
C_SCAN
‫ دهی‬s e rvice ‫ترتیب‬
0
1
150
50
0
2
160
10
20
3
184
1
2
3
4
38
18
7
8
9
39
55
60
4
6
18
40
24
5
58
166
5
38
20
‫شماره شیار‬
80
90
100
6
39
1
7
55
16
140
8
58
3
160
9
90
32
180
100
120
150
200
160
184
‫‪SSTF‬‬
‫‪FIFO‬‬
‫ترتیب ‪ se rv ice‬ده ی‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪5‬‬
‫‪6‬‬
‫‪3‬‬
‫‪4‬‬
‫‪1‬‬
‫‪2‬‬
‫ترتیب ‪ service‬دهی‬
‫‪0‬‬
‫‪0‬‬
‫‪18‬‬
‫‪8‬‬
‫‪9‬‬
‫‪6‬‬
‫‪7‬‬
‫‪4‬‬
‫‪5‬‬
‫‪2‬‬
‫‪3‬‬
‫‪0‬‬
‫‪1‬‬
‫‪20‬‬
‫‪38‬‬
‫‪39‬‬
‫‪0‬‬
‫‪18‬‬
‫‪40‬‬
‫‪55‬‬
‫‪58‬‬
‫‪38‬‬
‫‪60‬‬
‫‪20‬‬
‫‪39‬‬
‫‪40‬‬
‫‪90‬‬
‫‪100‬‬
‫‪100‬‬
‫‪120‬‬
‫شماره شیار‬
‫‪80‬‬
‫‪80‬‬
‫‪90‬‬
‫‪100‬‬
‫‪100‬‬
‫‪120‬‬
‫‪140‬‬
‫‪140‬‬
‫‪150‬‬
‫‪150‬‬
‫‪160‬‬
‫‪160‬‬
‫‪184‬‬
‫‪160‬‬
‫‪160‬‬
‫‪180‬‬
‫‪184‬‬
‫‪180‬‬
‫شماره ‪track‬‬
‫‪58‬‬
‫‪55‬‬
‫‪60‬‬
‫‪200‬‬
‫‪200‬‬
‫‪C_SCAN‬‬
‫‪SCAN‬‬
‫ترتیب ‪ s e r vice‬دهی‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪0‬‬
‫ترتیب ‪ service‬دهی‬
‫‪0‬‬
‫‪9‬‬
‫‪18‬‬
‫‪39‬‬
‫‪58‬‬
‫‪8‬‬
‫‪6‬‬
‫‪7‬‬
‫‪4‬‬
‫‪5‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪20‬‬
‫‪38‬‬
‫‪18‬‬
‫‪40‬‬
‫‪55‬‬
‫‪20‬‬
‫‪38‬‬
‫‪60‬‬
‫‪39‬‬
‫‪40‬‬
‫‪55‬‬
‫شماره شیار‬
‫‪90‬‬
‫‪100‬‬
‫‪58‬‬
‫‪60‬‬
‫‪80‬‬
‫‪90‬‬
‫‪100‬‬
‫‪120‬‬
‫‪120‬‬
‫‪140‬‬
‫‪140‬‬
‫‪150‬‬
‫‪160‬‬
‫‪184‬‬
‫‪100‬‬
‫‪150‬‬
‫‪160‬‬
‫‪160‬‬
‫‪180‬‬
‫‪200‬‬
‫‪184‬‬
‫‪160‬‬
‫‪180‬‬
‫‪200‬‬
‫شماره شیار‬
‫‪80‬‬
‫‪100‬‬
‫‪0‬‬
‫‪0‬‬
Questions
28
Download