Скачать презентацию Chapter 13 I O Systems Operating System Concepts with Скачать презентацию Chapter 13 I O Systems Operating System Concepts with

5022d048d1bba15ce441432fedad9cc3.ppt

  • Количество слайдов: 58

Chapter 13: I/O Systems Operating System Concepts with Java – 7 th Edition, Nov Chapter 13: I/O Systems Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne © 2007

Chapter 13: I/O Systems p p p p p I/O Hardware Explicit I/O Instructions Chapter 13: I/O Systems p p p p p I/O Hardware Explicit I/O Instructions vs. Memory-Mapped I/O Polling vs. Interrupts Programmed I/O vs. DMA Device Drivers Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 2 Silberschatz, Galvin and Gagne © 2007

Objectives p p p Explore the structure of an operating system’s I/O subsystem Discuss Objectives p p p Explore the structure of an operating system’s I/O subsystem Discuss the principles of I/O hardware and its complexity Provide details of the performance aspects of I/O hardware and software Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 3 Silberschatz, Galvin and Gagne © 2007

The Requirements of I/O p Without I/O, computers are not very useful n But… The Requirements of I/O p Without I/O, computers are not very useful n But… thousands of devices, each slightly different p How can we standardize the interfaces to these devices? n Devices unreliable: media failures and transmission errors p How can we make them reliable? n Devices unpredictable and/or slow p How can we utilize them if we don’t know what they will do or how they will perform? p Some operational parameters: n Byte/Block p Some devices provide single byte at a time (e. g. keyboard) p Others provide whole blocks (e. g. disks, tapes, etc) n Sequential/Random p Some devices must be accessed sequentially (e. g. tape) p Others can be accessed randomly (e. g. disk, cd, etc. ) n Polling/Interrupts p Some devices require continual monitoring p Others generate interrupts when they need service Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 4 Silberschatz, Galvin and Gagne © 2007

The Goal of the I/O Subsystem p Provide Uniform Interfaces, Despite Wide Range of The Goal of the I/O Subsystem p Provide Uniform Interfaces, Despite Wide Range of Different Devices n This code works on many different devices: int fd = open(“/dev/something”); for (int i = 0; i < 10; i++) { fprintf(fd, ”Count %dn”, i); } close(fd); Why? Because code that controls devices (“device driver”) implements standard interface. We will try to get a flavor for what is involved in actually controlling devices in rest of lecture n Can only scratch surface! n p Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 5 Silberschatz, Galvin and Gagne © 2007

Modern I/O Systems Operating System Concepts with Java – 7 th Edition, Nov 15, Modern I/O Systems Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 6 Silberschatz, Galvin and Gagne © 2007

I/O Devices p Device Rates vary over many orders of magnitude n System better I/O Devices p Device Rates vary over many orders of magnitude n System better be able to handle this wide range n Better not have high overhead/byte for fast devices! n Better not waste time waiting for slow devices Some typical device, network, and bus data rates. Table from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 7 Silberschatz, Galvin and Gagne © 2007

Intel Chipset Components: Pentium 4 p p Northbridge: n Handles memory n Graphics Southbridge: Intel Chipset Components: Pentium 4 p p Northbridge: n Handles memory n Graphics Southbridge: n PCI bus n Disk controllers n USB controllers n Audio n Serial I/O n Interrupt controller n Timers Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 8 Silberschatz, Galvin and Gagne © 2007

Sun Enterprise 6000 Device-Transfer Rates Operating System Concepts with Java – 7 th Edition, Sun Enterprise 6000 Device-Transfer Rates Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 9 Silberschatz, Galvin and Gagne © 2007

How does processor talk to device? Memory / I/O Bus CPU Interrupt Controller p How does processor talk to device? Memory / I/O Bus CPU Interrupt Controller p p Bus Adaptor Other Devices or Buses Regular Memory Bus Adaptor Address+ Data Interrupt Request Device Controller Bus Interface read write control status Registers (port 0 x 20) Hardware Controller Addressable Memory and/or Queues CPU interacts with a Controller n Contains a set of registers that can be read and written Memory Mapped n May contain memory for request Region: 0 x 8 f 008020 queues or bit-mapped images Regardless of the complexity of the connections and buses, processor accesses registers in two ways: n I/O instructions: explicit in/out instructions p Example from the Intel architecture: out 0 x 21, AB n Memory mapped I/O: load/store instructions p Registers/memory appear in physical address space p I/O accomplished with load and store instructions Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 10 Silberschatz, Galvin and Gagne © 2007

Device I/O Port Locations on PCs (partial) Operating System Concepts with Java – 7 Device I/O Port Locations on PCs (partial) Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 11 Silberschatz, Galvin and Gagne © 2007

Memory-Mapped I/O (1) (a) (b) (c) Separate I/O and memory space. Memory-mapped I/O. Hybrid: Memory-Mapped I/O (1) (a) (b) (c) Separate I/O and memory space. Memory-mapped I/O. Hybrid: control in I/O address, data in memory Picture from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 12 Silberschatz, Galvin and Gagne © 2007

Memory-Mapped I/O (2) (a) A single-bus architecture. (b) A dual-bus memory architecture. Picture from Memory-Mapped I/O (2) (a) A single-bus architecture. (b) A dual-bus memory architecture. Picture from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 13 Silberschatz, Galvin and Gagne © 2007

Memory-Mapped I/O vs. Explicit I/O Instructions p Explicit I/O Instructions: n Must use assembly Memory-Mapped I/O vs. Explicit I/O Instructions p Explicit I/O Instructions: n Must use assembly language n Prevents user-mode I/O p Memory-Mapped I/O: n No need for special instructions (can use in C) n Allows user-based I/O n Caching addresses must be prevented Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 14 Silberschatz, Galvin and Gagne © 2007

Notifying the OS: Polling p p The OS needs to know when: n The Notifying the OS: Polling p p The OS needs to know when: n The I/O device has completed an operation n The I/O operation has encountered an error One way is to Poll: n OS periodically checks a device-specific status register n I/O device puts completion information in status register n Busy-wait cycle to wait for I/O from device n Pro: simple, potentially low overhead n Con: may waste many cycles on polling if infrequent, expensive, or unpredictable I/O operations Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 15 Silberschatz, Galvin and Gagne © 2007

Notifying the OS: Interrupts p p I/O Interrupt: n Device generates an interrupt whenever Notifying the OS: Interrupts p p I/O Interrupt: n Device generates an interrupt whenever it needs service n Pro: handles unpredictable events well n Con: interrupts relatively high overhead Some devices combine both polling and interrupts n Example: Intel E 1000 Gigabit Ethernet Adapter: p Interrupt for first incoming packet p Poll for subsequent packets until hardware packet arrival queue is empty Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 16 Silberschatz, Galvin and Gagne © 2007

Interrupts (Revisited) p p p CPU Interrupt-request line triggered by I/O device Interrupt handler Interrupts (Revisited) p p p CPU Interrupt-request line triggered by I/O device Interrupt handler receives interrupts Maskable to ignore or delay some interrupts Interrupt vector to dispatch interrupt to correct handler n Based on priority n Some nonmaskable Interrupt mechanism also used for exceptions Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 17 Silberschatz, Galvin and Gagne © 2007

Interrupt-Driven I/O Cycle Operating System Concepts with Java – 7 th Edition, Nov 15, Interrupt-Driven I/O Cycle Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 18 Silberschatz, Galvin and Gagne © 2007

Intel Pentium Processor Event-Vector Table Operating System Concepts with Java – 7 th Edition, Intel Pentium Processor Event-Vector Table Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 19 Silberschatz, Galvin and Gagne © 2007

Precise and Imprecise Interrupts (1) Properties of a precise interrupt: 1. 2. 3. 4. Precise and Imprecise Interrupts (1) Properties of a precise interrupt: 1. 2. 3. 4. PC (Program Counter) is saved in a known place. All instructions before the one pointed to by the PC have fully executed. No instruction beyond the one pointed to by the PC has been executed. Execution state of the instruction pointed to by the PC is known. Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 20 Silberschatz, Galvin and Gagne © 2007

Precise and Imprecise Interrupts (2) (a) A precise interrupt. (b) An imprecise interrupt. Picture Precise and Imprecise Interrupts (2) (a) A precise interrupt. (b) An imprecise interrupt. Picture from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 21 Silberschatz, Galvin and Gagne © 2007

Transfering Data To/From Controller p p Programmed I/O: n Each byte transferred via processor Transfering Data To/From Controller p p Programmed I/O: n Each byte transferred via processor in/out or load/store n Pro: Simple hardware, easy to program n Con: Consumes processor cycles proportional to data size Direct Memory Access: n Give controller access to memory bus n Ask it to transfer data to/from memory directly Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 22 Silberschatz, Galvin and Gagne © 2007

Programmed I/O (1) Steps in printing a string. Picture from Tanenbaum, Modern Operating Systems Programmed I/O (1) Steps in printing a string. Picture from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 23 Silberschatz, Galvin and Gagne © 2007

Programmed I/O (2) Writing a string to the printer using programmed I/O. Figure from Programmed I/O (2) Writing a string to the printer using programmed I/O. Figure from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 24 Silberschatz, Galvin and Gagne © 2007

Direct Memory Access (DMA) p p p Used to avoid programmed I/O for large Direct Memory Access (DMA) p p p Used to avoid programmed I/O for large data movement Requires DMA controller Bypasses CPU to transfer data directly between I/O device and memory Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 25 Silberschatz, Galvin and Gagne © 2007

Application I/O Interface p p p I/O system calls encapsulate device behaviors in generic Application I/O Interface p p p I/O system calls encapsulate device behaviors in generic classes Device-driver layer hides differences among I/O controllers from kernel Devices vary in many dimensions n Character-stream or block n Sequential or random-access n Sharable or dedicated n Speed of operation n read-write, read only, or write only Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 26 Silberschatz, Galvin and Gagne © 2007

A Kernel I/O Structure Operating System Concepts with Java – 7 th Edition, Nov A Kernel I/O Structure Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 27 Silberschatz, Galvin and Gagne © 2007

Device Drivers p Device-specific code in the kernel that interacts directly with the device Device Drivers p Device-specific code in the kernel that interacts directly with the device hardware n Supports a standard, internal interface n Same kernel I/O system can interact easily with different device drivers n Special devicespecific configuration supported with the ioctl() system call Picture from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 28 Silberschatz, Galvin and Gagne © 2007

Device Drivers p Device Drivers typically divided into two pieces: n Top half: accessed Device Drivers p Device Drivers typically divided into two pieces: n Top half: accessed in call path from system calls p Implements a set of standard, cross-device calls like open(), close(), read(), write(), ioctl() p This is the kernel’s interface to the device driver p Top half will start I/O to device, may put thread to sleep until finished n Bottom half: run as interrupt routine p Gets input or transfers next block of output p May wake sleeping threads if I/O now complete Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 29 Silberschatz, Galvin and Gagne © 2007

Uniform Interfacing for Device Drivers (a) (b) Without a standard driver interface. With a Uniform Interfacing for Device Drivers (a) (b) Without a standard driver interface. With a standard driver interface. Picture from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 30 Silberschatz, Galvin and Gagne © 2007

Characteristics of I/O Devices Operating System Concepts with Java – 7 th Edition, Nov Characteristics of I/O Devices Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 31 Silberschatz, Galvin and Gagne © 2007

Block and Character Devices p p Block devices include disk drives n Commands include Block and Character Devices p p Block devices include disk drives n Commands include read, write, seek n Raw I/O or file-system access n Memory-mapped file access possible Character devices include keyboards, mice, serial ports n Single character at a time n Commands include get, put n Libraries layered on top allow line editing Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 32 Silberschatz, Galvin and Gagne © 2007

Network Devices p p p Different enough from block and character to have own Network Devices p p p Different enough from block and character to have own interface Unix and Windows NT/9 x/2000 include socket interface n Separates network protocol from network operation n Includes select functionality Approaches vary widely (pipes, FIFOs, streams, queues, mailboxes) Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 33 Silberschatz, Galvin and Gagne © 2007

Clock Devices and Timers p p p Maintaining the time of day Accounting for Clock Devices and Timers p p p Maintaining the time of day Accounting for CPU usage Preventing processes from running longer than they are allowed to Handling alarm system call made by user processes Providing watchdog timers for parts of the system itself. Doing profiling, monitoring, statistics gathering Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 34 Silberschatz, Galvin and Gagne © 2007

Clock Hardware A programmable clock. Picture from Tanenbaum, Modern Operating Systems 3 e, (c) Clock Hardware A programmable clock. Picture from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 35 Silberschatz, Galvin and Gagne © 2007

Clock Software (2) Three ways to maintain the time of day. Picture from Tanenbaum, Clock Software (2) Three ways to maintain the time of day. Picture from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 36 Silberschatz, Galvin and Gagne © 2007

Clock Software (3) Simulating multiple timers with a single clock. Picture from Tanenbaum, Modern Clock Software (3) Simulating multiple timers with a single clock. Picture from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 37 Silberschatz, Galvin and Gagne © 2007

Blocking and Nonblocking I/O p p p Blocking Interface: “Wait” n When request data Blocking and Nonblocking I/O p p p Blocking Interface: “Wait” n When request data (e. g. read() system call), put process to sleep until data is ready n When write data (e. g. write() system call), put process to sleep until device is ready for data Non-blocking Interface: “Don’t Wait” n Returns quickly from read or write request with count of bytes successfully transferred n Read may return nothing, write may write nothing Asynchronous Interface: “Tell Me Later” n When request data, take pointer to user’s buffer, return immediately; later kernel fills buffer and notifies user n When send data, take pointer to user’s buffer, return immediately; later kernel takes data and notifies user Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 38 Silberschatz, Galvin and Gagne © 2007

Two I/O Methods Asynchronous Synchronous Operating System Concepts with Java – 7 th Edition, Two I/O Methods Asynchronous Synchronous Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 39 Silberschatz, Galvin and Gagne © 2007

Kernel I/O Subsystem p p Scheduling n Some I/O request ordering via per-device queue Kernel I/O Subsystem p p Scheduling n Some I/O request ordering via per-device queue n Some OSs try fairness Buffering - store data in memory while transferring between devices n To cope with device speed mismatch n To cope with device transfer size mismatch n To maintain “copy semantics” Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 40 Silberschatz, Galvin and Gagne © 2007

Buffering (1) (a) Unbuffered input. (b) Buffering in user space. (c) Buffering in the Buffering (1) (a) Unbuffered input. (b) Buffering in user space. (c) Buffering in the kernel followed by copying to user space. (d) Double buffering in the kernel. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 41 Silberschatz, Galvin and Gagne © 2007

Buffering (2) Networking may involve many copies of a packet. Tanenbaum, Modern Operating Systems Buffering (2) Networking may involve many copies of a packet. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 42 Silberschatz, Galvin and Gagne © 2007

UNIX I/O Kernel Structure p Kernel keeps state for I/O components, including open file UNIX I/O Kernel Structure p Kernel keeps state for I/O components, including open file tables, network connections, character device state Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 43 Silberschatz, Galvin and Gagne © 2007

I/O Requests to Hardware Operations p Consider reading a file from disk for a I/O Requests to Hardware Operations p Consider reading a file from disk for a process: n Determine device holding file n Translate name to device representation n Physically read data from disk into buffer n Make data available to requesting process n Return control to process Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 44 Silberschatz, Galvin and Gagne © 2007

Life Cycle of An I/O Request User Program Kernel I/O Subsystem Device Driver Top Life Cycle of An I/O Request User Program Kernel I/O Subsystem Device Driver Top Half Device Driver Bottom Half Device Hardware Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 45 Silberschatz, Galvin and Gagne © 2007

Device-status Table Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Device-status Table Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 46 Silberschatz, Galvin and Gagne © 2007

I/O Subsystem Example: STREAMS p p STREAM – a full-duplex communication channel between a I/O Subsystem Example: STREAMS p p STREAM – a full-duplex communication channel between a user-level process and a device in Unix System V A STREAM consists of: - STREAM head interfaces with the user process - Driver end interfaces with the device - Zero or more STREAM modules between them. p p Each module contains a read queue and a write queue Message passing is used to communicate between queues Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 47 Silberschatz, Galvin and Gagne © 2007

The STREAMS Structure Operating System Concepts with Java – 7 th Edition, Nov 15, The STREAMS Structure Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 48 Silberschatz, Galvin and Gagne © 2007

I/O Performance p I/O a major factor in system performance: n Demands CPU to I/O Performance p I/O a major factor in system performance: n Demands CPU to execute device driver, kernel I/O code n Context switches due to interrupts n Data copying n Network traffic especially stressful p Improving performance: n Use DMA n Reduce/eliminate data copying n Reduce number of context switches n Reduce interrupts by using large transfers, smart controllers, polling Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 49 Silberschatz, Galvin and Gagne © 2007

Interaction of I/O and VM p p p The kernel deals with (kernel) virtual Interaction of I/O and VM p p p The kernel deals with (kernel) virtual addresses These do not necessarily correspond to physical addresses Contiguous virtual addresses are probably not contiguous in physical memory Some systems have an I/O map — the I/O bus manager has a (version of) the virtual memory map More often, the kernel has to translate the virtual addresses itself Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 50 Silberschatz, Galvin and Gagne © 2007

Other I/O Issues p Scatter/Gather I/O n Suppose we’re reading a single packet or Other I/O Issues p Scatter/Gather I/O n Suppose we’re reading a single packet or disk block into two or more non-contiguous pages n The I/O transfer has to use more than one (address, length) pair for that transfer to scatter the data around memory n The same applies on output, where it has to be gathered from different physical pages p Direct I/O n For efficiency, we may want to avoid copying data to/from user space n Sometimes possible to do direct I/O n Must consult user virtual memory map for translation n Must lock pages in physical memory during I/O Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 51 Silberschatz, Galvin and Gagne © 2007

End of Chapter 13 Operating System Concepts with Java – 7 th Edition, Nov End of Chapter 13 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne © 2007

Kernel I/O Subsystem p p p Caching - fast memory holding copy of data Kernel I/O Subsystem p p p Caching - fast memory holding copy of data n Always just a copy n Key to performance Spooling - hold a copy of output for a device n If device can serve only one request at a time n i. e. , Printing Device reservation - provides exclusive access to a device n System calls for allocation and deallocation n Watch out for deadlock Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 53 Silberschatz, Galvin and Gagne © 2007

I/O Protection p User process may accidentally or purposefully attempt to disrupt normal operation I/O Protection p User process may accidentally or purposefully attempt to disrupt normal operation via illegal I/O instructions n All I/O instructions defined to be privileged n I/O must be performed via system calls p Memory-mapped and I/O port memory locations must be protected too Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 54 Silberschatz, Galvin and Gagne © 2007

Device-Functionality Progression Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Device-Functionality Progression Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 55 Silberschatz, Galvin and Gagne © 2007

Error Handling p p p OS can recover from disk read, device unavailable, transient Error Handling p p p OS can recover from disk read, device unavailable, transient write failures Most return an error number or code when I/O request fails System error logs hold problem reports Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 56 Silberschatz, Galvin and Gagne © 2007

Device-Independent I/O Software Functions of the device-independent I/O software. Picture from Tanenbaum, Modern Operating Device-Independent I/O Software Functions of the device-independent I/O software. Picture from Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 57 Silberschatz, Galvin and Gagne © 2007

User-Space I/O Software Layers of the I/O system and the main functions of each User-Space I/O Software Layers of the I/O system and the main functions of each layer. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0 -13 -6006639 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 13. 58 Silberschatz, Galvin and Gagne © 2007