Input and Output CS502 Operating Systems Fall 2009

  • Slides: 62
Download presentation
Input and Output CS-502, Operating Systems Fall 2009 (EMC) (Slides include materials from Modern

Input and Output CS-502, Operating Systems Fall 2009 (EMC) (Slides include materials from Modern Operating Systems, 3 rd ed. , by Andrew Tanenbaum and from Operating System Concepts, 7 th ed. , by Silbershatz, Galvin, & Gagne) CS-502 (EMC) Fall 2009 Input and Output 1

Overview • • • What is I/O? Principles of I/O hardware Principles of I/O

Overview • • • What is I/O? Principles of I/O hardware Principles of I/O software Methods of implementing input-output activities Organization of device drivers Specific kinds of devices (Tanenbaum, Chapter 5) CS-502 (EMC) Fall 2009 Input and Output 2

Overview • • • What is I/O? Principles of I/O hardware Principles of I/O

Overview • • • What is I/O? Principles of I/O hardware Principles of I/O software Methods of implementing input-output activities Organization of device drivers Specific kinds of devices (Tanenbaum, Chapter 5) CS-502 (EMC) Fall 2009 Input and Output 3

The I/O Subsystem • • • The largest, most complex subsystem in OS Most

The I/O Subsystem • • • The largest, most complex subsystem in OS Most lines of code Highest rate of code changes Where OS engineers most likely to work Difficult to test thoroughly • Make-or-break issue for any system • Big impact on performance and perception • Bigger impact on acceptability in market CS-502 (EMC) Fall 2009 Input and Output 4

Hardware Organization (simple) Memory CPU memory bus Device CS-502 (EMC) Fall 2009 Input and

Hardware Organization (simple) Memory CPU memory bus Device CS-502 (EMC) Fall 2009 Input and Output Device 5

Hardware Organization (typical Pentium) Main Memory AGP Port Level 2 cache CPU Bridge PCI

Hardware Organization (typical Pentium) Main Memory AGP Port Level 2 cache CPU Bridge PCI bus Ethernet SCSI Graphics card ISA bridge IDE disk Sound card Printer USB ISA bus Mouse CS-502 (EMC) Fall 2009 Keyboard Modem Input and Output 6 Monitor

Kinds of I/O Devices • Character (and sub-character) devices • Mouse, character terminal, joy

Kinds of I/O Devices • Character (and sub-character) devices • Mouse, character terminal, joy stick, some keyboards • Block transfer • Disk, tape, CD, DVD • Network • Clocks • Internal, external • Graphics • GUI, games • Multimedia • Audio, video • Other • Sensors, controllers CS-502 (EMC) Fall 2009 Input and Output 7

Controlling an I/O Device • A function of host CPU architecture • Two extremes:

Controlling an I/O Device • A function of host CPU architecture • Two extremes: – Special instructions vs. memory-mapped • Special I/O instructions • Opcode to stop, start, query, etc. • Separate I/O address space • Kernel mode only • Memory-mapped I/O control registers • • • Each register has a physical memory address Writing to data register is output Reading from data register is input Writing to control register causes action Can be mapped to kernel or user-level virtual memory CS-502 (EMC) Fall 2009 Input and Output 8

Character Device (example) • Data register: • Register or address where data is read

Character Device (example) • Data register: • Register or address where data is read from or written to • Very limited capacity (at most a few bytes) • Action register: • When writing to register, causes a physical action • Reading from register yields zero • Status register: • Reading from register provides information • Writing to register is no-op CS-502 (EMC) Fall 2009 Input and Output 9

Block Transfer Device (example) • Buffer address register: • Points to area in physical

Block Transfer Device (example) • Buffer address register: • Points to area in physical memory to read or write data or • Addressable buffer for data • E. g. , network cards • Action register: • When writing to register, initiates a physical action or data transfer • Reading from register yields zero • Status register: • Reading from register provides information • Writing to register is no-op CS-502 (EMC) Fall 2009 Input and Output 10

DMA (Direct Memory Access) • Ability to cause block devices to autonomously read from

DMA (Direct Memory Access) • Ability to cause block devices to autonomously read from and/or write to main memory • (Usually) physical addresses • (Sometimes) bus congestion leading to performance degradation of CPU • Transfer address • Points to location in physical memory • Action register: • Initiates a reading of control block chain to start actions • Status register: • Reading from register provides information CS-502 (EMC) Fall 2009 Input and Output 11

e. r a rdw a h ry a i d e Direct Memory Access

e. r a rdw a h ry a i d e Direct Memory Access (DMA) term n i r is y! e l l tro essar n o A c ys nec M a D The Not alw Figure 5 -4, Tanenbaum Operation of a DMA transfer CS-502 (EMC) Fall 2009 Input and Output 12

Programmed DMA controller controls physical memory disk First control block operation address Count control

Programmed DMA controller controls physical memory disk First control block operation address Count control info next CS-502 (EMC) Fall 2009 operation address Count control info next … operation address Count control info next Input and Output 13

Programmed DMA (continued) • DMA control register points to first control block in chain

Programmed DMA (continued) • DMA control register points to first control block in chain • Each DMA control block has • • Action & control info for a single transfer of one or more blocks Data addresses in physical memory (optional) link to next block in chain (optional) interrupt upon completion • Each control block removed from chain upon completion • I/O subsystem may add control blocks to chain while transfers are in progress • Result: – uninterrupted sequence of transfers with no CPU intervention CS-502 (EMC) Fall 2009 Input and Output 14

Questions? CS-502 (EMC) Fall 2009 Input and Output 15

Questions? CS-502 (EMC) Fall 2009 Input and Output 15

Overview • • • What is I/O? Principles of I/O hardware Principles of I/O

Overview • • • What is I/O? Principles of I/O hardware Principles of I/O software Methods of implementing input-output activities Organization of device drivers Specific kinds of devices (Tanenbaum, Chapter 5) CS-502 (EMC) Fall 2009 Input and Output 16

Principles of I/O Software • Efficiency – Do not allow I/O operations to become

Principles of I/O Software • Efficiency – Do not allow I/O operations to become system bottleneck • Especially slow devices • Device independence – isolate OS and application programs from device specific details and peculiarities • Uniform naming – support a way of naming devices that is scalable and consistent • Error handling – isolate the impact of device errors, retry where possible, provide uniform error codes • Errors are abundant in I/O • Buffering – provide uniform methods for storing and copying data between physical memory and the devices • Uniform data transfer modes – synchronous and asynchronous, read, write, . . • Controlled device access – sharing and transfer modes • Uniform driver support – specify interfaces and protocols that drivers must adhere to CS-502 (EMC) Fall 2009 Input and Output 17

I/O Software “Stack” I/O API & libraries User Level Software Device Independent Software Device

I/O Software “Stack” I/O API & libraries User Level Software Device Independent Software Device Dependent Device Drivers Device Dependent – as short as possible Interrupt Handlers (Rest of the OS) Hardware CS-502 (EMC) Fall 2009 Input and Output 18

Three common ways I/O can be performed • Programmed I/O • Interrupt-Driven I/O •

Three common ways I/O can be performed • Programmed I/O • Interrupt-Driven I/O • I/O using DMA CS-502 (EMC) Fall 2009 Input and Output 19

Programmed I/O (Polling) • Used when device and controller are relatively quick to process

Programmed I/O (Polling) • Used when device and controller are relatively quick to process an I/O operation – Device driver • • Gains access to device Initiates I/O operation Loops testing for completion of I/O operation (busy wait) If there are more I/O operations, repeat – Used in following kinds of cases • • • Service interrupt time > Device response time Device has no interrupt capability Embedded systems where CPU has nothing else to do CS-502 (EMC) Fall 2009 Input and Output 20

Programmed I/O Example — Bitmapped Keyboard & Mouse • Keyboard & mouse buttons implemented

Programmed I/O Example — Bitmapped Keyboard & Mouse • Keyboard & mouse buttons implemented as 128 bit read-only register Advantage: – key positions are • One bit for each key and mouse button entirely programmed in software • 0 = “up”; 1 = “down” • Mouse “wheels” implemented as pair of counters • One click per unit of motion in each of x and y directions • Clock interrupt every 10 msec • Reads keyboard register, compares to previous copy • Determines key & button transitions up or down • Decodes transition stream to form character and button sequence • Reads and compares mouse counters to form motion sequence CS-502 (EMC) Fall 2009 Input and Output 21

Other Programmed I/O examples • Check status of device • Read from disk or

Other Programmed I/O examples • Check status of device • Read from disk or boot device at boot time • No OS present, hence no interrupt handlers • Needed for bootstrap loading of the inner portions of kernel • External sensors or controllers • Real-time control systems CS-502 (EMC) Fall 2009 Input and Output 22

Interrupt-Driven I/O • Interrupts occur on I/O events • operation completion • Error or

Interrupt-Driven I/O • Interrupts occur on I/O events • operation completion • Error or change of status CPU participates in every byte transferred! • Interrupt – stops CPU from continuing with current work – Saves some context – restarts CPU with new address & stack • Set up by the interrupt vector • Target is the interrupt handler CS-502 (EMC) Fall 2009 Input and Output 23

Interrupts CS-502 (EMC) Fall 2009 Input and Output 24

Interrupts CS-502 (EMC) Fall 2009 Input and Output 24

Interrupt Request Lines (IRQs) • Every device is assigned an IRQ – Used when

Interrupt Request Lines (IRQs) • Every device is assigned an IRQ – Used when raising an interrupt – Interrupt handler can identify the interrupting device • Assigning IRQs – In older and simpler hardware, physical wires and contacts on device or bus – In most modern PCs, etc. , assigned dynamically at boot time CS-502 (EMC) Fall 2009 Input and Output 25

Handling Interrupts (Linux Style) • Terminology – Interrupt context – kernel operating not on

Handling Interrupts (Linux Style) • Terminology – Interrupt context – kernel operating not on behalf of any process – Process context – kernel operating on behalf of a particular process – User context – process executing in user-space virtual memory • Interrupt Service Routine (ISR), also called Interrupt Handler – The function that is invoked when an interrupt is raised – Identified by IRQ – Operates on Interrupt stack (as of Linux kernel 2. 6) • One interrupt stack per processor; approx 4 -8 kbytes • … CS-502 (EMC) Fall 2009 Input and Output 26

Handling Interrupts (Linux Style – continued) Definitions! • … • Top half – does

Handling Interrupts (Linux Style – continued) Definitions! • … • Top half – does minimal, time-critical work necessary – Acknowledge interrupt, reset device, copy buffer or registers, etc. – Interrupts (usually) disabled on current processor • Bottom half – the part of the ISR that can be deferred to more convenient time – – Completes I/O processing; does most of the work Interrupts enabled (usually) Communicates with processes Possibly in a kernel thread (or even a user thread!) CS-502 (EMC) Fall 2009 Input and Output 27

Interrupt-Driven I/O Example Software Time-of-Day Clock • Interrupt occurs at fixed intervals • 50

Interrupt-Driven I/O Example Software Time-of-Day Clock • Interrupt occurs at fixed intervals • 50 or 60 Hz • Service routine (top half): – • Adds one tick to clock counter Note that this looks a lot like programmed I/O • Except for bottom-half processing • Service routine (bottom half): – • Checks list of soft timers • Notifies tasks of any expired timers CS-502 (EMC) Fall 2009 Input and Output 28

Other Interrupt-Driven I/O examples • Very “slow” character-at-a-time terminals – Mechanical printers (15 characters/second)

Other Interrupt-Driven I/O examples • Very “slow” character-at-a-time terminals – Mechanical printers (15 characters/second) – Some keyboards (one character/keystroke) • Command-line completion in many Unix systems – Game consoles – Serial modems – Many I/O devices in “old” computers • Paper tape, punched cards, etc. CS-502 (EMC) Fall 2009 Input and Output 29

Programmed I/O vs. Interrupt-driven I/O • Programmed I/O • A process or thread pro-actively

Programmed I/O vs. Interrupt-driven I/O • Programmed I/O • A process or thread pro-actively works the device, gets or puts the data, does everything else. • Interrupt-driven I/O • Device operates autonomously, let’s processor know when it is done or ready • Both • CPU participates in transfer of every byte or word. CS-502 (EMC) Fall 2009 Input and Output 30

I/O using DMA CS-502 (EMC) Fall 2009 Input and Output ge d i r

I/O using DMA CS-502 (EMC) Fall 2009 Input and Output ge d i r e b tium d i s en in P d l e ca at Loc in typi chip 31

DMA Interrupt Handler • Service Routine – top half (interrupts disabled) – Does as

DMA Interrupt Handler • Service Routine – top half (interrupts disabled) – Does as little work as possible and returns • (Mostly) notices completion of one transfer, starts another • (Occasionally) checks for status • Setup for more processing in bottom half • Service Routine – bottom half (interrupts enabled) – Compiles control blocks from I/O requests – Manages & pins buffers, translates virtual to physical addresses – Posts completion of transfers to requesting applications • Unpin and/or release buffers – Possibly in a kernel thread CS-502 (EMC) Fall 2009 Input and Output 32

DMA example — Streaming tape • Requirement • Move data to/from tape device fast

DMA example — Streaming tape • Requirement • Move data to/from tape device fast enough to avoid stopping tape motion • Producer-consumer model between application and bottom-half service routine • Multiple actions queued up before previous action is completed • Notifies application of completed actions • Top half service routine • Records completion of each action • Starts next action before tape moves too far • Result: – • Ability to read or write 100’s or 1000’s of megabytes without stopping tape motion CS-502 (EMC) Fall 2009 Input and Output 33

Other DMA examples • • Disks, CD-ROM readers, DVD readers Ethernet & wireless “modems”

Other DMA examples • • Disks, CD-ROM readers, DVD readers Ethernet & wireless “modems” Not GUIs Tape and bulk storage devices Common themes: – • Device controller has space to buffer a (big) block of data • Controller has intelligence to update physical addresses and transfer data • Controller (often) has intelligence to interpret a sequence of control blocks without CPU help • CPU does not touch data during transfer! CS-502 (EMC) Fall 2009 Input and Output 34

Digression: Error Detection and Correction • Most data storage and network devices have hardware

Digression: Error Detection and Correction • Most data storage and network devices have hardware error detection and correction • Redundancy code added during writing • Parity: detects 1 -bit errors, not 2 -bit errors • Hamming codes – Corrects 1 -bit errors, detects 2 -bit errors • Cyclic redundancy check (CRC) – Detects errors in string of 16 - or 32 -bits – Reduces probability of undetected errors to very, very low • Check during reading • Report error to device driver • Error recovery: – one of principal responsibilities of a device driver! CS-502 (EMC) Fall 2009 Input and Output 35

Overview • • • What is I/O? Principles of I/O hardware Principles of I/O

Overview • • • What is I/O? Principles of I/O hardware Principles of I/O software Methods of implementing input-output activities Organization of device drivers Specific kinds of devices (Tanenbaum, Chapter 5) CS-502 (EMC) Fall 2009 Input and Output 36

Device Drivers • • • Organization Static or dynamic Uniform interfaces to OS Uniform

Device Drivers • • • Organization Static or dynamic Uniform interfaces to OS Uniform buffering strategies Hide device idiosyncrasies CS-502 (EMC) Fall 2009 Input and Output 37

Device Drivers • Device Drivers are dependent on both the OS & device •

Device Drivers • Device Drivers are dependent on both the OS & device • OS dependence – Meet the interface specs of the device independent layer – Utilize the facilities supplied by the OS – buffers, error codes, etc. – Accept and execute OS commands – e. g. read, open, etc. • Device Dependent – Actions during Interrupt Service routine – Translate OS commands into device operations • E. g read block n becomes a series of setting and clearing and interpreting device registers or interfaces – Note that some device drivers have layers • Strategy or policy part to optimize arm movement or do retries; plus a mechanism part the executes the operations CS-502 (EMC) Fall 2009 Input and Output 38

OS Responsibility to Device Driver • Uniform API • Open, Close, Read, Write, Seek

OS Responsibility to Device Driver • Uniform API • Open, Close, Read, Write, Seek functions • ioctl function as escape mechanism • Buffering • Kernel functions for allocating, freeing, mapping, pinning buffers • Uniform naming • /dev/(type)(unit) – type defines driver; unit says which device • Other • Assign interrupt level (IRQ) • Protection (accessibility by application, user-space routines) • Error reporting mechanism CS-502 (EMC) Fall 2009 Input and Output 39

Abstract Overview • Think of I/O subsystem as a Java-style class • Uniform interface

Abstract Overview • Think of I/O subsystem as a Java-style class • Uniform interface in form of specific operations (methods) and services Much like the Virtual • Uniform state information File System interface. • Each I/O driver implements a subclass • Own methods for uniform interface • Additional state info & methods for specific needs • However, no Java support in kernel • Must implement everything in long-hand in C CS-502 (EMC) Fall 2009 Input and Output 40

Uniform API and Buffering Example Memory-mapped Keyboard • /dev/kb • Device interrupt routine detects

Uniform API and Buffering Example Memory-mapped Keyboard • /dev/kb • Device interrupt routine detects key transitions • Driver converts sequence of transitions into characters in user’s written language • Characters placed sequentially in buffer • Accessible by read() • Application calls getchar() or get() • Library routines implemented with read() • Provides uniform input stream semantics CS-502 (EMC) Fall 2009 Input and Output 41

Buffering • DMA devices need memory to read from, write to • Must be

Buffering • DMA devices need memory to read from, write to • Must be contiguous pages • (Usually) physical addresses • Double buffering • One being filled (or emptied) by device • Other being emptied (or filled) by application • Special case of producer-consumer with n = 2 CS-502 (EMC) Fall 2009 Input and Output 42

Installing Device Drivers • Classic Unix • Create and compile driver to. o file

Installing Device Drivers • Classic Unix • Create and compile driver to. o file • Edit and re-compile device table to add new device • Re-link with. o files for OS kernel new boot file • Classic Macintosh • Submit to Apple for verification, approval, and inclusion • MS-DOS and Windows • Dynamic driver loading and installation • Special driver-level debuggers available; open device environment • Certification program for trademarking • Linux • Dynamic driver loading and installation • Open device environment CS-502 (EMC) Fall 2009 Input and Output 43

Operating System Organization Utilities, tools, Window packages, program management, other stuff System Libraries (user

Operating System Organization Utilities, tools, Window packages, program management, other stuff System Libraries (user space) Drivers & modules lly a c i m e! a n m Dy un ti at r lo Kernel File Systems Dy at r nami un cal tim ly l e! oad e d a CS-502 (EMC) Fall 2009 d Input and Output 44

Installing Device Drivers • Classic Unix • Create and compile driver to. o file

Installing Device Drivers • Classic Unix • Create and compile driver to. o file • Edit and re-compile device table to add new device • Re-link with. o files for OS kernel new boot file • Classic Macintosh • Submit to Apple for verification, approval, and inclusion • MS-DOS and Windows Reason why Windows won Battle of the Desktop • Dynamic driver loading and installation • Special driver-level debuggers available; open device environment • Certification program for trademarking • Linux • Dynamic driver loading and installation • Open device environment CS-502 (EMC) Fall 2009 Input and Output 45

Dynamic Device Configuration • At boot time: – 1. Probe hardware for inventory of

Dynamic Device Configuration • At boot time: – 1. Probe hardware for inventory of devices & addresses 2. Map devices to drivers (using table previously created) 3. Load necessary drivers into kernel space, register in interrupt vector (. sys files in Windows) • Run time: – 1. Detect interrupt from newly added device 2. Search for driver, or ask user; add to table 3. Load into kernel space, register in interrupt vector CS-502 (EMC) Fall 2009 Input and Output 46

Probing for devices • (Most) bridge and bus standards include registration protocol • [vendor,

Probing for devices • (Most) bridge and bus standards include registration protocol • [vendor, device ID] • OS (recursively) tests every addressable connection • If device is present, it responds with own ID • Performed both at • Boot time: to associate drivers with addresses • Installation time: to build up association table CS-502 (EMC) Fall 2009 Input and Output 47

Allocating and Releasing Devices • Some devices can only be used by one application

Allocating and Releasing Devices • Some devices can only be used by one application at a time • CD-ROM recorders • GUI interface • Allocated at Open() time • Freed at Close() time CS-502 (EMC) Fall 2009 Input and Output 49

User Space I/O Software (Daemons and Spoolers) • Device registers mapped into virtual address

User Space I/O Software (Daemons and Spoolers) • Device registers mapped into virtual address space of daemon process • Controlled directly by daemon • Top-half service routine • Handles interrupts • Signals via semaphores or monitors • Bottom-half service routine • The daemon itself! • Waits for signals or monitors • Manages device and requests from outside kernel CS-502 (EMC) Fall 2009 Input and Output 50

User Space I/O example Print Spooler • /dev/lpt is a “virtual” device available to

User Space I/O example Print Spooler • /dev/lpt is a “virtual” device available to every process & user • Driver causes – “Printing” to spool file – Control info to spooler daemon • Printer selection, options, and parameters • Spooler selects one print “job” at a time – Prints from spool file to physical device • Types of printing – – Simple character strings separated by n characters Stream of PCL or inkjet commands Postscript files … CS-502 (EMC) Fall 2009 Input and Output 51

Overview • • • What is I/O? Principles of I/O hardware Principles of I/O

Overview • • • What is I/O? Principles of I/O hardware Principles of I/O software Methods of implementing input-output activities Organization of device drivers Specific kinds of devices (Tanenbaum, Chapter 5) CS-502 (EMC) Fall 2009 Input and Output 52

Character Terminal • Really two devices • Keyboard input • Character display output •

Character Terminal • Really two devices • Keyboard input • Character display output • /dev/tty (Unix) or COM (Windows) • The classic input-output terminal • RS-232 standard • Modes • raw • cooked (aka canonical) – with backspace correction, tab expansion, etc. • Printed output vs. CRT display CS-502 (EMC) Fall 2009 Input and Output 53

A special kind of Device The Graphical User Interface • aka, the bitmapped display

A special kind of Device The Graphical User Interface • aka, the bitmapped display • In IBM language: – “all points addressable” • 300 K pixels to 2 M pixels • Each pixel may be separated written • Collectively, they create • • • Windows Graphics Images Videos Games CS-502 (EMC) Fall 2009 Input and Output 54

GUI Device — early days • Bitmap in main memory • All output via

GUI Device — early days • Bitmap in main memory • All output via library routines to bitmap • Entirely (or mostly) in user space • Controller, an automaton to do: – CPU • D-A conversion (digital to analog video) • 60+ Hz refresh rate • “clock” interrupt at top of each frame Vi deo Main Memory Bitmap CS-502 (EMC) Fall 2009 Digital to Analog Input and Output 55

GUI Device — Displaying Text • Font: an array of bitmaps, one per character

GUI Device — Displaying Text • Font: an array of bitmaps, one per character • Designed to be pleasing to eye • bitblt: (Bit-oriented Block Transfer) • An operation to copy a rectangular array of pixels from one bitmap to another A B CDE F … Dog Bitmap bitblt CS-502 (EMC) Fall 2009 Input and Output 56

GUI Device – Color • Monochrome: one bit per pixel • foreground vs. background

GUI Device – Color • Monochrome: one bit per pixel • foreground vs. background • Color: 2 -32 bits per pixel • Direct vs. Color palette • Direct: (usually) 8 bits each per Red, Green, Blue • Palette: a table of length 2 p, for p-bit pixels Each entry (usually) 8 bits each for RGB CS-502 (EMC) Fall 2009 Input and Output 57

GUI Device – Cursor • A small bitmap to overlay main bitmap • Hardware

GUI Device – Cursor • A small bitmap to overlay main bitmap • Hardware support • Substitute cursor bits during each frame • Software implementation • Bitblt area under cursor to temporary bitmap • Bitblt cursor bitmap to main bitmap • Restore area under cursor from temporary bitmap • Very, very tricky! • Timing is critical for smooth appearance • Best with double-buffered main bitmap CS-502 (EMC) Fall 2009 Input and Output 58

GUI Device – Window • A virtual bitmap • size, position, clipping boundaries •

GUI Device – Window • A virtual bitmap • size, position, clipping boundaries • font, foreground and background colors • A list of operations needed to redraw contents • Operations to window itself: – • write(), refresh() Called by application to add/change information CS-502 (EMC) Fall 2009 Called by window manager to redraw current contents Input and Output 59

GUI Device — Text Window • Character terminal emulated in a window • RS-232

GUI Device — Text Window • Character terminal emulated in a window • RS-232 character set and controls • /dev/tty • Operates like a character terminal with visible, partially obscured, or completely covered CS-502 (EMC) Fall 2009 Input and Output 60

Modern GUI Devices Main Memory AGP Port Level 2 cache CPU Bridge PCI bus

Modern GUI Devices Main Memory AGP Port Level 2 cache CPU Bridge PCI bus Ethernet SCSI Graphics card ISA bridge IDE disk Sound card Printer USB ISA bus Mouse CS-502 (EMC) Fall 2009 Keyboard Modem Input and Output 61 Monitor

Modern GUI Devices (continued) CPU Bridge Graphics card Monitor • Double-buffered bitmap in Graphics

Modern GUI Devices (continued) CPU Bridge Graphics card Monitor • Double-buffered bitmap in Graphics card • Graphics and information written/drawn in back buffer • Monitor refreshes from main buffer (60+ Hz) • Refresh interrupt at start of every frame • Bitblt to substitute cursor • CPU writes text, etc. • Graphics processor (GPU) draws images, vectors, polygons • Window manager orders redraw when necessary CS-502 (EMC) Fall 2009 Input and Output 62

Questions? Reading Assignment • Tanenbaum, Chapter 5 CS-502 (EMC) Fall 2009 Input and Output

Questions? Reading Assignment • Tanenbaum, Chapter 5 CS-502 (EMC) Fall 2009 Input and Output 63