i/o management in representative operating systems

13
1 I/O Management in Representative Operating Systems

Upload: lajos

Post on 06-Jan-2016

26 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: I/O Management in  Representative Operating Systems

1

I/O Managementin

Representative Operating Systems

Page 2: I/O Management in  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

Page 3: I/O Management in  Representative Operating Systems

CS-550 (M.Soneru): I/O Management in Representative Operating Systems: [Sta’01] 3

UNIX SVR4 I/O Management (cont.)

Page 4: I/O Management in  Representative Operating Systems

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

Page 5: I/O Management in  Representative Operating Systems

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

Page 6: I/O Management in  Representative Operating Systems

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

Page 7: I/O Management in  Representative Operating Systems

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

Page 8: I/O Management in  Representative Operating Systems

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

Page 9: I/O Management in  Representative Operating Systems

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

Page 10: I/O Management in  Representative Operating Systems

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

Page 11: I/O Management in  Representative Operating Systems

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

Page 12: I/O Management in  Representative Operating Systems

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

Page 13: I/O Management in  Representative Operating Systems

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