Download presentation
Presentation is loading. Please wait.
Published byRobert Barton Modified over 9 years ago
1
Operating Systems CMPSC 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
18
Intel Pentium Processor Event- Vector Table
19
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
20
Six Step Process to Perform DMA Transfer
21
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
22
A Kernel I/O Structure
23
Characteristics of I/O Devices
24
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
25
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)
26
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
27
Synchronous I/O Blocking - process suspended until I/O completed –Easy to use and understand –Likely to be inefficient Quiz: When and why?
28
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
29
Two I/O Methods Synchronous Asynchronous
30
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 “Hybrid” IO
31
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”
32
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
33
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
34
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
35
Use of a System Call to Perform I/O Monitor = privileged/kernel mode
36
Life Cycle of An I/O Request
37
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
38
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
39
I/O W/O a Unified Buffer Cache
40
Unified Buffer Cache A unified buffer cache uses the same page cache to cache both memory-mapped pages and ordinary file system I/O
41
I/O Using a Unified Buffer Cache
42
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.