SlideShare a Scribd company logo
1 of 62
Input and Output
CS-3013 A-term 2009 1
Input and Output
CS-3013, Operating Systems
A-term 2009
(Slides include materials from Modern Operating Systems, 3rd ed., by Andrew Tanenbaum and from
Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne)
Input and Output
CS-3013 A-term 2009 2
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)
Input and Output
CS-3013 A-term 2009 3
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)
Input and Output
CS-3013 A-term 2009 4
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
Input and Output
CS-3013 A-term 2009 5
Device
Hardware Organization (simple)
CPU
Memory
memory bus
Device
Input and Output
CS-3013 A-term 2009 6
Hardware Organization (typical Pentium)
ISA
bridge
IDE
disk
Main
Memory
CPU
Level
2
cache
Bridge
Moni-
tor
Graphics
card
USB
Key-
board
Mouse
Ether-
net
SCSI
Modem
Sound
card
Printer
PCI bus
ISA bus
AGP Port
Input and Output
CS-3013 A-term 2009 7
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
Input and Output
CS-3013 A-term 2009 8
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
Input and Output
CS-3013 A-term 2009 9
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
Input and Output
CS-3013 A-term 2009 10
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
Input and Output
CS-3013 A-term 2009 11
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
Input and Output
CS-3013 A-term 2009 12
Direct Memory Access (DMA)
Operation of a DMA transfer
Figure 5-4, Tanenbaum
Input and Output
CS-3013 A-term 2009 13
Programmed DMA
DMA controller
First
control block
controls
disk
operation
address
Count
control info
next
operation
address
Count
control info
next
operation
address
Count
control info
next
…
physical
memory
Input and Output
CS-3013 A-term 2009 14
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
Input and Output
CS-3013 A-term 2009 15
Questions?
Input and Output
CS-3013 A-term 2009 16
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)
Input and Output
CS-3013 A-term 2009 17
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
Input and Output
CS-3013 A-term 2009 18
I/O Software “Stack”
User Level Software
Device Independent
Software
Device Drivers
Interrupt Handlers
Hardware
I/O API & libraries
Device Dependent
Device Dependent –
as short as possible
(Rest of the OS)
Input and Output
CS-3013 A-term 2009 19
Three common ways I/O can be performed
• Programmed I/O
• Interrupt-Driven I/O
• I/O using DMA
Input and Output
CS-3013 A-term 2009 20
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
Input and Output
CS-3013 A-term 2009 21
Programmed I/O Example —
Bitmapped Keyboard & Mouse
• Keyboard & mouse buttons implemented as 128-
bit read-only register
• One bit for each key and mouse button
• 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
Input and Output
CS-3013 A-term 2009 22
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
Input and Output
CS-3013 A-term 2009 23
Interrupt-Driven I/O
• Interrupts occur on I/O events
• operation completion
• Error or change of status
• Programmed in DMA command chain
• 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
CPU participates in
every byte transferred!
Input and Output
CS-3013 A-term 2009 24
Interrupts
Input and Output
CS-3013 A-term 2009 25
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, physically by
wires and contacts on device or bus
– In most modern PCs, etc., assigned dynamically
at boot time
Input and Output
CS-3013 A-term 2009 26
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 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
• …
Input and Output
CS-3013 A-term 2009 27
Handling Interrupts (Linux Style – continued)
• …
• 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!)
Definitions!
Input and Output
CS-3013 A-term 2009 28
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
• Service routine (bottom half):–
• Checks list of soft timers
• Notifies tasks of any expired timers
Note that this looks a lot
like programmed I/O
• Except for bottom-half
processing
Input and Output
CS-3013 A-term 2009 29
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.
Input and Output
CS-3013 A-term 2009 30
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.
Input and Output
CS-3013 A-term 2009 31
I/O using DMA
Input and Output
CS-3013 A-term 2009 32
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
Input and Output
CS-3013 A-term 2009 33
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
Input and Output
CS-3013 A-term 2009 34
Other DMA examples
• Disks, CD-ROM readers, DVD readers
• Ethernet & wireless “modems”
• 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!
Not GUIs
Input and Output
CS-3013 A-term 2009 35
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!
Input and Output
CS-3013 A-term 2009 36
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)
Input and Output
CS-3013 A-term 2009 37
Device Drivers
• Organization
• Static or dynamic
• Uniform interfaces to OS
• Uniform buffering strategies
• Hide device idiosyncrasies
Input and Output
CS-3013 A-term 2009 38
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
Input and Output
CS-3013 A-term 2009 39
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
Input and Output
CS-3013 A-term 2009 40
Abstract Overview
• Think of I/O subsystem as a Java-style class
• Uniform interface in form of specific operations
(methods) and services
• Uniform state information
• 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
Input and Output
CS-3013 A-term 2009 41
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
Input and Output
CS-3013 A-term 2009 42
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
Input and Output
CS-3013 A-term 2009 43
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
Input and Output
CS-3013 A-term 2009 44
Operating System Organization
Kernel
System Libraries (user space)
Utilities, tools, Window
packages, program
management, other stuff
Drivers & modules File Systems
Input and Output
CS-3013 A-term 2009 45
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
Reason why Windows
won Battle of the Desktop
Input and Output
CS-3013 A-term 2009 46
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
Input and Output
CS-3013 A-term 2009 47
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
Input and Output
CS-3013 A-term 2009 49
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
Input and Output
CS-3013 A-term 2009 50
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
Input and Output
CS-3013 A-term 2009 51
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
– …
Input and Output
CS-3013 A-term 2009 52
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)
Input and Output
CS-3013 A-term 2009 53
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
Input and Output
CS-3013 A-term 2009 54
A special kind of Device
The Graphical User Interface
• aka, the bitmapped display
• In IBM language:– “all points addressable”
• 300K pixels to 2M pixels
• Each pixel may be separated written
• Collectively, they create
• Windows
• Graphics
• Images
• Videos
• Games
Input and Output
CS-3013 A-term 2009 55
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:–
• D-A conversion (digital to analog video)
• 60+ Hz refresh rate
• “clock” interrupt at top of each frame
Main Memory
CPU
Bitmap Digital to
Analog
Input and Output
CS-3013 A-term 2009 56
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 C D E F …
Bitmap
bitblt
Dog
Input and Output
CS-3013 A-term 2009 57
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 2p, for p-bit pixels
Each entry (usually) 8 bits each for RGB
Input and Output
CS-3013 A-term 2009 58
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
Input and Output
CS-3013 A-term 2009 59
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
Called by window manager to
redraw current contents
Input and Output
CS-3013 A-term 2009 60
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
Input and Output
CS-3013 A-term 2009 61
Modern GUI Devices
ISA
bridge
IDE
disk
Main
Memory
CPU
Level
2
cache
Bridge
Moni-
tor
Graphics
card
USB
Key-
board
Mouse
Ether-
net
SCSI
Modem
Sound
card
Printer
PCI bus
ISA bus
AGP Port
Input and Output
CS-3013 A-term 2009 62
Modern GUI Devices (continued)
• 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
CPU Bridge
Moni-
tor
Graphics
card
Input and Output
CS-3013 A-term 2009 63
Questions?
Reading Assignment
• Tanenbaum, Chapter 5

More Related Content

Similar to Input Output Overview.ppt

Input Output Operations
Input Output OperationsInput Output Operations
Input Output Operations
kdisthere
 
top level view of computer function and interconnection
top level view of computer function and interconnectiontop level view of computer function and interconnection
top level view of computer function and interconnection
Sajid Marwat
 
Report in SAD
Report in SADReport in SAD
Report in SAD
jesseledm
 
1_to_10.pdf
1_to_10.pdf1_to_10.pdf
1_to_10.pdf
SHEHABALYAMANI
 

Similar to Input Output Overview.ppt (20)

Components of Computer
Components of ComputerComponents of Computer
Components of Computer
 
Ch 01 os8e
Ch 01  os8eCh 01  os8e
Ch 01 os8e
 
computer system structure
computer system structurecomputer system structure
computer system structure
 
Advanced debugging on ARM Cortex devices such as STM32, Kinetis, LPC, etc.
Advanced debugging on ARM Cortex devices such as STM32, Kinetis, LPC, etc.Advanced debugging on ARM Cortex devices such as STM32, Kinetis, LPC, etc.
Advanced debugging on ARM Cortex devices such as STM32, Kinetis, LPC, etc.
 
Input Output Operations
Input Output OperationsInput Output Operations
Input Output Operations
 
5120224.ppt
5120224.ppt5120224.ppt
5120224.ppt
 
top level view of computer function and interconnection
top level view of computer function and interconnectiontop level view of computer function and interconnection
top level view of computer function and interconnection
 
I/O Organization
I/O OrganizationI/O Organization
I/O Organization
 
Chapter01 (1).ppt
Chapter01 (1).pptChapter01 (1).ppt
Chapter01 (1).ppt
 
Ch 7 io_management & disk scheduling
Ch 7 io_management & disk schedulingCh 7 io_management & disk scheduling
Ch 7 io_management & disk scheduling
 
In out system
In out systemIn out system
In out system
 
07 input output
07 input output07 input output
07 input output
 
03 top level view of computer function and interconnection.ppt.enc
03 top level view of computer function and interconnection.ppt.enc03 top level view of computer function and interconnection.ppt.enc
03 top level view of computer function and interconnection.ppt.enc
 
Lecture 9.pptx
Lecture 9.pptxLecture 9.pptx
Lecture 9.pptx
 
03_Buses (1).ppt
03_Buses (1).ppt03_Buses (1).ppt
03_Buses (1).ppt
 
03 buses
03 buses03 buses
03 buses
 
Report in SAD
Report in SADReport in SAD
Report in SAD
 
Computer system architecture
Computer system architectureComputer system architecture
Computer system architecture
 
Embedded systems 101 final
Embedded systems 101 finalEmbedded systems 101 final
Embedded systems 101 final
 
1_to_10.pdf
1_to_10.pdf1_to_10.pdf
1_to_10.pdf
 

More from jguuhxxxfp (7)

Processes in Linux.ppt
Processes in Linux.pptProcesses in Linux.ppt
Processes in Linux.ppt
 
Operating Systems.pptx
Operating Systems.pptxOperating Systems.pptx
Operating Systems.pptx
 
Project Report.pptx
Project Report.pptxProject Report.pptx
Project Report.pptx
 
College Placement Project.pptx
College Placement Project.pptxCollege Placement Project.pptx
College Placement Project.pptx
 
Computer System.ppt
Computer System.pptComputer System.ppt
Computer System.ppt
 
Disks and Stable Storage.ppt
Disks and Stable Storage.pptDisks and Stable Storage.ppt
Disks and Stable Storage.ppt
 
emp-internet07.ppt
emp-internet07.pptemp-internet07.ppt
emp-internet07.ppt
 

Recently uploaded

"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
mphochane1998
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
Query optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsQuery optimization and processing for advanced database systems
Query optimization and processing for advanced database systems
meharikiros2
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 

Recently uploaded (20)

Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .ppt
 
Augmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxAugmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptx
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To Curves
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptx
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
Electromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptxElectromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptx
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Worksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptxWorksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptx
 
Query optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsQuery optimization and processing for advanced database systems
Query optimization and processing for advanced database systems
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
 
Introduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdfIntroduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdf
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 

Input Output Overview.ppt

  • 1. Input and Output CS-3013 A-term 2009 1 Input and Output CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3rd ed., by Andrew Tanenbaum and from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne)
  • 2. Input and Output CS-3013 A-term 2009 2 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)
  • 3. Input and Output CS-3013 A-term 2009 3 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)
  • 4. Input and Output CS-3013 A-term 2009 4 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
  • 5. Input and Output CS-3013 A-term 2009 5 Device Hardware Organization (simple) CPU Memory memory bus Device
  • 6. Input and Output CS-3013 A-term 2009 6 Hardware Organization (typical Pentium) ISA bridge IDE disk Main Memory CPU Level 2 cache Bridge Moni- tor Graphics card USB Key- board Mouse Ether- net SCSI Modem Sound card Printer PCI bus ISA bus AGP Port
  • 7. Input and Output CS-3013 A-term 2009 7 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
  • 8. Input and Output CS-3013 A-term 2009 8 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
  • 9. Input and Output CS-3013 A-term 2009 9 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
  • 10. Input and Output CS-3013 A-term 2009 10 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
  • 11. Input and Output CS-3013 A-term 2009 11 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
  • 12. Input and Output CS-3013 A-term 2009 12 Direct Memory Access (DMA) Operation of a DMA transfer Figure 5-4, Tanenbaum
  • 13. Input and Output CS-3013 A-term 2009 13 Programmed DMA DMA controller First control block controls disk operation address Count control info next operation address Count control info next operation address Count control info next … physical memory
  • 14. Input and Output CS-3013 A-term 2009 14 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
  • 15. Input and Output CS-3013 A-term 2009 15 Questions?
  • 16. Input and Output CS-3013 A-term 2009 16 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)
  • 17. Input and Output CS-3013 A-term 2009 17 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
  • 18. Input and Output CS-3013 A-term 2009 18 I/O Software “Stack” User Level Software Device Independent Software Device Drivers Interrupt Handlers Hardware I/O API & libraries Device Dependent Device Dependent – as short as possible (Rest of the OS)
  • 19. Input and Output CS-3013 A-term 2009 19 Three common ways I/O can be performed • Programmed I/O • Interrupt-Driven I/O • I/O using DMA
  • 20. Input and Output CS-3013 A-term 2009 20 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
  • 21. Input and Output CS-3013 A-term 2009 21 Programmed I/O Example — Bitmapped Keyboard & Mouse • Keyboard & mouse buttons implemented as 128- bit read-only register • One bit for each key and mouse button • 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
  • 22. Input and Output CS-3013 A-term 2009 22 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
  • 23. Input and Output CS-3013 A-term 2009 23 Interrupt-Driven I/O • Interrupts occur on I/O events • operation completion • Error or change of status • Programmed in DMA command chain • 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 CPU participates in every byte transferred!
  • 24. Input and Output CS-3013 A-term 2009 24 Interrupts
  • 25. Input and Output CS-3013 A-term 2009 25 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, physically by wires and contacts on device or bus – In most modern PCs, etc., assigned dynamically at boot time
  • 26. Input and Output CS-3013 A-term 2009 26 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 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 • …
  • 27. Input and Output CS-3013 A-term 2009 27 Handling Interrupts (Linux Style – continued) • … • 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!) Definitions!
  • 28. Input and Output CS-3013 A-term 2009 28 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 • Service routine (bottom half):– • Checks list of soft timers • Notifies tasks of any expired timers Note that this looks a lot like programmed I/O • Except for bottom-half processing
  • 29. Input and Output CS-3013 A-term 2009 29 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.
  • 30. Input and Output CS-3013 A-term 2009 30 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.
  • 31. Input and Output CS-3013 A-term 2009 31 I/O using DMA
  • 32. Input and Output CS-3013 A-term 2009 32 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
  • 33. Input and Output CS-3013 A-term 2009 33 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
  • 34. Input and Output CS-3013 A-term 2009 34 Other DMA examples • Disks, CD-ROM readers, DVD readers • Ethernet & wireless “modems” • 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! Not GUIs
  • 35. Input and Output CS-3013 A-term 2009 35 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!
  • 36. Input and Output CS-3013 A-term 2009 36 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)
  • 37. Input and Output CS-3013 A-term 2009 37 Device Drivers • Organization • Static or dynamic • Uniform interfaces to OS • Uniform buffering strategies • Hide device idiosyncrasies
  • 38. Input and Output CS-3013 A-term 2009 38 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
  • 39. Input and Output CS-3013 A-term 2009 39 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
  • 40. Input and Output CS-3013 A-term 2009 40 Abstract Overview • Think of I/O subsystem as a Java-style class • Uniform interface in form of specific operations (methods) and services • Uniform state information • 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
  • 41. Input and Output CS-3013 A-term 2009 41 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
  • 42. Input and Output CS-3013 A-term 2009 42 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
  • 43. Input and Output CS-3013 A-term 2009 43 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
  • 44. Input and Output CS-3013 A-term 2009 44 Operating System Organization Kernel System Libraries (user space) Utilities, tools, Window packages, program management, other stuff Drivers & modules File Systems
  • 45. Input and Output CS-3013 A-term 2009 45 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 Reason why Windows won Battle of the Desktop
  • 46. Input and Output CS-3013 A-term 2009 46 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
  • 47. Input and Output CS-3013 A-term 2009 47 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
  • 48. Input and Output CS-3013 A-term 2009 49 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
  • 49. Input and Output CS-3013 A-term 2009 50 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
  • 50. Input and Output CS-3013 A-term 2009 51 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 – …
  • 51. Input and Output CS-3013 A-term 2009 52 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)
  • 52. Input and Output CS-3013 A-term 2009 53 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
  • 53. Input and Output CS-3013 A-term 2009 54 A special kind of Device The Graphical User Interface • aka, the bitmapped display • In IBM language:– “all points addressable” • 300K pixels to 2M pixels • Each pixel may be separated written • Collectively, they create • Windows • Graphics • Images • Videos • Games
  • 54. Input and Output CS-3013 A-term 2009 55 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:– • D-A conversion (digital to analog video) • 60+ Hz refresh rate • “clock” interrupt at top of each frame Main Memory CPU Bitmap Digital to Analog
  • 55. Input and Output CS-3013 A-term 2009 56 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 C D E F … Bitmap bitblt Dog
  • 56. Input and Output CS-3013 A-term 2009 57 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 2p, for p-bit pixels Each entry (usually) 8 bits each for RGB
  • 57. Input and Output CS-3013 A-term 2009 58 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
  • 58. Input and Output CS-3013 A-term 2009 59 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 Called by window manager to redraw current contents
  • 59. Input and Output CS-3013 A-term 2009 60 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
  • 60. Input and Output CS-3013 A-term 2009 61 Modern GUI Devices ISA bridge IDE disk Main Memory CPU Level 2 cache Bridge Moni- tor Graphics card USB Key- board Mouse Ether- net SCSI Modem Sound card Printer PCI bus ISA bus AGP Port
  • 61. Input and Output CS-3013 A-term 2009 62 Modern GUI Devices (continued) • 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 CPU Bridge Moni- tor Graphics card
  • 62. Input and Output CS-3013 A-term 2009 63 Questions? Reading Assignment • Tanenbaum, Chapter 5