Presentation on theme: "CMPT 300 Introduction to Operating Systems"— Presentation transcript:
1 CMPT 300 Introduction to Operating Systems IO Sample Questions
2 Dual-Bus Architecture Q: Slide 20 shows one way of having memory-mapped I/O even in the presence of separate buses for memory and 1/0 devices, namely, to first try the memory bus and if that fails try the 1/0 bus. A clever computer science student has thought of an improvement on this idea: try both in parallel, to speed up the process of accessing I/O devices. What do you think of this idea?A: It is not a good idea. The memory bus is surely faster than the I/O bus, otherwise why bother with it? Consider what happens with a normal memory request. The memory bus finishes first, but the I/O bus is still busy. If the CPU waits until the I/O bus finishes, it has reduced memory performance to that of the I/O bus. If it just tries the memory bus for the second reference, it will fail if this one is an I/O device reference. If there were some way to instantaneously abort the previous I/O bus reference to try the second one, the improvement might work, but there is never such an option. All in all, it is a bad idea.
3 Max Interrupt RateQ: Suppose that a computer can read or write a memory word in 10 nsec. Also suppose that when an interrupt occurs, all 32 CPU registers, plus the program counter and PSW are pushed onto the stack. What is the maximum number of interrupts per second this machine can process?A: An interrupt requires pushing 34 words onto the stack. Returning from the interrupt requires fetching 34 words from the stack. This overhead alone is 680 nsec. Thus the maximum number of interrupts per second is no more than about 1.47 million, assuming no actual work is done for each interrupt.
4 PrintingQ: A typical printed page of text contains 50 line of 80 characters each. Imagine that a certain printer can print 6 pages per minute and that the time to write a character to the printer's output register is so short it can be ignored. Does it make sense to run this printer using interrupt-driven I/O if each character printed requires an interrupt that takes 50 μsec all-in to service?A: The printer prints 50 × 80 × 6 = 24,000 characters/min, which is 400 characters/sec. Each character uses 50 μsec of CPU time for the interrupt, so collectively in each second the interrupt overhead is 20 msec. Using interrupt-driven I/O, the remaining 980 msec of time is available for other work. In other words, the interrupt overhead costs only 2% of the CPU, which will hardly affect the running program at all.
5 Interleaving & SkewQ: If a disk has double interleaving, does it also need cylinder skew in order to avoid missing data when making a track-to-track seek? Discuss your answer.A: Maybe yes and maybe no. If the head can make a track-to-track seek in fewer than two sector times, than no additional cylinder skew is needed. If it cannot, then additional cylinder skew is needed to avoid missing a sector after a seek.
6 FairnessQ: None of the disk-scheduling disciplines, except FCFS, is truly fair (starvation may occur).a. Explain why this assertion is true.b. Describe a way to modify algorithms such as SSTF to ensure fairness.c. Explain why fairness is an important goal in a time-sharing system.d. Give examples of circumstances in which it is important that the operating system be unfair in serving I/O requests.
7 Fairness AnswerA: a. New requests for the track over which the head currently resides can theoretically arrive as quickly as these requests are being serviced.b. All requests older than some predetermined age could be forced to the top of the queue, and an associated bit for each could be set to indicate that no new request could be moved ahead of these requests.c. To prevent unusually long response times.d. Paging and swapping should take priority over user requests. It may be desirable for kernel-initiated I/O, to take precedence over user-initiated I/O. If the kernel supports real-time process priorities, the I/O requests of those processes should be favored.For SSTF, the rest of the queue would have to be reorganized with respect to the last of these old requests. such as the writing of file system metadata,
8 Disk SchedulingQ: Suppose that a disk drive has 5000 cylinders, numbered 0 to The drive is currently serving a request at cylinder 143, and the previous request was at cylinder 125. The queue of pending requests, in FIFO order, is 86, 1470, 913, 1774, 948, 1509, 1022, 1750, 130 Starting from the current head position, what is the total distance (in cylinders) that the disk arm moves to satisfy all the pending requests, for each of the following disk-scheduling algorithms?a. FCFS b. SSTF c. SCAN d. C-SCAN
9 Disk Scheduling Answer Answer: a. The FCFS schedule is 143, 86, 1470, 913, 1774, 948, 1509, 1022, 1750, 130. The total seek distance is 7081.b. The SSTF schedule is 143, 130, 86, 913, 948, 1022, 1470, 1509, 1750, The total seek distance is 1745.c. The SCAN schedule is 143, 913, 948, 1022, 1470, 1509, 1750, 1774, 4999, 130, 86. The total seek distance is 9769.d. The C-SCAN schedule is 143, 913, 948, 1022, 1470, 1509, 1750, 1774, 4999, 86, 130. The total seek distance is 9813.
10 Disk Size I Consider a disk with parameters Disk ArmConsider a disk with parametersCylinders 1024Platters (heads)16Sectors per track 63Each sector is 512 bytesWhat is the maximum size of the disk?A: 1024 * 16 * 63 * 512 = 582 MbPlatterPlatterPlatter
11 Disk Size IIConsider a disk with 16 platters (heads) and 400 cylinders. It is divided into four 100-cylinder zones with the cylinders in different zones containing 160, 200, 240, 280 sectors, respectively. Each sector is 512 bytes, average seek time between adjacent cylinders is 1 ms, and the disk rotates at 7200 RPM. Calculate (a) disk size (b) max data transfer rate.(Note that we consider physical geometry here, not virtual geometry, hence each zone may contain different number of sectors.)
12 Disk Size II Solution(a) The size of a zone is platters × cylinders × sectors/track × bytes/sector.Capacity of zone 1: 16 × 100 × 160 × 512 = bytesCapacity of zone 2: 16 × 100 × 200 × 512 = bytesCapacity of zone 3: 16 × 100 × 240 × 512 = bytesCapacity of zone 4: 16 × 100 × 280 × 512 = bytesSum = =(b) The maximum data transfer rate will be when the cylinders in the outermost zone (zone 4) are being read/written. In that zone, in one second, 280 sectors are read 120 times (7200 RPM is 120 rotations/sec). Thus the max data rate is 280 × 120 × 512 = 17,203,200 bytes/sec.
13 Disk Performance I Q: Consider a disk with the following parameters: 12000 RPM, Data transfer rate of 40 MB/sAverage seek time of 8 msDisk block size of 4 KBWhat is the average time to read a random block from the disk?A: (note that the disk needs to rotate for half a revolution on average to get to a random block on disk, hence ½ in the 3rd term.)Tread=Seek+Rotational+Transfer Time= =10.6 ms750GB in size• ATA device controller with 2ms controller initiation time
14 Disk Performance IQ: Given the same parameters as before, assume that the operating system has exploited locality by grouping related blocks together in the file system. As a result, the typical access pattern is not as random as before. It typically retrieves 10 blocks sequentially at a time. What is the average time to read a single block now?A: Compute the time for reading 10 blocks (since there is only 1 seek and 1 rotational for those 10), then divide by 10 for a single block read.Tread10=Seek+Rotational+Transfer Time= =11.5 msTread=11.5 ms/10=1.15 ms8
15 Disk Performance II Q: Consider a disk with the following parameters: 7200 RPMAverage seek time of 8 msSector size=disk block size=0.5 KB160 sectors per trackQ: Estimate the max sustained transfer rate of this disk.A: The disk rotates at120 times per second (7200RPM/60), and each rotation transfers a track of 80 KB (0.5KB*160). Thus, the max sustained transfer rate can be approximated as 9.6 MB/s (120*80 KB) or 9.6 KB/ms.The term fast wide SCSI-II denotes a SCSI bus that operates at a data transfer rate of 20 MB per second.Suppose that a fast wide SCSI-II disk drive spins at 7200 RPM, has a sector size of 0.5 KB, and holds 160 sectors per track.
16 Disk Performance IIQ: Estimate the number of I/Os per second and the effective transfer rate for a random-access workload that reads an individual sector that may be anywhere on the disk.A: Average rotational delay is (1/2)*(1000/120)=4.167 ms. Transfer time for 1 sector is 0.5KB/9.6KB/ms=0.052msTread=Seek+Rotational+Transfer= = msNumber of IOs (transfers) per second is 1/( )=81.8. Since each transfer is 0.5 KB (1 sector), the effective transfer rate is 40.9 KB/s.The time per transfer is 8 ms to seek ms average rotational latency ms (calculated from to rotate one sector past the disk head during reading. We calculate the
17 Disk Performance IIQ: Calculate the number of random-access I/Os per second and transfer rate for I/O sizes of 4 KB, 8 KB, and 64 KB.A: For reads of size 4 KB, 8 KB, and 64 KB, the corresponding I/Os per second are calculated as before, e.g., for a read of 4 KB, transfer time is 4KB/9.6KB/ms=0.417 msTread=Seek+Rotational+Transfer= =12.6 msNumber of IOs (transfers) per second is (respectively for 4, 8, 64 KB) 1/(0.0126), 1/(0.013), and 1/(0.019). Thus we get 79.4, 76.9, and 52.6 transfers per second, respectively. Transfer rates are obtained from 4, 8, and 64 times these I/O rates, giving 318 KB/s, 615 KB/s, and 3366 KB/s, respectively.
18 Disk Performance IIQ: If multiple requests are in the queue, a scheduling algorithm such as SCAN should be able to reduce the average seek distance. Suppose that a random-access workload has I/O size of 8 KB, the average queue length is 10, and the scheduling algorithm reduces the average seek time to 3 milliseconds. Now calculate the I/Os per second and the effective transfer rate.A:Tread=Seek+Rotational+Transfer= =8 ms, so we obtain 125 I/Os per second. From 8 KB per I/O we obtain 1000 KB/s.