Advanced Operating Systems - Lecture 35: Principles of I/O software. This lecture will cover the following: goals of I/O software; layers of I/O software; direct vs memory mapped I/O; interrupt driven I/O; polled I/O; direct memory access (DMA);...
CS703 Advanced Operating Systems By Mr Farhan Zaidi Lecture No. 35 Overview of today’s lecture Goals of I/O software Layers of I/O software Direct Vs memory mapped I/O Interrupt driven I/O Polled I/O Direct Memory Access (DMA) Principles of I/O Software Goals of I/O Software Device independence Uniform naming handle as close to the hardware as possible Synchronous vs asynchronous transfers name of a file or device a string or an integer not depending on which machine Error handling programs can access any I/O device without specifying device in advance (floppy, hard drive, or CD-ROM) blocked transfers vs interrupt-driven Buffering data coming off a device cannot be stored in final destination immediately Device Controllers I/O devices have components: The electronic component is the device controller mechanical component electronic component may be able to handle multiple devices Controller's tasks convert serial bit stream to block of bytes perform error correction as necessary make available to main memory Layers of the I/O system and the main functions of each layer Memory mapped I/O Vs Direct I/O Memory mapped I/O Device controller’s registers and internal memory are directly mapped into the processor’s address space Direct I/O Device controller’s registers and internal memory is accessible via special instructions in the assembly language instruction set The arguments to these instructions are usually called ports Programmed I/O Writing a string to the printer using programmed I/O InterruptDriven I/O Writing a string to the printer using interrupt-driven I/O a Code executed when print system call is made b Interrupt service procedure A Typical Hardware System CPU chip register file ALU system bus memory bus main memory I/O bridge bus interface I/O bus USB controller mouse keyboard graphics adapter disk controller monitor disk Expansion slots for other devices such as network adapters Reading a Disk Sector: Step 1 CPU chip register file ALU CPU initiates a disk read by writing a command, logical block number, and destination memory address to a port (address) associated with disk controller main memory bus interface I/O bus USB controller mouse keyboard graphics adapter disk controller monitor disk Reading a Disk Sector: Step 2 CPU chip register file ALU Disk controller reads the sector and performs a direct memory access (DMA) transfer into main memory main memory bus interface I/O bus USB controller mouse keyboard graphics adapter disk controller monitor disk Reading a Disk Sector: Step 3 CPU chip register file ALU When the DMA transfer completes, the disk controller notifies the CPU with an interrupt (i.e., asserts a special “interrupt” pin on the CPU) main memory bus interface I/O bus USB controller mouse keyboard graphics adapter disk controller monitor disk Direct Memory Access (DMA) Operation of a DMA transfer I/O Using DMA Printing a string using DMA a code executed when the print system call is made b interrupt service procedure .. .Lecture? ?No. 35 Overview of today’s? ?lecture Goals of I/O software Layers of I/O software Direct Vs memory... any I/O device without specifying device in advance (floppy, hard drive, or CD-ROM) blocked transfers vs interrupt-driven Buffering data coming off a device cannot be stored in final destination... printer using programmed I/O InterruptDriven I/O Writing a string to the printer using interrupt-driven I/O a Code executed when print system call is made b Interrupt service procedure A Typical Hardware System