CHAPTER 13: I/O SYSTEMS Overview Overview I/O Hardware I/O Hardware I/O API I/O API I/O Subsystem I/O Subsystem Transforming I/O Requests to Hardware Operations.

Slides:



Advertisements
Similar presentations
I/O Systems & Mass-Storage Systems
Advertisements

Chapter 6 I/O Systems.
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
I/O and Networking Fred Kuhns
I/O Systems.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 13: I/O Systems I/O Hardware Application I/O Interface.
04/14/2008CSCI 315 Operating Systems Design1 I/O Systems Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem.
Chapter 13: I/O Systems- 6th ed
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005 Chapter 13: I/O Systems I/O Hardware.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 13: I/O Systems.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
04/16/2010CSCI 315 Operating Systems Design1 I/O Systems Notice: The slides for this lecture have been largely based on those accompanying an earlier edition.
I/O Systems CS 3100 I/O Hardware1. I/O Hardware Incredible variety of I/O devices Common concepts ◦Port ◦Bus (daisy chain or shared direct access) ◦Controller.
Chapter 13 Input/Output (I/O) Systems
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
I/O Systems CSCI 444/544 Operating Systems Fall 2008.
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 13+14: I/O Systems and Mass- Storage Structure I/O Hardware Application I/O.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005 Chapter 13: I/O Systems I/O Hardware.
Operating Systems CMPSC 473 I/O Management (1) November Lecture 23 Instructor: Bhuvan Urgaonkar.
Hardware Definitions –Port: Point of connection –Bus: Interface Daisy Chain (A=>B=>…=>X) Shared Direct Device Access –Controller: Device Electronics –Registers:
Silberschatz, Galvin and Gagne  Operating System Concepts I/O Hardware Incredible variety of I/O devices.
ITEC 502 컴퓨터 시스템 및 실습 Chapter 8-2: I/O Management (Review) Mi-Jung Choi DPNM Lab. Dept. of CSE, POSTECH.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 AE4B33OSS Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O.
I/O Systems I/O Hardware Application I/O Interface
1 Module 12: I/O Systems n I/O hardware n Application I/O Interface n Kernel I/O Subsystem n Transforming I/O Requests to Hardware Operations n Performance.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 13: I/O Systems.
I/O management is a major component of operating system design and operation Important aspect of computer operation I/O devices vary greatly Various methods.
Cosc 4740 Chapter 12 I/O Systems. I/O Hardware Incredible variety of I/O devices –Storage –Transmission –Human-interface.
Chapter 13: I/O Systems. 13.2/34 Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Principles Chapter 13: I/O Systems I/O Hardware Application I/O Interface.
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
Silberschatz, Galvin and Gagne  Operating System Concepts Six Step Process to Perform DMA Transfer.
XE33OSA Chapter 13: I/O Systems. 13.2XE33OSA Silberschatz, Galvin and Gagne ©2005 Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel.
CENG334 Introduction to Operating Systems Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY URL:
I/O Management.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005 Chapter 13: I/O Systems I/O Hardware.
Silberschatz, Galvin and Gagne ©2009 Edited by Khoury, 2015 Operating System Concepts – 9 th Edition, Chapter 13: I/O Systems.
1 Chapter 13 Input/Output (I/O) Systems Dr. İbrahim Körpeoğlu Bilkent University Department of Computer Engineering.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 13: I/O Systems Overview I/O Hardware Application.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 13: I/O Systems.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005 I/O through system calls Protection.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 13: I/O Systems.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 12: I/O Systems I/O hardwared Application I/O Interface Kernel I/O.
CMSC 421 Section 0202 I/O Systems Chapter 13: I/O Systems.
FILE SYSTEM IMPLEMENTATION 1. 2 File-System Structure File structure Logical storage unit Collection of related information File system resides on secondary.
Module 11: I/O Systems Reading: Chapter 13 Objectives  Explore the structure of the operating system’s I/O subsystem.  Discuss the principles of I/O.
Chapter 13: I/O Systems.
Chapter 13: I/O Systems.
Lecture 13 Input/Output (I/O) Systems (chapter 13)
Module 12: I/O Systems I/O hardware Application I/O Interface
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 13: I/O Systems.
CSCI 315 Operating Systems Design
I/O Systems.
I/O Systems I/O Hardware Application I/O Interface
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
Selecting a Disk-Scheduling Algorithm
CS703 - Advanced Operating Systems
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 13: I/O Systems.
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Operating Systems I/O System Alok Kumar Jagadev.
Chapter 13: I/O Systems.
Module 12: I/O Systems I/O hardwared Application I/O Interface
Presentation transcript:

CHAPTER 13: I/O SYSTEMS Overview Overview I/O Hardware I/O Hardware I/O API I/O API I/O Subsystem I/O Subsystem Transforming I/O Requests to Hardware Operations Transforming I/O Requests to Hardware Operations Streams Streams Performance Performance

OVERVIEW Incredible variety of I/O devices Incredible variety of I/O devices  Increasing standardization of I/O hardware and software interface  Increasingly broad variety of I/O devices Common concepts Common concepts  Port  Bus (daisy chain or shared direct access)  PCI, ISA, SCSI  Controller (host adapter)  Serial port controller, SCSI controller, IDE controller,

I/O HARDWARE Introduction Introduction Polling Polling Interrupts Interrupts DMA DMA

I/O Hardware A typical PC bus structure

I/O Hardware How can the processor give commands and data to a controller to accomplish an I/O transfer How can the processor give commands and data to a controller to accomplish an I/O transfer  Direct I/O instructions  Memory-mapped I/O  Direct I/O + memory mapped I/O I/O controller has 4 types of registers I/O controller has 4 types of registers  Status registers  Control registers  Data-in registers  Data-out registers

I/O Hardware Some typical ports on PCs

I/O Hardware Three interaction models between I/O controllers and CPUs Three interaction models between I/O controllers and CPUs  Polling  Interrupt  DMA

I/O Hardware: Polling Two bits Two bits  The busy bit indicates if the controller is busy or not working.  The command-ready bit indicates if the a command is available or not for the controller to execute. An example An example  The host repeatedly reads the busy bit until that it becomes clear (busy waiting or polling)  The host sets the write bit in the command register and writes a byte into the data-out register

I/O Hardware: Polling  The host sets the command-ready bit  When the controller notices that the command- ready bit is set, it sets the busy bit  The controller reads the command register and sees the write command. It reads the data-out register to get the byte, and does the I/O to the device.  The controller clears the command-ready bit, clears the error bit in the status register to indicate that the device I/O succeeded, and clears the busy bit to indicate that it is finished.

I/O Hardware: Interrupts CPU Interrupt request line triggered by I/O device CPU Interrupt request line triggered by I/O device Interrupt handler receives interrupts Interrupt handler receives interrupts Maskable to ignore or delay some interrupts Maskable to ignore or delay some interrupts Interrupt vector to dispatch interrupt to correct handler Interrupt vector to dispatch interrupt to correct handler  Based on priority  Some unmaskable, some maskable Interrupt mechanism also used for Interrupt mechanism also used for  exceptions and  system calls Interrupt handlers can be divided into two Interrupt handlers can be divided into two  Top half  Bottom half

I/O Hardware: Interrupts

I/O Hardware: DMA Used to avoid programmed I/O for large data movement Used to avoid programmed I/O for large data movement Requires DMA controller Requires DMA controller Bypasses CPU to transfer data directly between I/O device and memory Bypasses CPU to transfer data directly between I/O device and memory Cycle stealing Cycle stealing

I/O Hardware: DMA

I/O API I/O system calls encapsulate device behaviors in generic classes. I/O system calls encapsulate device behaviors in generic classes. Device-driver layer hides differences among I/O controllers from kernel. Device-driver layer hides differences among I/O controllers from kernel.

I/O API

On one hand, there are so many different I/O devices. On one hand, there are so many different I/O devices. On the other hand, the OS should provide a simple, uniform I/O API. On the other hand, the OS should provide a simple, uniform I/O API. The solution is the OS should hide (encapsulate) these differences and provide just a few types of device access. The solution is the OS should hide (encapsulate) these differences and provide just a few types of device access.  Block and character devices  Network Devices  Clocks and Timers

I/O API: Block and Character Device Interfaces Block devices include disk drives and other block- oriented devices: Block devices include disk drives and other block- oriented devices:  Commands include read, write, seek  Raw I/O or file-system access  Memory-mapped file access possible Character devices include keyboards, mice, serial ports Character devices include keyboards, mice, serial ports  Commands include get, put  Libraries layered on top allow line editing

I/O API: Network Device Interfaces Varying enough from block and character to have own interface Varying enough from block and character to have own interface Unix and Windows NT/9i/2000 include socket interface Unix and Windows NT/9i/2000 include socket interface  Separates network protocol from network operation  Includes select functionality Man other approaches (pipes, FIFOs, streams, queues, mailboxes) Man other approaches (pipes, FIFOs, streams, queues, mailboxes)

I/O API: Clocks and Timers Provide current time, elapsed time, timer Provide current time, elapsed time, timer If programmable interval time used for timings, periodic interrupts If programmable interval time used for timings, periodic interrupts ioctl (on UNIX) covers odd aspects of I/O such as clocks and timers ioctl (on UNIX) covers odd aspects of I/O such as clocks and timers

I/O API: Blocking and non-blocking I/O Blocking - process suspended until I/O completed Blocking - process suspended until I/O completed  Easy to use and understand  Insufficient for some needs Nonblocking - I/O call returns as much as available Nonblocking - I/O call returns as much as available  User interface, data copy (buffered I/O)  Implemented via multi-threading  Returns quickly with count of bytes read or written Asynchronous - process runs while I/O executes Asynchronous - process runs while I/O executes  Difficult to use  I/O subsystem signals process when I/O completed

I/O KERNEL SUBSYSTEM I/O scheduling I/O scheduling Buffering Buffering Caching Caching Spooling and device reservation Spooling and device reservation Error handling Error handling Kernel data structures Kernel data structures

I/O Kernel Subsystem Scheduling Scheduling  I/O request queue for a device  Some OSs try fairness (disk I/O) Buffering - store data in memory while transferring between devices Buffering - store data in memory while transferring between devices  To cope with device speed mismatch (modem vs disk)  To cope with device transfer size mismatch (packet vs frames)  To maintain “ copy semantics ” (kernel memory space v.s. user memory space)

I/O Kernel Subsystem Caching - fast memory holding copy of data Caching - fast memory holding copy of data  Always just a copy  Key to performance  Note: A buffer may hold the only existing copy of a data item, whereas a cache just holds a copy on a faster storage of an item that that resides elsewhere. Spooling - hold output for a device Spooling - hold output for a device  If a device can serve only one request at a time  i.e., Printing Device reservation - provides exclusive access to a device Device reservation - provides exclusive access to a device  System calls for allocation and deallocation  Watch out for deadlock

I/O Kernel Subsystem Error handling 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

I/O Kernel Subsystem Kernel keeps state info for I/O components, including open file tables, network connections, character device state Kernel keeps state info for I/O components, including open file tables, network connections, character device state Many, many complex data structures to track buffers, memory allocation, “ dirty ” blocks Many, many complex data structures to track buffers, memory allocation, “ dirty ” blocks Some use object-oriented methods and message passing to implement I/O Some use object-oriented methods and message passing to implement I/O

I/O Kernel Subsystem

TRANSFORMING I/O TO HARDWARE OPERATIONS Consider reading a file from disk for a process: Consider reading a file from disk for a process:  Determine the device holding a file  Translate the name to the device representation  Physically read data from disk into buffer  Make data available to the requesting process  Return control to the process

I/O Requests to Hardware Operations : The connection between a filename and its disk controller How to map a filename to its disk controller? How to map a filename to its disk controller?  For DOS, C:\junk.txt  To find the partition  To read the starting entry from FAT  For Unix, /zapp/root/  To find the longest match from the mount table  To get  To get  To read the inode  To get the location of data blocks

I/O Requests to Hardware Operations : Life Cycle of An I/O Request Read Read  Sys_read  If in the cache, read from the cache  Otherwise, read from the hard disk Issue a read request and add itself to the queue and block itselfIssue a read request and add itself to the queue and block itself The device driver allocates the buffer to receive the data, and performs the data transferThe device driver allocates the buffer to receive the data, and performs the data transfer The driver gets the data and interrupts the OSThe driver gets the data and interrupts the OS The process will be unblocked.The process will be unblocked.

I/O Requests to Hardware Operations : Life Cycle of An I/O Request

STREAMS STREAM – a full-duplex communication channel between a user-level process and a device STREAM – a full-duplex communication channel between a user-level process and a device A STREAM consists of: 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. Each module contains a read queue and a write queue. Message passing is used to communicate between queues. Message passing is used to communicate between queues. Flow control is used to regulate the flow. Flow control is used to regulate the flow.

STREAMS

PERFORMANCE I/O is a major factor in system performance: I/O is a major factor in system performance:  Demands CPU to execute device driver, kernel I/O code  Context switches due to interrupts  Data copying  Between controllers and kernel  Between kernel space and user space  Network traffic especially stressful  See the next slide

Performance: Network traffic

Performance: How to improve Reduce number of context switches Reduce number of context switches Reduce data copying Reduce data copying Reduce interrupts by using large transfers, smart controllers, polling Reduce interrupts by using large transfers, smart controllers, polling Use DMA Use DMA Balance CPU, memory, bus, and I/O performance for highest throughput Balance CPU, memory, bus, and I/O performance for highest throughput

Performance: Where to implement To implement experimental I/O algorithms at the application level, To implement experimental I/O algorithms at the application level,  because application code is flexible, and application bugs are unlikely to cause system crashes.  Avoiding rebooting or reloading device driver To reimplement the code at the kernel (driver) To reimplement the code at the kernel (driver)  Debugging is difficult, but fast. To reimplement the code at the controller or device (hardware) To reimplement the code at the controller or device (hardware)  Fastest, Less flexible.

Lab System programming System programming  System calls  strace