140 likes | 364 Views
I/O Management in Representative Operating Systems. UNIX SVR4 I/O Management. Principles Each I/O device is associated with a special file Special files are managed by the file system To read or write to a device, a read or write request is made for a special file associated with the device
E N D
UNIX SVR4 I/O Management • Principles • Each I/O device is associated with a special file • Special files are managed by the file system • To read or write to a device, a read or write request is made for a special file associated with the device • Types of I/O • Buffered • I/O passes through system buffers • Types of buffers • System buffer caches • Character queues • Unbuffered • Uses the DMA facility: transfer takes place directly between the I/O module and the process I/O area CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]
UNIX SVR4 I/O Management (cont.) CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]
UNIX SVR4 I/O Management (cont.) • Buffer cache • All I/O operations with the disk (block oriented) are handled through the buffer cache • Data transfer between the buffer cache and the user process space uses DMA: memory-to-memory copy • Buffer cache management uses three lists • Free List: List of all buffers available for allocation • Device List: List of all buffers currently associated with each disk • Driver I/O Queue: List of buffers in the process of an I/O or waiting for an I/O on a particular device • Implementation • All buffers are either on the free list or on the driver I/O queue list • No physically separate lists: a list is maintained as pointers associated with each buffer • Each buffer is associated with a device and remains associated with that device even on the free list, until reused and associated with another device CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]
UNIX SVR4 I/O Management (cont.) • Buffer cache (cont.) • Operation • Uses the readers/writers model: may be read multiple times • On a reference to physical block X on device Y, the OS first checks if the block is in the buffer cache • It searches the Device List for block X on device Y • If entry exists, it contains a pointer to the first buffer in the chain • Block replacement uses a least-recently-used algorithm: the free list maintains the least-recently-used order • Character queue • Used for character-oriented devices (e.g., terminals, printers) • A character queue is either written by the process and read by the I/O device or written by device and read by the process • Producer-consumer model is used: a character, one read, is destroyed CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]
UNIX SVR4 I/O Management (cont.) • Unbuffered I/O • Fastest I/O, uses DMA between the process space and the device space • Operation • Process performing unbuffered I/O is locked in main memory and cannot be swapped out • I/O device performing unbuffered I/O is assigned to the process for the duration of the transfer • Types of devices and the buffering used for each • Disk drives: unbuffered I/O or buffer cache • Tape drives: unbuffered I/O or buffer cache • Terminals: character queue • Communication lines: character queue • Printers: unbuffered I/O or character queue CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]
Windows 2000 I/O Management • I/O manager • Responsible for all I/O for the OS • Provides uniform interface that all types of drivers can call CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]
Windows 2000 I/O Management (cont.) • Cache manager • Provides caching service in main memory for the entire I/O subsystem, serving file systems and network components • It manages the size of the cache for each activity • Provides two services to improve system performance • Lazy write • Writes done in the cache only and not on disk • When processor utilization is low, cache manager writes changes to disk • Lazy commit • Similar to lazy write for transaction processing • Committed information is written in cache only • Background process writes information to the file system log at a later time CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]
Windows 2000 I/O Management (cont.) • File system drivers • Treated like any other device driver • Messages for certain volumes routed to the appropriate software driver for that device adapter • Network drivers • Integrated networking capabilities • Support for distributed applications • Hardware device drivers • Access the hardware registers of peripheral devices through entry points in the Executive dynamic link libraries • A set of such routines exists for every platform supported by W2K: routine names are the same for all platforms • Device drivers portable across different platforms CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]
Windows 2000 I/O Management (cont.) • Asynchronous and synchronous I/O • Asynchronous mode • Optimum application performance • Application initiates I/O operation and the calling thread continues execution while the I/O operation is queued by the I/O manager and then performed • Application needs to be notified when operation is complete • Synchronous mode • Application is blocked until the I/O operation completes • Methods for signaling I/O completion for the asynchronous mode • Signaling a device kernel object • Signaling an event kernel object • Alertable I/O • I/O completion ports CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]
Windows 2000 I/O Management (cont.) • Methods for signaling I/O completion for the asynchronous mode • Signaling a device kernel object • Indicator associated with a device object is set when an operation on that object is complete • The thread that invoked the I/O operation continues execution and then checks the indicator when it needs the outcome of the I/O operation • Method is not appropriate for handling multiple requests on the same device (e.g., multiple actions on a single file) • Signaling an event kernel object • Thread creates event for each request • Thread can then wait on a single or multiple requests • Method is appropriate for handling multiple simultaneous I/O requests on a single device or file CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]
Windows 2000 I/O Management (cont.) • Methods for signaling I/O completion for the asynchronous mode (cont.) • Alertable I/O • Uses an Asynchronous Procedure Call (APC) queue associated with the thread • The thread I/O requests and the I/O manager places the results in the APC queue for that thread • I/O completion ports • Used on the W2K server to optimize the use of threads • A pool of threads is available for use: no need to create a new thread for each new request CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]
Windows 2000 I/O Management (cont.) • Redundant Array of Independent Disks (RAID) support • Hardware RAID • Separate physical disks combined into one or more logical disks by the disk controller • Controller interface responsible for the creation and regeneration of redundant information • Software RAID • Noncontiguous disk space combined into one or more logical partitions by the fault-tolerant software disk driver • Implemented by the OS and available on the server with any set of multiple disks CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01]