I/O Management Techniques


Question 1:

Consider the following I/O scenarios on a single-user PC: 

a. A mouse used with a graphical user interface 

b. A tape drive on a multitasking operating system (with no device preallocation available)

 c. A disk drive containing user files d. A graphics card with direct bus connection, accessible through memory-mapped I/O 

For each of these scenarios, would you design the operating system to use buffering, spooling, caching, or a combination? Would you use polled I/O or interrupt-driven I/O? Give reasons for your choices.

Question 2:

Describe three circumstances under which blocking I/O should be used. Describe three circumstances under which nonblocking I/O should be used. Why not just implement nonblocking I/O and have processes busy-wait until their devices are ready?