Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 13: I/O Systems."— Presentation transcript:

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

2 13.2 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Chapter 13: I/O Systems  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

3 13.3 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Objectives  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

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

5 13.5 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 The Goal of the I/O Subsystem  Provide Uniform Interfaces, Despite Wide Range of Different Devices This code works on many different devices: int fd = open(“/dev/something”); for (int i = 0; i < 10; i++) { fprintf(fd,”Count %d\n”,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 Can only scratch surface!

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

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

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

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

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

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

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

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

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

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

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

17 13.17 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Interrupts (Revisited)  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 Based on priority Some nonmaskable  Interrupt mechanism also used for exceptions

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

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

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

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

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

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

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

25 13.25 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006  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 Direct Memory Access (DMA)

26 13.26 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Application I/O Interface  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 Character-stream or block Sequential or random-access Sharable or dedicated Speed of operation read-write, read only, or write only

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

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

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

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

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

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

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

34 13.34 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Clock Devices and Timers  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

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

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

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

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

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

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

41 13.41 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 (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. Buffering (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

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

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

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

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

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

47 13.47 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 I/O Subsystem Example: STREAMS  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.  Each module contains a read queue and a write queue  Message passing is used to communicate between queues

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

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

50 13.50 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Interaction of I/O and VM  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

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

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

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

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

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

56 13.56 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Error Handling  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

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

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


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

Similar presentations


Ads by Google