<< Chapter < Page | Chapter >> Page > |
Answer:
If you have the disk rotating at 360 rpm, then one byte is read off the disk in:
T = b/rN = 1/(360 rpm*512 bytes/sector * 96 sectors/track)
T = 3.4 μs
If one interrupt occurs every byte, then the operating system will process an interrupt (2.5 μs), then do some work, thenprocess another interrupt, etc. The time between interrupts is equal to the time it takes to read one byte. In other words, the disk will read one byte, theninterrupt the operating system, then read another byte. The operating system will only be able to get work done if it has enough time to finish processing aninterrupt before the next one occurs. In this case, the processor will spend 2.5 μs / 3.4 μs or 74% of its time handling I/O.
With DMA, there is only one interrupt for the entire sector. It takes 3.4 μs/byte * 512 bytes/sector = 1,741 μs to read the sector.Therefore the processor only spends 2.5 μs / 1741 μs = .14% of the time handling I/O.
Note: The above answer does not take into account rotational delay. If you include rotational delay, then the time to read a bytebecomes very large:
T = b/rN + 1/2r = 83 ms
This means the time the processor spends processing interrupts is very small (approximately .003% in both cases).
Answer:
Consider a disk array that does not use striping. If multiple I/O requests are issued for files on different disks, then performanceis the same as a striped disk array. However, the advantage of striping is that it improves the chances that multiple I/O requests will in fact be for data ondifferent disks. Without striping, all the files from a given directory will be on the same disk, so a single user operating in a single directory will be usingone disk instead of all the disks in the array. Likewise, it is likely that all user files will be on one disk, and all binaries on another, so that multipleusers accessing their files will use the same disk. Disk striping is a simple, automated way for the administrator of the array to ensure that files are spreadout across all the disks.
T = Ts + 1/(2r) + b/(rN)
T = .008 + (60 s/m)(1 r)/ (2*9600 r/m) + (1 MB)(1024 KB/MB)(60 s/m)/(9600 r/m)(300 KB/r)
T = .008 s + .003125 s + .021333 s
T = 32.458 ms
Notification Switch
Would you like to follow the 'Operating systems' conversation and receive update notifications?