Devices and Device Controllers. secondary storage (disks, tape) and storage controllers

Similar documents
Bus Architecture Example

Devices and Device Controllers. secondary storage (disks, tape) and storage controllers

I/O 1. Devices and I/O. key concepts device registers, device drivers, program-controlled I/O, DMA, polling, disk drives, disk head scheduling

I/O 1. Devices and I/O. key concepts device registers, device drivers, program-controlled I/O, DMA, polling, disk drives, disk head scheduling

OPERATING SYSTEMS CS3502 Spring Input/Output System Chapter 9

OPERATING SYSTEMS CS3502 Spring Input/Output System Chapter 9

Operating Systems Peter Pietzuch

CSE 153 Design of Operating Systems Fall 2018

[537] I/O Devices/Disks. Tyler Harter

Chapter 12: Mass-Storage Systems. Operating System Concepts 8 th Edition,

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

Hard Disk Drives (HDDs) Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Introduction Disks RAID Tertiary storage. Mass Storage. CMSC 420, York College. November 21, 2006

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

Hard Disk Drives (HDDs)

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

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

I/O Device Controllers. I/O Systems. I/O Ports & Memory-Mapped I/O. Direct Memory Access (DMA) Operating Systems 10/20/2010. CSC 256/456 Fall

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

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

Secondary storage. CS 537 Lecture 11 Secondary Storage. Disk trends. Another trip down memory lane

CSE 153 Design of Operating Systems

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

File. File System Implementation. Operations. Permissions and Data Layout. Storing and Accessing File Data. Opening a File

Chapter 12: Secondary-Storage Structure. Operating System Concepts 8 th Edition,

Secondary Storage Management Rab Nawaz Jadoon

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

CS420: Operating Systems. Mass Storage Structure

Input/Output. Chapter 5: I/O Systems. How fast is I/O hardware? Device controllers. Memory-mapped I/O. How is memory-mapped I/O done?

Operating Systems. V. Input / Output. Eurecom

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

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

I/O Systems and Storage Devices

Computer System Overview

CSE 380 Computer Operating Systems

Operating Systems. V. Input / Output

Chapter 11. I/O Management and Disk Scheduling

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

Free Space Management

Principles of Operating Systems CS 446/646

Hard Disk Drives. Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau)

Module 13: Secondary-Storage Structure

I/O & Storage. Jin-Soo Kim ( Computer Systems Laboratory Sungkyunkwan University

Input Output (IO) Management

Computer System Overview OPERATING SYSTEM TOP-LEVEL COMPONENTS. Simplified view: Operating Systems. Slide 1. Slide /S2. Slide 2.

I/O Management and Disk Scheduling. Chapter 11

UNIT 4 Device Management

Disk Scheduling. Based on the slides supporting the text

Disc Allocation and Disc Arm Scheduling?

CSE506: Operating Systems CSE 506: Operating Systems

CS3600 SYSTEMS AND NETWORKS

Disk Scheduling COMPSCI 386

CHAPTER 12: MASS-STORAGE SYSTEMS (A) By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Mass-Storage Structure

Chapter 13: Mass-Storage Systems. Disk Scheduling. Disk Scheduling (Cont.) Disk Structure FCFS. Moving-Head Disk Mechanism

Chapter 13: Mass-Storage Systems. Disk Structure

Block Device Driver. Pradipta De

ECE232: Hardware Organization and Design

Mass Storage. 2. What are the difference between Primary storage and secondary storage devices? Primary Storage is Devices. Secondary Storage devices

CSE 120. Operating Systems. March 27, 2014 Lecture 17. Mass Storage. Instructor: Neil Rhodes. Wednesday, March 26, 14

EIDE, ATA, SATA, USB,

UNIT 2 Data Center Environment

CSCI-GA Operating Systems. I/O : Disk Scheduling and RAID. Hubertus Franke

Overview of Mass Storage Structure

Input/Output. Today. Next. Principles of I/O hardware & software I/O software layers Disks. Protection & Security

CS162 Operating Systems and Systems Programming Lecture 17. Disk Management and File Systems

Today: Secondary Storage! Typical Disk Parameters!

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

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

V. Mass Storage Systems

Lecture 9. I/O Management and Disk Scheduling Algorithms

Introduction. Operating Systems. Outline. Hardware. I/O Device Types. Device Controllers. (done)

STORAGE SYSTEMS. Operating Systems 2015 Spring by Euiseong Seo

The Device Driver Interface. Input/Output Devices. System Call Interface. Device Management Organization

Chapter 14: Mass-Storage Systems. Disk Structure

Introduction to I/O and Disk Management

Introduction. Operating Systems. Outline. Hardware. I/O Device Types. Device Controllers. One OS function is to control devices

Introduction to I/O and Disk Management

Chapter 10: Mass-Storage Systems

CSE 451: Operating Systems Winter Secondary Storage. Steve Gribble. Secondary storage

Lecture 16: Storage Devices

I/O and Device Drivers

Chapter 10: Mass-Storage Systems. Operating System Concepts 9 th Edition

Chapter 12: Mass-Storage

Chapter 10: Mass-Storage Systems

File. File System Implementation. File Metadata. File System Implementation. Direct Memory Access Cont. Hardware background: Direct Memory Access

COS 318: Operating Systems. Storage Devices. Kai Li Computer Science Department Princeton University

Chapter 8. A Typical collection of I/O devices. Interrupts. Processor. Cache. Memory I/O bus. I/O controller I/O I/O. Main memory.

Data Storage and Query Answering. Data Storage and Disk Structure (2)

CSE 451: Operating Systems Winter Lecture 12 Secondary Storage. Steve Gribble 323B Sieg Hall.

CPS104 Computer Organization and Programming Lecture 18: Input-Output. Outline of Today s Lecture. The Big Picture: Where are We Now?

Mass-Storage. ICS332 - Fall 2017 Operating Systems. Henri Casanova

Computer Organization and Structure. Bing-Yu Chen National Taiwan University

Disk Scheduling. Chapter 14 Based on the slides supporting the text and B.Ramamurthy s slides from Spring 2001

Input / Output. Kevin Webb Swarthmore College April 12, 2018

CS370: System Architecture & Software [Fall 2014] Dept. Of Computer Science, Colorado State University

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

COS 318: Operating Systems. Storage Devices. Jaswinder Pal Singh Computer Science Department Princeton University

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

CS162 Operating Systems and Systems Programming Lecture 17. Disk Management and File Systems. Review: Want Standard Interfaces to Devices

Transcription:

I/O 1 Devices and Device Controllers network interface graphics adapter secondary storage (disks, tape) and storage controllers serial (e.g., mouse, keyboard) sound co-processors...

I/O 2 Bus Architecture Example CPU Cache Bridge Memory PCI bus SCSI controller USB controller Bridge Graphics ISA bus keyboard mouse Modem Sound

I/O 3 Simplified Bus Architecture CPU M K K K Key M: memory K: device controller disk controller other controllers

I/O 4 Sys/161 LAMEbus Devices LAMEbus controller timer/clock - current time, timer, beep disk drive - persistent storage serial console - character input/output text screen - character-oriented graphics network interface - packet input/output emulator file system - simulation-specific hardware trace control - simulation-specific random number generator

I/O 5 Device Interactions device registers command, status, and data registers CPU accesses register via: special I/O instructions memory mapping interrupts used by device for asynchronous notification (e.g., of request completion) handled by interrupt handlers in the operating system

I/O 6 Example: LAMEbus timer device registers Offset Size Type Description 0 4 status current time (seconds) 4 4 status current time (nanoseconds) 8 4 command restart-on-expiry (auto-restart countdown?) 12 4 status and command interrupt (reading clears) 16 4 status and command countdown time (microseconds) 20 4 command speaker (causes beeps) Sys/161 uses memory-mapping. Each device s registers are mapped into the physical address space of the MIPS processor.

I/O 7 Example: LAMEbus disk controller Offset Size Type Description 0 4 status number of sectors 4 4 status and command status 8 4 command sector number 12 4 status rotational speed (RPM) 32768 512 data transfer buffer

I/O 8 MIPS/OS161 Physical Address Space 0x00000000 RAM 0xffffffff ROM: 0x1fc00000 0x1fdfffff devices: 0x1fe00000 0x1fffffff 0x1fe00000 64 KB device "slot" 0x1fffffff Each device is assigned to one of 32 64KB device slots. A device s registers and data buffers are memory-mapped into its assigned slot.

I/O 9 Device Control Example: Controlling the Timer /* Registers (offsets within the device slot) */ #define LT_REG_SEC 0 /* time of day: seconds */ #define LT_REG_NSEC 4 /* time of day: nanoseconds */ #define LT_REG_ROE 8 /* Restart On countdown-timer Expiry flag * #define LT_REG_IRQ 12 /* Interrupt status register */ #define LT_REG_COUNT 16 /* Time for countdown timer (usec) */ #define LT_REG_SPKR 20 /* Beep control */ /* Get the number of seconds from the lamebus timer */ /* lt->lt_buspos is the slot number of the target device */ secs = bus_read_register(lt->lt_bus, lt->lt_buspos, LT_REG_SEC); /* Get the timer to beep. Doesn t matter what value is sent */ bus_write_register(lt->lt_bus, lt->lt_buspos, LT_REG_SPKR, 440);

I/O 10 Device Control Example: Address Calculations /* LAMEbus mapping size per slot */ #define LB_SLOT_SIZE 65536 #define MIPS_KSEG1 0xa0000000 #define LB_BASEADDR (MIPS_KSEG1 + 0x1fe00000) /* Compute the virtual address of the specified offset */ /* into the specified device slot */ void * lamebus_map_area(struct lamebus_softc *bus, int slot, u_int32_t offset) { u_int32_t address; (void)bus; // not needed } assert(slot>=0 && slot<lb_nslots); address = LB_BASEADDR + slot*lb_slot_size + offset; return (void *)address;

I/O 11 Device Control Example: Commanding the Device /* FROM: kern/arch/mips/mips/lamebus_mips.c */ /* Read 32-bit register from a LAMEbus device. */ u_int32_t lamebus_read_register(struct lamebus_softc *bus, int slot, u_int32_t offset) { u_int32_t *ptr = lamebus_map_area(bus, slot, offset); return *ptr; } /* Write a 32-bit register of a LAMEbus device. */ void lamebus_write_register(struct lamebus_softc *bus, int slot, u_int32_t offset, u_int32_t val) { u_int32_t *ptr = lamebus_map_area(bus, slot, offset); *ptr = val; }

I/O 12 Device Data Transfer Sometimes, a device operation will involve a large chunk of data - much larger than can be moved with a single instruction. Example: reading a block of data from a disk. Devices may have data buffers for such data - but how to get the data between the device and memory? If the data buffer is memory-mapped, the kernel can move the data iteratively, one word at a time. This is called program-controlled I/O. Program controlled I/O is simple, but it means that the CPU is busy executing kernel code while the data is being transferred. The alternative is called Direct Memory Access (DMA). During a DMA data transfer, the CPU is not busy and is free to do something else, e.g., run an application. Sys/161 LAMEbus devices do program-controlled I/O.

I/O 13 Direct Memory Access (DMA) DMA is used for block data transfers between devices (e.g., a disk controller) and memory Under DMA, the CPU initiates the data transfer and is notified when the transfer is finished. However, the device (not the CPU) controls the transfer itself. 3 1 2 K CPU M K K (disk) 1. CPU issues DMA request to controller 2. controller directs data transfer 3. controller interrupts CPU

I/O 14 Applications and Devices interaction with devices is normally accomplished by device drivers in the OS, so that the OS can control how the devices are used applications see a simplified view of devices through a system call interface (e.g., block vs. character devices in Unix) the OS may provide a system call interface that permits low level interaction between application programs and a device operating system often buffers data that is moving between devices and application programs address spaces benefits: solve timing, size mismatch problems drawback: performance

I/O 15 Logical View of a Disk Drive disk is an array of numbered blocks (or sectors) each block is the same size (e.g., 512 bytes) blocks are the unit of transfer between the disk and memory typically, one or more contiguous blocks can be transferred in a single operation storage is non-volatile, i.e., data persists even when the device is without power

I/O 16 A Disk Platter s Surface Track Sector

I/O 17 Physical Structure of a Disk Drive Sector Shaft Track Cylinder

I/O 18 Simplified Cost Model for Disk Block Transfer moving data to/from a disk involves: seek time: move the read/write heads to the appropriate cylinder rotational latency: wait until the desired sectors spin to the read/write heads transfer time: wait while the desired sectors spin past the read/write heads request service time is the sum of seek time, rotational latency, and transfer time t service = t seek +t rot +t transfer note that there are other overheads but they are typically small relative to these three

I/O 19 Rotational Latency and Transfer Time rotational latency depends on the rotational speed of the disk if the disk spins at ω rotations per second: expected rotational latency: 0 t rot 1 ω t rot = 1 2ω transfer time depends on the rotational speed and on the amount of data transferred ifk sectors are to be transferred and there are T sectors per track: t transfer = k Tω

I/O 20 Seek Time seek time depends on the speed of the arm on which the read/write heads are mounted. a simple linear seek time model: t maxseek is the time required to move the read/write heads from the innermost cylinder to the outermost cylinder C is the total number of cylinders ifk is the required seek distance (k > 0): t seek (k) = k C t maxseek

I/O 21 Performance Implications of Disk Characteristics larger transfers to/from a disk device are more efficient than smaller ones. That is, the cost (time) per byte is smaller for larger transfers. (Why?) sequential I/O is faster than non-sequential I/O sequential I/O operations eliminate the need for (most) seeks disks use other techniques, like track buffering, to reduce the cost of sequential I/O even more

I/O 22 Disk Head Scheduling goal: reduce seek times by controlling the order in which requests are serviced disk head scheduling may be performed by the controller, by the operating system, or both for disk head scheduling to be effective, there must be a queue of outstanding disk requests (otherwise there is nothing to reorder) an on-line approach is required: the disk request queue is not static

I/O 23 FCFS Disk Head Scheduling handle requests in the order in which they arrive fair and simple, but no optimization of seek times 1 50 100 150 200 head 14 37 53 65 70 104 122 130 183 arrival order: 104 183 37 122 14 130 65 70

I/O 24 Shortest Seek Time First (SSTF) choose closest request (a greedy approach) seek times are reduced, but requests may starve 1 50 100 150 200 head 14 37 53 65 70 104 122 130 183 arrival order: 104 183 37 122 14 130 65 70

I/O 25 SCAN and LOOK LOOK is the commonly-implemented variant of SCAN. Also known as the elevator algorithm. Under LOOK, the disk head moves in one direction until there are no more requests in front of it, then reverses direction. seek time reduction without starvation SCAN is like LOOK, except the read/write heads always move all the way to the edge of the disk in each direction.

I/O 26 SCAN Example 1 50 100 150 200 head 14 37 53 65 70 104 122 130 183 arrival order: 104 183 37 122 14 130 65 70

I/O 27 Circular SCAN (C-SCAN) and Circular LOOK (C-LOOK) C-LOOK and C-SCAN are variants of LOOK and SCAN Under C-LOOK, the disk head moves in one direction until there are no more requests in front of it, then it jumps back and begins another scan in the same direction as the first. C-LOOK avoids bias against edge cylinders

I/O 28 C-LOOK Example 1 50 100 150 200 head 14 37 53 65 70 104 122 130 183 arrival order: 104 183 37 122 14 130 65 70