I/O Systems. Amir H. Payberah. Amirkabir University of Technology (Tehran Polytechnic)

Similar documents
Chapter 13: I/O Systems

Chapter 12: I/O Systems

Chapter 13: I/O Systems

Chapter 12: I/O Systems. Operating System Concepts Essentials 8 th Edition

Chapter 13: I/O Systems. Operating System Concepts 9 th Edition

Chapter 13: I/O Systems

Chapter 13: I/O Systems

Chapter 13: I/O Systems. Chapter 13: I/O Systems. Objectives. I/O Hardware. A Typical PC Bus Structure. Device I/O Port Locations on PCs (partial)

by I.-C. Lin, Dept. CS, NCTU. Textbook: Operating System Concepts 8ed CHAPTER 13: I/O SYSTEMS

Device-Functionality Progression

Chapter 12: I/O Systems. I/O Hardware

Module 12: I/O Systems

Chapter 13: I/O Systems

Chapter 13: I/O Systems

Chapter 13: I/O Systems

Module 12: I/O Systems

Lecture 13 Input/Output (I/O) Systems (chapter 13)

Chapter 13: I/O Systems

Chapter 13: I/O Systems

CSE 4/521 Introduction to Operating Systems. Lecture 24 I/O Systems (Overview, Application I/O Interface, Kernel I/O Subsystem) Summer 2018

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

The control of I/O devices is a major concern for OS designers

Silberschatz and Galvin Chapter 12

操作系统概念 13. I/O Systems

I/O Systems. 04/16/2007 CSCI 315 Operating Systems Design 1

I/O SYSTEMS. Sunu Wibirama

I/O AND DEVICE HANDLING Operating Systems Design Euiseong Seo

Lecture 15: I/O Devices & Drivers

Input/Output Systems

Operating System: Chap13 I/O Systems. National Tsing-Hua University 2016, Fall Semester

CSC Operating Systems Spring Lecture - XIX Storage and I/O - II. Tevfik Koşar. Louisiana State University.

RAID Structure. RAID Levels. RAID (cont) RAID (0 + 1) and (1 + 0) Tevfik Koşar. Hierarchical Storage Management (HSM)

Ref: Chap 12. Secondary Storage and I/O Systems. Applied Operating System Concepts 12.1

Input/Output Systems

CS420: Operating Systems. Kernel I/O Subsystem

COT 4600 Operating Systems Fall Dan C. Marinescu Office: HEC 439 B Office hours: Tu-Th 3:00-4:00 PM

Module 11: I/O Systems

NWI-IBC019: Operating systems

[08] IO SUBSYSTEM 1. 1

CS370 Operating Systems

CHAPTER 12 AND 13 - MASS-STORAGE STRUCTURE & I/O- SYSTEMS

Outline. Operating Systems: Devices and I/O p. 1/18

I/O Handling. ECE 650 Systems Programming & Engineering Duke University, Spring Based on Operating Systems Concepts, Silberschatz Chapter 13

Today: I/O Systems. Architecture of I/O Systems

CS370 Operating Systems

Operating Systems 2010/2011

CS330: Operating System and Lab. (Spring 2006) I/O Systems

Operating Systems 2010/2011

I/O. CS 416: Operating Systems Design Department of Computer Science Rutgers University

Input-Output (I/O) Input - Output. I/O Devices. I/O Devices. I/O Devices. I/O Devices. operating system must control all I/O devices.

I/O Systems. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Operating Systems. Steven Hand. Michaelmas / Lent Term 2008/ lectures for CST IA. Handout 4. Operating Systems

Comp 204: Computer Systems and Their Implementation. Lecture 18: Devices

Devices. Today. Comp 104: Operating Systems Concepts. Operating System An Abstract View 05/01/2017. Devices. Devices

I/O Systems. Jo, Heeseung

Principles of Operating Systems CS 446/646

Input Output (IO) Management

or edit a file, our immediate interest is to read or enter some information, not to compute an answer.

SAZ4B/SAE5A Operating System Unit : I - V

CIS Operating Systems I/O Systems & Secondary Storage. Professor Qiang Zeng Spring 2018

Operating Systems. V. Input / Output

UNIT-7. Overview of Mass Storage Structure

Chapter 7: Mass-storage structure & I/O systems. Operating System Concepts 8 th Edition,

Last class: Today: Course administration OS definition, some history. Background on Computer Architecture

I/O. Fall Tore Larsen. Including slides from Pål Halvorsen, Tore Larsen, Kai Li, and Andrew S. Tanenbaum)

I/O. Fall Tore Larsen. Including slides from Pål Halvorsen, Tore Larsen, Kai Li, and Andrew S. Tanenbaum)

I/O Design, I/O Subsystem, I/O-Handler Device Driver, Buffering, Disks, RAID January WT 2008/09

Introduction to Operating Systems (Part II)

Main Memory (Part I)

C02: Interrupts and I/O

Operating systems. Module 15 kernel I/O subsystem. Tami Sorgente 1

Chapter 5 Input/Output. I/O Devices

CIS Operating Systems I/O Systems & Secondary Storage. Professor Qiang Zeng Fall 2017

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto

Last 2 Classes: Introduction to Operating Systems & C++ tutorial. Today: OS and Computer Architecture

Sample Questions. Amir H. Payberah. Amirkabir University of Technology (Tehran Polytechnic)

19: I/O. Mark Handley. Direct Memory Access (DMA)

Answer to exercises chap 13.2

I/O Management and Disk Scheduling. Chapter 11

Main Memory (Part II)

Lecture 1 Introduction (Chapter 1 of Textbook)

-Device. -Physical or virtual thing that does something -Software + hardware to operate a device (Controller runs port, Bus, device)

CSCI-GA Operating Systems I/O. Hubertus Franke

CSE 451: Operating Systems Winter I/O System. Gary Kimura

5.b Principles of I/O Hardware CPU-I/O communication

Computer Architecture CS 355 Busses & I/O System

CS 134. Operating Systems. April 8, 2013 Lecture 20. Input/Output. Instructor: Neil Rhodes. Monday, April 7, 14

Chapter-6. SUBJECT:- Operating System TOPICS:- I/O Management. Created by : - Sanjay Patel

Chapter 8: Virtual Memory. Operating System Concepts

VIII. Input/Output Operating Systems Prof. Dr. Marc H. Scholl DBIS U KN Summer Term

CIS 21 Final Study Guide. Final covers ch. 1-20, except for 17. Need to know:

7/20/2008. What Operating Systems Do Computer-System Organization

Virtual Memory COMPSCI 386

OPERATING SYSTEMS CS136

UC Santa Barbara. Operating Systems. Christopher Kruegel Department of Computer Science UC Santa Barbara

CSE 120. Overview. July 27, Day 8 Input/Output. Instructor: Neil Rhodes. Hardware. Hardware. Hardware

CSE 4/521 Introduction to Operating Systems. Lecture 27 (Final Exam Review) Summer 2018

Operating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst

INPUT/OUTPUT ORGANIZATION

First-In-First-Out (FIFO) Algorithm

Transcription:

I/O Systems Amir H. Payberah amir@sics.se Amirkabir University of Technology (Tehran Polytechnic) Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 1 / 57

Motivation Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 2 / 57

Overview I/O management is a major component of OS design and operation. Important aspect of computer operation I/O devices vary greatly Various methods to control them Performance management New types of devices frequent Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 3 / 57

Overview I/O management is a major component of OS design and operation. Important aspect of computer operation I/O devices vary greatly Various methods to control them Performance management New types of devices frequent Ports, busses, device controllers connect to various devices. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 3 / 57

Overview I/O management is a major component of OS design and operation. Important aspect of computer operation I/O devices vary greatly Various methods to control them Performance management New types of devices frequent Ports, busses, device controllers connect to various devices. Device drivers encapsulate device details. Present uniform device-access interface to I/O subsystem. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 3 / 57

I/O Hardware Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 4 / 57

I/O Hardware Incredible variety of I/O devices Storage, e.g., disks, tapes Transmission, e.g., network connections, bluetooth Human-interface, e.g., screen, keyboard, mouse, audio in and out Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 5 / 57

I/O Hardware Incredible variety of I/O devices Storage, e.g., disks, tapes Transmission, e.g., network connections, bluetooth Human-interface, e.g., screen, keyboard, mouse, audio in and out We only need to understand how the devices are attached and how the software can control the hardware. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 5 / 57

Common Concepts in I/O Hardware Common concepts: signals from I/O devices interface with computer. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 6 / 57

Common Concepts in I/O Hardware Common concepts: signals from I/O devices interface with computer. Port: connection point for device Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 6 / 57

Common Concepts in I/O Hardware Common concepts: signals from I/O devices interface with computer. Port: connection point for device Bus: set of wires and a protocol that specifies a set of messages that can be sent on the wires. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 6 / 57

Common Concepts in I/O Hardware Common concepts: signals from I/O devices interface with computer. Port: connection point for device Bus: set of wires and a protocol that specifies a set of messages that can be sent on the wires. Controller: a collection of electronics that can operate a port, a bus, or a device. Sometimes integrated and sometimes separate circuit board (host adapter) Contains processor, microcode, private memory, bus controller, etc Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 6 / 57

Bus PCI bus: connects the processor-memory subsystem to fast devices. Expansion bus: connects relatively slow devices. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 7 / 57

Processor/Controller Interaction How can the processor give commands and data to a controller to accomplish an I/O transfer? Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 8 / 57

Processor/Controller Interaction How can the processor give commands and data to a controller to accomplish an I/O transfer? Devices usually have registers where device driver places commands, addresses, and data. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 8 / 57

Processor/Controller Interaction How can the processor give commands and data to a controller to accomplish an I/O transfer? Devices usually have registers where device driver places commands, addresses, and data. Processor/controller interaction: Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 8 / 57

Processor/Controller Interaction How can the processor give commands and data to a controller to accomplish an I/O transfer? Devices usually have registers where device driver places commands, addresses, and data. Processor/controller interaction: Direct I/O instructions: triggers bus lines to select the proper device and to move bits into or out of a device register. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 8 / 57

Processor/Controller Interaction How can the processor give commands and data to a controller to accomplish an I/O transfer? Devices usually have registers where device driver places commands, addresses, and data. Processor/controller interaction: Direct I/O instructions: triggers bus lines to select the proper device and to move bits into or out of a device register. Memory-mapped I/O: device data and command registers mapped to processor address space. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 8 / 57

Device I/O Port Locations on PCs Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 9 / 57

I/O Port Registers The data-in register: read by the host to get input. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 10 / 57

I/O Port Registers The data-in register: read by the host to get input. The data-out register: written by the host to send output. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 10 / 57

I/O Port Registers The data-in register: read by the host to get input. The data-out register: written by the host to send output. The status register: read by the host, and indicates states. whether the current command has completed. whether a byte is available to be read from the data-in register. whether a device error has occurred. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 10 / 57

I/O Port Registers The data-in register: read by the host to get input. The data-out register: written by the host to send output. The status register: read by the host, and indicates states. whether the current command has completed. whether a byte is available to be read from the data-in register. whether a device error has occurred. The control register: written by the host to start a command or to change the mode of a device. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 10 / 57

Host Device Interaction Polling Interrupt Direct memory access (DMA) Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 11 / 57

Polling (1/2) A handshake between the host and a controller. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 12 / 57

Polling (1/2) A handshake between the host and a controller. Assume 2 bits for coordination. For each byte of I/O: Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 12 / 57

Polling (1/2) A handshake between the host and a controller. Assume 2 bits for coordination. For each byte of I/O: 1 Host reads the busy bit from the status register until 0. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 12 / 57

Polling (1/2) A handshake between the host and a controller. Assume 2 bits for coordination. For each byte of I/O: 1 Host reads the busy bit from the status register until 0. 2 Host sets the read or write bit and if write copies data into the data-out register. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 12 / 57

Polling (1/2) A handshake between the host and a controller. Assume 2 bits for coordination. For each byte of I/O: 1 Host reads the busy bit from the status register until 0. 2 Host sets the read or write bit and if write copies data into the data-out register. 3 Host sets the command-ready bit. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 12 / 57

Polling (1/2) A handshake between the host and a controller. Assume 2 bits for coordination. For each byte of I/O: 1 Host reads the busy bit from the status register until 0. 2 Host sets the read or write bit and if write copies data into the data-out register. 3 Host sets the command-ready bit. 4 Controller sets the busy bit, executes transfer. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 12 / 57

Polling (1/2) A handshake between the host and a controller. Assume 2 bits for coordination. For each byte of I/O: 1 Host reads the busy bit from the status register until 0. 2 Host sets the read or write bit and if write copies data into the data-out register. 3 Host sets the command-ready bit. 4 Controller sets the busy bit, executes transfer. 5 Controller clears the busy bit, error bit, and command-ready bit when transfer done. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 12 / 57

Polling (2/2) Step 1 is busy-wait cycle (polling) to wait for I/O from device. Reasonable if device is fast. But inefficient if device slow. CPU switches to other tasks? but if miss a cycle data overwritten/lost. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 13 / 57

Interrupts Polling can happen in 3 instruction cycles. read status, logical-and to extract status bit, and branch if not zero. Inefficient, but more efficient way? Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 14 / 57

Interrupts Polling can happen in 3 instruction cycles. read status, logical-and to extract status bit, and branch if not zero. Inefficient, but more efficient way? CPU interrupt-request line is triggered by I/O device. Checked by processor after each instruction. Saves state and jumps to interrupt-handler routine at a fixed address in memory. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 14 / 57

Interrupts Polling can happen in 3 instruction cycles. read status, logical-and to extract status bit, and branch if not zero. Inefficient, but more efficient way? CPU interrupt-request line is triggered by I/O device. Checked by processor after each instruction. Saves state and jumps to interrupt-handler routine at a fixed address in memory. Two interrupt request lines: Nonmaskable: reserved for events such as unrecoverable memory errors. Maskable: it can be turned off by the CPU. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 14 / 57

Interrupt-Driven I/O Cycle Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 15 / 57

Interrupt Vector The interrupt mechanism accepts an address: a number that selects a specific interrupt-handling routine. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 16 / 57

Interrupt Vector The interrupt mechanism accepts an address: a number that selects a specific interrupt-handling routine. This address is an offset in a table called the interrupt vector. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 16 / 57

Interrupt Vector The interrupt mechanism accepts an address: a number that selects a specific interrupt-handling routine. This address is an offset in a table called the interrupt vector. The interrupt vector contains the memory addresses of specialized interrupt handlers. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 16 / 57

Interrupt Vector The interrupt mechanism accepts an address: a number that selects a specific interrupt-handling routine. This address is an offset in a table called the interrupt vector. The interrupt vector contains the memory addresses of specialized interrupt handlers. Computers have more devices than they have address elements in the interrupt vector. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 16 / 57

Interrupt Vector The interrupt mechanism accepts an address: a number that selects a specific interrupt-handling routine. This address is an offset in a table called the interrupt vector. The interrupt vector contains the memory addresses of specialized interrupt handlers. Computers have more devices than they have address elements in the interrupt vector. Use interrupt chaining: each element in the interrupt vector points to the head of a list of interrupt handlers. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 16 / 57

Intel Pentium Processor Event-Vector Table Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 17 / 57

Other Interrupt Usages Interrupt mechanism also used for exceptions. Divide by zero, terminate process, hardware error. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 18 / 57

Other Interrupt Usages Interrupt mechanism also used for exceptions. Divide by zero, terminate process, hardware error. Page fault executes when memory access error. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 18 / 57

Other Interrupt Usages Interrupt mechanism also used for exceptions. Divide by zero, terminate process, hardware error. Page fault executes when memory access error. System call executes via trap to trigger kernel to execute request. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 18 / 57

Other Interrupt Usages Interrupt mechanism also used for exceptions. Divide by zero, terminate process, hardware error. Page fault executes when memory access error. System call executes via trap to trigger kernel to execute request. Multi-CPU systems can process interrupts concurrently. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 18 / 57

Other Interrupt Usages Interrupt mechanism also used for exceptions. Divide by zero, terminate process, hardware error. Page fault executes when memory access error. System call executes via trap to trigger kernel to execute request. Multi-CPU systems can process interrupts concurrently. Used for time-sensitive processing, frequent, must be fast. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 18 / 57

Direct Memory Access (1/2) Used to avoid programmed I/O (one byte at a time) for large data movement. Requires Direct Memory Access (DMA) controller Bypasses CPU to transfer data directly between I/O device and memory. Version that is aware of virtual addresses can be even more efficient. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 19 / 57

Direct Memory Access (2/2) OS writes DMA command block into memory. Source and destination addresses Read or write mode Count of bytes Writes location of command block to DMA controller Bus mastering of DMA controller - grabs bus from CPU: cycle stealing from CPU but still much more efficient When done, interrupts to signal completion Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 20 / 57

Six Step Process to Perform DMA Transfer Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 21 / 57

Application I/O Interface Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 22 / 57

Application I/O Interface I/O system calls encapsulate device behaviors in generic classes. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 23 / 57

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. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 23 / 57

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. New devices talking already-implemented protocols need no extra work. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 23 / 57

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. New devices talking already-implemented protocols need no extra work. Each OS has its own I/O subsystem structures and device driver frameworks. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 23 / 57

A Kernel I/O Structure Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 24 / 57

Characteristics of I/O Devices (1/2) Devices vary in many dimensions Data-transfer mode: character or block Access method: sequential or random-access Transfer schedule: synchronous or asynchronous (or both) Sharing: sharable or dedicated Device speed: speed of operation I/O direction: read-write, read only, or write only Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 25 / 57

Characteristics of I/O Devices (2/2) Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 26 / 57

Character Devices Character devices include keyboards, mouse, serial ports. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 27 / 57

Character Devices Character devices include keyboards, mouse, serial ports. A character device transfers bytes one by one. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 27 / 57

Character Devices Character devices include keyboards, mouse, serial ports. A character device transfers bytes one by one. Commands include get() and put(). Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 27 / 57

Block Devices Block devices include disk drives. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 28 / 57

Block Devices Block devices include disk drives. Commands include read() and write() and seek() for randomaccess devices. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 28 / 57

Block Devices Block devices include disk drives. Commands include read() and write() and seek() for randomaccess devices. Raw I/O: access a block device as a simple linear array of blocks. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 28 / 57

Block Devices Block devices include disk drives. Commands include read() and write() and seek() for randomaccess devices. Raw I/O: access a block device as a simple linear array of blocks. Direct I/O: disable buffering and locking. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 28 / 57

Block Devices Block devices include disk drives. Commands include read() and write() and seek() for randomaccess devices. Raw I/O: access a block device as a simple linear array of blocks. Direct I/O: disable buffering and locking. Memory-mapped file access: file mapped to virtual memory and clusters brought via demand paging. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 28 / 57

Network Devices Varying enough from block and character to have own interface. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 29 / 57

Network Devices Varying enough from block and character to have own interface. Linux, Unix, Windows and many others include socket interface. Separates network protocol from network operation. Includes select() functionality. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 29 / 57

Clocks and Timers Provide current time, elapsed time, and timer (trigger operation X at time T) Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 30 / 57

Clocks and Timers Provide current time, elapsed time, and timer (trigger operation X at time T) Programmable interval timer, the hardware used for timings, and periodic interrupts. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 30 / 57

Clocks and Timers Provide current time, elapsed time, and timer (trigger operation X at time T) Programmable interval timer, the hardware used for timings, and periodic interrupts. Normal resolution about 1/60 second. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 30 / 57

Clocks and Timers Provide current time, elapsed time, and timer (trigger operation X at time T) Programmable interval timer, the hardware used for timings, and periodic interrupts. Normal resolution about 1/60 second. Some systems provide higher-resolution timers. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 30 / 57

Blocking, Nonblocking and Asynchronous I/O Blocking: process suspended until I/O completed Insufficient for some needs Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 31 / 57

Blocking, Nonblocking and Asynchronous I/O Blocking: process suspended until I/O completed Insufficient for some needs Nonblocking: I/O call returns as much as available User interface, data copy (buffered I/O) Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 31 / 57

Blocking, Nonblocking and Asynchronous I/O Blocking: process suspended until I/O completed Insufficient for some needs Nonblocking: I/O call returns as much as available User interface, data copy (buffered I/O) Implemented via multi-threading Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 31 / 57

Blocking, Nonblocking and Asynchronous I/O Blocking: process suspended until I/O completed Insufficient for some needs Nonblocking: I/O call returns as much as available User interface, data copy (buffered I/O) Implemented via multi-threading select() to find if data ready then read() or write() to transfers. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 31 / 57

Blocking, Nonblocking and Asynchronous I/O Blocking: process suspended until I/O completed Insufficient for some needs Nonblocking: I/O call returns as much as available User interface, data copy (buffered I/O) Implemented via multi-threading select() to find if data ready then read() or write() to transfers. Asynchronous: process runs while I/O executes I/O subsystem signals process when I/O completed. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 31 / 57

Synchronous vs. Asynchronous I/O Methods Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 32 / 57

Vectored I/O Vectored I/O allows one system call to perform multiple I/O operations. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 33 / 57

Vectored I/O Vectored I/O allows one system call to perform multiple I/O operations. The scatter-gather method is better than multiple individual I/O calls. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 33 / 57

Vectored I/O Vectored I/O allows one system call to perform multiple I/O operations. The scatter-gather method is better than multiple individual I/O calls. Decreases context switching and system call overhead. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 33 / 57

Vectored I/O Vectored I/O allows one system call to perform multiple I/O operations. The scatter-gather method is better than multiple individual I/O calls. Decreases context switching and system call overhead. Some versions provide atomicity: avoid for example worry about multiple threads changing data as reads/writes occurring. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 33 / 57

Vectored I/O Vectored I/O allows one system call to perform multiple I/O operations. The scatter-gather method is better than multiple individual I/O calls. Decreases context switching and system call overhead. Some versions provide atomicity: avoid for example worry about multiple threads changing data as reads/writes occurring. For example, Unix readve() accepts a vector of multiple buffers to read into or write from. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 33 / 57

Kernel I/O Subsystem Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 34 / 57

Kernel I/O Subsystem Kernels provide many services related to I/O: Scheduling Buffering Caching Spooling Device reservation Error handling Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 35 / 57

Scheduling (1/2) Determine a good order in which to execute I/O requests. Some I/O request ordering via per-device queue. Some OSs try fairness. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 36 / 57

Scheduling (2/2) In asynchronous I/O the kernel must be able to keep track of many I/O requests at the same time. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 37 / 57

Scheduling (2/2) In asynchronous I/O the kernel must be able to keep track of many I/O requests at the same time. The OS attaches the wait queue to a device-status table. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 37 / 57

Scheduling (2/2) In asynchronous I/O the kernel must be able to keep track of many I/O requests at the same time. The OS attaches the wait queue to a device-status table. The table contains an entry for each I/O device. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 37 / 57

Scheduling (2/2) In asynchronous I/O the kernel must be able to keep track of many I/O requests at the same time. The OS attaches the wait queue to a device-status table. The table contains an entry for each I/O device. If the device is busy with a request, the type of request and other parameters will be stored in the table entry for that device. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 37 / 57

Buffering and Caching Buffering: stores data in memory while transferring between devices. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 38 / 57

Buffering and Caching Buffering: stores data in memory while transferring between devices. To cope with device speed mismatch. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 38 / 57

Buffering and Caching Buffering: stores data in memory while transferring between devices. To cope with device speed mismatch. To cope with device transfer size mismatch, e.g., fragmentation and reassembly of messages Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 38 / 57

Buffering and Caching Buffering: stores data in memory while transferring between devices. To cope with device speed mismatch. To cope with device transfer size mismatch, e.g., fragmentation and reassembly of messages To maintain copy semantics, e.g., copy semantics Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 38 / 57

Buffering and Caching Buffering: stores data in memory while transferring between devices. To cope with device speed mismatch. To cope with device transfer size mismatch, e.g., fragmentation and reassembly of messages To maintain copy semantics, e.g., copy semantics Caching: faster device holding copy of data. Always just a copy Key to performance Sometimes combined with buffering Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 38 / 57

Spooling and Device Reservation Spooling: a buffer that holds output for a device. If device can serve only one request at a time, i.e., printing Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 39 / 57

Spooling and Device Reservation Spooling: a buffer that holds 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 de-allocation Watch out for deadlock Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 39 / 57

Error Handling OS can recover from disk read, device unavailable, transient write failures Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 40 / 57

Error Handling OS can recover from disk read, device unavailable, transient write failures Retry a read or write. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 40 / 57

Error Handling OS can recover from disk read, device unavailable, transient write failures Retry a read or write. Track error frequencies, stop using device with increasing frequency of retry-able errors. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 40 / 57

Error Handling OS can recover from disk read, device unavailable, transient write failures Retry a read or write. Track error frequencies, stop using device with increasing frequency of retry-able errors. Most return an error number or code when I/O request fails. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 40 / 57

Error Handling OS can recover from disk read, device unavailable, transient write failures Retry a read or write. Track error frequencies, stop using device with increasing frequency of retry-able errors. Most return an error number or code when I/O request fails. System error logs hold problem reports. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 40 / 57

I/O Protection User process may accidentally or purposefully attempt to disrupt normal operation via illegal I/O instructions. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 41 / 57

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. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 41 / 57

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. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 41 / 57

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. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 41 / 57

Use of a System Call to Perform I/O Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 42 / 57

Kernel Data Structures Kernel keeps state info for I/O components, including open file tables, network connections, character device state Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 43 / 57

Kernel Data Structures Kernel keeps state info for I/O components, including open file tables, network connections, character device state Many complex data structures to track buffers, memory allocation, dirty blocks. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 43 / 57

Kernel Data Structures Kernel keeps state info for I/O components, including open file tables, network connections, character device state Many complex data structures to track buffers, memory allocation, dirty blocks. Some use object-oriented methods and message passing to implement I/O Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 43 / 57

Kernel Data Structures Kernel keeps state info for I/O components, including open file tables, network connections, character device state Many complex data structures to track buffers, memory allocation, dirty blocks. Some use object-oriented methods and message passing to implement I/O E.g., Windows uses message passing. Message with I/O information passed from user mode into kernel. Message modified as it flows through to device driver and back to process. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 43 / 57

UNIX I/O Kernel Structure Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 44 / 57

Transforming I/O Requests to Hardware Operations Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 45 / 57

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 Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 46 / 57

Life Cycle of An I/O Request Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 47 / 57

STREAMS Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 48 / 57

STREAMS (1/2) STREAM: a full-duplex communication channel between a user-level process and a device in Unix System V and beyond. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 49 / 57

STREAMS (1/2) STREAM: a full-duplex communication channel between a user-level process and a device in Unix System V and beyond. A STREAM consists of: STREAM head: interfaces with the user process. Driver end: interfaces with the device. Zero or more STREAM modules between them. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 49 / 57

STREAMS (2/2) Each module contains a read queue and a write queue. Message passing is used to communicate between queues. Asynchronous internally, synchronous where user process communicates with stream head. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 50 / 57

Performance Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 51 / 57

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 Network traffic especially stressful Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 52 / 57

Inter-computer Communications Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 53 / 57

Improving Performance Reduce number of context switches Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 54 / 57

Improving Performance Reduce number of context switches Reduce data copying Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 54 / 57

Improving Performance Reduce number of context switches Reduce data copying Reduce interrupts by using large transfers, smart controllers, polling Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 54 / 57

Improving Performance Reduce number of context switches Reduce data copying Reduce interrupts by using large transfers, smart controllers, polling Use DMA Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 54 / 57

Improving Performance Reduce number of context switches Reduce data copying Reduce interrupts by using large transfers, smart controllers, polling Use DMA Use smarter hardware devices Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 54 / 57

Improving Performance Reduce number of context switches Reduce data copying Reduce interrupts by using large transfers, smart controllers, polling Use DMA Use smarter hardware devices Balance CPU, memory, bus, and I/O performance for highest throughput Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 54 / 57

Improving Performance Reduce number of context switches Reduce data copying Reduce interrupts by using large transfers, smart controllers, polling Use DMA Use smarter hardware devices Balance CPU, memory, bus, and I/O performance for highest throughput Move user-mode processes to kernel Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 54 / 57

Summary Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 55 / 57

Summary I/O hardware: port, bus, controller Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 56 / 57

Summary I/O hardware: port, bus, controller I/O port registers: data-in, data-out, status, control Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 56 / 57

Summary I/O hardware: port, bus, controller I/O port registers: data-in, data-out, status, control Host-device interaction: polling, interrupt, DMA Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 56 / 57

Summary I/O hardware: port, bus, controller I/O port registers: data-in, data-out, status, control Host-device interaction: polling, interrupt, DMA Devices: char, block, network Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 56 / 57

Summary I/O hardware: port, bus, controller I/O port registers: data-in, data-out, status, control Host-device interaction: polling, interrupt, DMA Devices: char, block, network Kernel I/O: schedulling, buffering, caching, spooling, device reservation, error handling Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 56 / 57

Summary I/O hardware: port, bus, controller I/O port registers: data-in, data-out, status, control Host-device interaction: polling, interrupt, DMA Devices: char, block, network Kernel I/O: schedulling, buffering, caching, spooling, device reservation, error handling STREAMS Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 56 / 57

Summary I/O hardware: port, bus, controller I/O port registers: data-in, data-out, status, control Host-device interaction: polling, interrupt, DMA Devices: char, block, network Kernel I/O: schedulling, buffering, caching, spooling, device reservation, error handling STREAMS Performance Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 56 / 57

Questions? Acknowledgements Some slides were derived from Avi Silberschatz slides. Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 57 / 57