1 / 42

Operating Systems CMPSC 473

This lecture covers general issues and hardware related to I/O management in operating systems, including secondary storage management, properties of media, file systems, and I/O devices.

scorine
Download Presentation

Operating Systems CMPSC 473

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operating SystemsCMPSC 473 I/O Management (1) November 30 2010 - Lecture 23 Instructor: Bhuvan Urgaonkar

  2. Announcements • Project 3 due today • Please indicate time to meet TA on sheet • Project 4 out and due on Dec 10 • You need to study material on content addressable storage • Will release slides on this later today • Will release practice question set to help you prepare for the final exam (sometime this week) • Exam is on Dec 16

  3. I/O Management: Topics • General issues in I/O management • Secondary storage management • Properties of media • Magnetic disks and Flash • Systems software for using these media • File Systems • Note: Would like you to read ahead for P4 • Material on content addressable storage: will post slides

  4. I/O Hardware • Incredible variety of I/O devices • Two ways of communicating • Port • Bus • Plus … interrupts • Unidirectional: From device to CPU • Special CPU input lines/pins for these

  5. Some familiar ports

  6. I/O Hardware • Incredible variety of I/O devices • Two ways of communicating • Port • Bus • Controller: Electronics to operate a port/bus or a device • More complex controller: host adapter

  7. Some examples PCI slots and card

  8. Some examples SATA cable SATA ports on a motherboard

  9. A Typical PC Bus Structure

  10. I/O Hardware • I/O instructions control devices • Devices have addresses, used by • Direct I/O instructions • These are part of the ISA • E.g., IN and OUT on Intel • Memory-mapped I/O • Not to be confused with memory mapped file IO!

  11. Direct V. Memory Mapped IO • Direct I/O • Uses special instructions for accessing the I/O devices • i.e., different from loads/stores • IO devices have separate address space from general memory • Either accomplished by an extra IO pin in CPU’s physical interface • Or, separate bus for IO devices • Also called isolated IO

  12. Direct V. Memory Mapped IO • Memory Mapped I/O • Uses loads and stores

  13. Device I/O Port Locations on PCs (partial)

  14. Communication between host and device • Employs registers on the port/controller • Typically four important registers • Data-in: read by the host to get input • Data-out: written by the host to send output • Status: Bits readable by the host that indicate state of port • Has the current command been completed? • Has a device error occurred? • Is there data available to be read from Data-in register? • Control: Writable by the host to start a command, select certain properties of the port (e.g., speed) • Interaction between host and controller • Polling • Interrupts

  15. Polling • Determines state of device • command-ready • busy • Error • Busy-wait cycle to wait for I/O from device

  16. Interrupts • 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 non-maskable • Interrupt mechanism also used for exceptions

  17. Intel Pentium Processor Event-Vector Table

  18. Direct Memory Access • 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

  19. Six Step Process to Perform DMA Transfer

  20. 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

  21. A Kernel I/O Structure

  22. Characteristics of I/O Devices

  23. 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 • Commands include get, put • Libraries layered on top allow line editing

  24. Network Devices • Varying 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)

  25. Clocks and Timers • Provide current time, elapsed time, timer • Programmable interval timer used for timings, periodic interrupts • ioctl (on UNIX) covers odd aspects of I/O such as clocks and timers

  26. Synchronous I/O • Blocking - process suspended until I/O completed • Easy to use and understand • Likely to be inefficient • Quiz: When and why?

  27. Asynchronous I/O • Process runs while I/O executes • Returns immediately • “Event-driven” programming • Difficult to use • I/O subsystem signals process when I/O completed

  28. Two I/O Methods Synchronous Asynchronous

  29. “Hybrid” IO • Nonblocking - I/O call returns as much as available • One approach: Implemented via multi-threading • Some threads do blocking I/O, while others continue executing • Other approach: OS provides non-blocking call • Does not halt execution of application for an extended time, returns quickly with count of bytes read or written • Good e.g., select () system call for network I/O

  30. 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”

  31. Kernel I/O Subsystem • Caching - fast memory holding copy of data • Always just a copy • Key to performance • Spooling - hold 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

  32. 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

  33. 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

  34. Use of a System Call to Perform I/O Monitor = privileged/kernel mode

  35. Life Cycle of An I/O Request

  36. 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

  37. Improving Performance • Reduce number of context switches • Reduce data copying • Reduce interrupts by using large transfers, smart controllers, polling • Use DMA • Balance CPU, memory, bus, and I/O performance for highest throughput

  38. I/O W/O a Unified Buffer Cache

  39. Unified Buffer Cache • A unified buffer cache uses the same page cache to cache both memory-mapped pages and ordinary file system I/O

  40. I/O Using a Unified Buffer Cache

  41. Recovery • Consistency checking – compares data in directory structure with data blocks on disk, and tries to fix inconsistencies • Use system programs to back up data from disk to another storage device (floppy disk, magnetic tape, other magnetic disk, optical) • Recover lost file or disk by restoring data from backup

More Related