i/o management in representative operating systems
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
1
I/O Managementin
Representative Operating Systems
CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01] 2
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] 3
UNIX SVR4 I/O Management (cont.)
CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01] 4
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] 5
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] 6
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] 7
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] 8
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] 9
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] 10
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] 11
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] 12
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] 13
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