Chapter 5: I/O Systems. Chapter 5 2 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Input/Output Principles of I/O hardware.

Slides:



Advertisements
Similar presentations
Chapter 5 Input/Output 5.1 Principles of I/O hardware
Advertisements

Mehdi Naghavi Spring 1386 Operating Systems Mehdi Naghavi Spring 1386.
Disk Scheduling Based on the slides supporting the text 1.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Disks and RAID.
Avishai Wool lecture Introduction to Systems Programming Lecture 8 Input-Output.
Part 5 (Stallings) Input/Output 5.1 Principles of I/O hardware
1 Input/Output Chapter Principles of I/O hardware 5.2 Principles of I/O software 5.3 I/O software layers 5.4 Disks 5.5 Clocks 5.6 Character-oriented.
EEE 435 Principles of Operating Systems Principles and Structure of I/O Software (Modern Operating Systems 5.2 & 5.3) 5/22/20151Dr Alain Beaulieu.
Input/Output Management and Disk Scheduling
Lecture 7b I/O. I/O devices  Device (mechanical hardware)  Device controller (electrical hardware)  Device driver (software)
Operating Systems Input/Output Devices (Ch , 12.7; , 13.7)
Based on the slides supporting the text
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Chapter 5: I/O Systems.
Chapter 5 Input/Output 5.1 Principles of I/O hardware
Input/Output The messiest part of O.S.
Disks.
Device Management.
1 Disk Scheduling Chapter 14 Based on the slides supporting the text.
Disks CS 416: Operating Systems Design, Spring 2001 Department of Computer Science Rutgers University
CS 342 – Operating Systems Spring 2003 © Ibrahim Korpeoglu Bilkent University1 Input/Output – 3 I/O Software CS 342 – Operating Systems Ibrahim Korpeoglu.
04/21/2004CSCI 315 Operating Systems Design1 Disk Scheduling.
1 Input/Output Chapter 3 TOPICS Principles of I/O hardware Principles of I/O software I/O software layers Disks Clocks Reference: Operating Systems Design.
1 Today I/O Systems Storage. 2 I/O Devices Many different kinds of I/O devices Software that controls them: device drivers.
12.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 12: Mass-Storage Systems.
Disk and I/O Management
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
1 Input/Output. 2 Principles of I/O Hardware Some typical device, network, and data base rates.
Device Management. So far… We have covered CPU and memory management Computing is not interesting without I/Os Device management: the OS component that.
1 Recitation 8 Disk & File System. 2 Disk Scheduling Disks are at least four orders of magnitude slower than main memory –The performance of disk I/O.
IO and RAID.
Mehdi Naghavi Spring 1386 Operating Systems Mehdi Naghavi Spring 1386.
1 I/O and Filesystems. 2 How to provide interfaces Rough reading guide (no exam guarantee): Tanenbaum Ch. 5.1 – 5.5 & Silberschatz Ch. 13 & ,
Disk Structure Disk drives are addressed as large one- dimensional arrays of logical blocks, where the logical block is the smallest unit of transfer.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 13+14: I/O Systems and Mass- Storage Structure I/O Hardware Application I/O.
Cpr E 308 Input/Output Recall: OS must abstract out all the details of specific I/O devices Today –Block and Character Devices –Hardware Issues – Programmed.
ITEC 502 컴퓨터 시스템 및 실습 Chapter 8-1: I/O Management Mi-Jung Choi DPNM Lab. Dept. of CSE, POSTECH.
Segmentation & O/S Input/Output Chapter 4 & 5 Tuesday, April 3, 2007.
Sistem Operasi IKH311 Masukan Luaran (Input/Output)
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
CS 342 – Operating Systems Spring 2003 © Ibrahim Korpeoglu Bilkent University1 Input/Output CS 342 – Operating Systems Ibrahim Korpeoglu Bilkent University.
CE Operating Systems Lecture 20 Disk I/O. Overview of lecture In this lecture we will look at: Disk Structure Disk Scheduling Disk Management Swap-Space.
I/O Management and Disk Structure Introduction to Operating Systems: Module 14.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 14: Mass-Storage Systems Disk Structure Disk Scheduling Disk Management Swap-Space.
Chapter 5 Input/Output 5.1 Principles of I/O hardware
1.  Disk Structure Disk Structure  Disk Scheduling Disk Scheduling  FCFS FCFS  SSTF SSTF  SCAN SCAN  C-SCAN C-SCAN  C-LOOK C-LOOK  Selecting a.
Chapter 14: Mass-Storage Systems Disk Structure. Disk Scheduling. RAID.
Input/Output Chapter 5 Tanenbaum & Bo,Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Device Management Mark Stanovich Operating Systems COP 4610.
Chapter 9 I/O System. 2 Input/Output System I/O Major objectives are: Take an application I/O request and send it to the physical device. Then, take whatever.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
Part IV I/O System Chapter 12: Mass Storage Structure.
Device Management Andy Wang Operating Systems COP 4610 / CGS 5765.
1 Chapter 11 I/O Management and Disk Scheduling Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and.
I/O Management.
Sarah Diesburg Operating Systems CS 3430
Multiple Platters.
Disks and RAID.
Operating System I/O System Monday, August 11, 2008.
CS703 - Advanced Operating Systems
Chapter 14 Based on the slides supporting the text
Operating Systems Chapter 5: Input/Output Management
CS703 - Advanced Operating Systems
Overview Continuation from Monday (File system implementation)
Clock hardware Chapter 5 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)
Disks and scheduling algorithms
Chapter 5: I/O Systems.
Disks Magnetic (hard) Disk arrays are used for reliable storage (RAID)
Andy Wang Operating Systems COP 4610 / CGS 5765
Presentation transcript:

Chapter 5: I/O Systems

Chapter 5 2 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Input/Output Principles of I/O hardware Principles of I/O software I/O software layers Disks Clocks Character-oriented terminals Graphical user interfaces Network terminals Power management

Chapter 5 3 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) How fast is I/O hardware? DeviceData rate Keyboard10 bytes/sec Mouse100 bytes/sec 56K modem7 KB/sec Printer / scanner200 KB/sec USB1.5 MB/sec Digital camcorder4 MB/sec Fast Ethernet12.5 MB/sec Hard drive20 MB/sec FireWire (IEEE 1394)50 MB/sec XGA monitor60 MB/sec PCI bus500 MB/sec

Chapter 5 4 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Device controllers I/O devices have components Mechanical component Electronic component Electronic component controls the device May be able to handle multiple devices May be more than one controller per mechanical component (example: hard drive) Controller's tasks Convert serial bit stream to block of bytes Perform error correction as necessary Make available to main memory

Chapter 5 5 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Memory-Mapped I/O Separate I/O & memory space 0xFFF… 0 Memory I/O ports Memory-mapped I/OHybrid: both memory-mapped & separate spaces

Chapter 5 6 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) How is memory-mapped I/O done? Single-bus All memory accesses go over a shared bus I/O and RAM accesses compete for bandwidth Dual-bus RAM access over high-speed bus I/O access over lower-speed bus Less competition More hardware (more expensive…) CPUMemoryI/O CPUMemoryI/O This port allows I/O devices access into memory

Chapter 5 7 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Direct Memory Access (DMA) operation

Chapter 5 8 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Hardware’s view of interrupts Bus

Chapter 5 9 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) I/O software: goals Device independence Programs can access any I/O device No need to specify device in advance Uniform naming Name of a file or device is a string or an integer Doesn’t depend on the machine (underlying hardware) Error handling Done as close to the hardware as possible Isolate higher-level software Synchronous vs. asynchronous transfers Blocked transfers vs. interrupt-driven Buffering Data coming off a device cannot be stored in final destination Sharable vs. dedicated devices

Chapter 5 10 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Programmed I/O: printing a page Printed page ABCD EFGH Kernel User A Printed page ABCD EFGH AB Printed page ABCD EFGH

Chapter 5 11 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Code for programmed I/O copy_from_user (buffer, p, count); // copy into kernel buffer for (j = 0; j < count; j++) { // loop for each char while (*printer_status_reg != READY) ; // wait for printer to be ready *printer_data_reg = p[j]; // output a single character } return_to_user();

Chapter 5 12 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Interrupt-driven I/O copy_from_user (buffer, p, count); j = 0; enable_interrupts(); while (*printer_status_reg != READY) ; *printer_data_reg = p[0]; scheduler(); // and block user if (count == 0) { unblock_user(); } else { *printer_data_reg = p[j]; count--; j++; } acknowledge_interrupt(); return_from_interrupt(); Code run by system call Code run at interrupt time

Chapter 5 13 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) I/O using DMA copy_from_user (buffer, p, count); set_up_DMA_controller(); scheduler(); // and block user acknowledge_interrupt(); unblock_user(); return_from_interrupt(); Code run by system call Code run at interrupt time

Chapter 5 14 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Layers of I/O software User-level I/O software & libraries Device-independent OS software Device drivers Interrupt handlers Hardware Operating system (kernel) User

Chapter 5 15 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Interrupt handlers Interrupt handlers are best hidden Driver starts an I/O operation and blocks Interrupt notifies of completion Interrupt procedure does its task Then unblocks driver that started it Perform minimal actions at interrupt time Some of the functionality can be done by the driver after it is unblocked Interrupt handler must Save regs not already saved by interrupt hardware Set up context for interrupt service procedure DLXOS: intrhandler (in dlxos.s)

Chapter 5 16 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) What happens on an interrupt Set up stack for interrupt service procedure Ack interrupt controller, reenable interrupts Copy registers from where saved Run service procedure (optional) Pick a new process to run next Set up MMU context for process to run next Load new process' registers Start running the new process

Chapter 5 17 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Device drivers Device drivers go between device controllers and rest of OS Drivers standardize interface to widely varied devices Device drivers communicate with controllers over bus Controllers communicate with devices themselves User space Kernel space User program Keyboard driver Disk driver Rest of the OS Keyboard controller Disk controller

Chapter 5 18 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Device-independent I/O software Device-independent I/O software provides common “library” routines for I/O software Helps drivers maintain a standard appearance to the rest of the OS Uniform interface for many device drivers for Buffering Error reporting Allocating and releasing dedicated devices Suspending and resuming processes Common resource pool Device-independent block size (keep track of blocks) Other device driver resources

Chapter 5 19 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Why a standard driver interface? Non-standard driver interfacesStandard driver interfaces

Chapter 5 20 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Buffering device input User space Kernel space User space Kernel space User space Kernel space User space Kernel space Unbuffered input Buffering in user space Buffer in kernel Copy to user space Double buffer in kernel

Chapter 5 21 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Anatomy of an I/O request

Chapter 5 22 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Disk drive structure sector cylinder platter spindle track head actuator surfaces Data stored on surfaces Up to two surfaces per platter One or more platters per disk Data in concentric tracks Tracks broken into sectors 256B-1KB per sector Cylinder: corresponding tracks on all surfaces Data read and written by heads Actuator moves heads Heads move in unison

Chapter 5 23 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Disk drive specifics IBM 360KB floppyWD 18GB HD Cylinders Tracks per cylinder212 Sectors per track9281 (average) Sectors per disk Bytes per sector512 Capacity360 KB18.3 GB Seek time (minimum)6 ms0.8 ms Seek time (average)77 ms6.9 ms Rotation time200 ms8.33 ms Spinup time250 ms20 sec Sector transfer time22 ms 17  sec

Chapter 5 24 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Disk “zones” Outside tracks are longer than inside tracks Two options Bits are “bigger” More bits (transfer faster) Modern hard drives use second option More data on outer tracks Disk divided into “zones” Constant sectors per track in each zone 8–20 (or more) zones on a disk

Chapter 5 25 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Disk “addressing” Millions of sectors on the disk must be labeled Two possibilities Cylinder/track/sector Sequential numbering Modern drives use sequential numbers Disks map sequential numbers into specific location Mapping may be modified by the disk Remap bad sectors Optimize performance Hide the exact geometry, making life simpler for the OS

Chapter 5 26 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Building a better “disk” Problem: CPU performance has been increasing exponentially, but disk performance hasn’t Disks are limited by mechanics Problem: disks aren’t all that reliable Solution: distribute data across disks, and use some of the space to improve reliability Data transferred in parallel Data stored across drives (striping) Parity on an “extra” drive for reliability

Chapter 5 27 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) RAIDs, RAIDs, and more RAIDs stripe Stripe RAID 0 (Redudant Array of Inexpensive Disks RAID 1 (Mirrored copies) RAID 4 (Striped with parity: any disk failure can be masked, but bottleneck for parity disk) RAID 5 (Parity rotates through disks: how do you update blocks?)

Chapter 5 28 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) CD-ROM recording CD-ROM has data in a spiral Hard drives have concentric circles of data One continuous track: just like vinyl records! Pits & lands “simulated” with heat-sensitive material on CD-Rs and CD-RWs

Chapter 5 29 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Structure of a disk sector Preamble contains information about the sector Sector number & location information Data is usually 256, 512, or 1024 bytes ECC (Error Correcting Code) is used to detect & correct minor errors in the data PreambleDataECC

Chapter 5 30 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Sector layout on disk Sectors numbered sequentially on each track Numbering starts in different place on each track: sector skew Allows time for switching head from track to track All done to minimize delay in sequential transfers

Chapter 5 31 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Sector interleaving On older systems, the CPU was slow => time elapsed between reading consecutive sectors Solution: leave space between consecutively numbered sectors This isn’t done much these days… No interleavingSkipping 1 sectorSkipping 2 sectors

Chapter 5 32 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) What’s in a disk request? Time required to read or write a disk block determined by 3 factors Seek time Rotational delay Average delay = 1/2 rotation time Example: rotate in 10ms, average rotation delay = 5ms Actual transfer time Transfer time = time to rotate over sector Example: rotate in 10ms, 200 sectors/track => 10/200 ms = 0.05ms transfer time per sector Seek time dominates, with rotation time close Error checking is done by controllers

Chapter 5 33 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Disk request scheduling Goal: use disk hardware efficiently Bandwidth as high as possible Disk transferring as often as possible (and not seeking) We want to Minimize disk seek time (moving from track to track) Minimize rotational latency (waiting for disk to rotate the desired sector under the read/write head) Calculate disk bandwidth by Total bytes transferred / time to service request Seek time & rotational latency are overhead (no data is transferred), and reduce disk bandwidth Minimize seek time & rotational latency by Using algorithms to find a good sequence for servicing requests Placing blocks of a given file “near” each other

Chapter 5 34 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Disk scheduling algorithms Schedule disk requests to minimize disk seek time Seek time increases as distance increases (though not linearly) Minimize seek distance -> minimize seek time Disk seek algorithm examples assume a request queue & head position (disk has 200 cylinders) Queue = 100, 175, 51, 133, 8, 140, 73, 77 Head position = read/write head position disk requests (cylinder in which block resides) Outside edgeInside edge

Chapter 5 35 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) First-Come-First Served (FCFS) Requests serviced in the order in which they arrived Easy to implement! May involve lots of unnecessary seek distance Seek order = 100, 175, 51, 133, 8, 140, 73, 77 Seek distance = (100-63) + ( ) + (175-51) + (133-51) + (133-8) + (140-8) + (140-73) + (77-73) = 646 cylinders read/write head start

Chapter 5 36 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Shortest Seek Time First (SSTF) Service the request with the shortest seek time from the current head position Form of SJF scheduling May starve some requests Seek order = 73, 77, 51, 8, 100, 133, 140, 175 Seek distance = = 250 cylinders read/write head start

Chapter 5 37 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) SCAN (elevator algorithm) Disk arm starts at one end of the disk and moves towards the other end, servicing requests as it goes Reverses direction when it gets to end of the disk Also known as elevator algorithm Seek order = 51, 8, 0, 73, 77, 100, 133, 140, 175 Seek distance = = 238 cyls read/write head start

Chapter 5 38 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) C-SCAN Identical to SCAN, except head returns to cylinder 0 when it reaches the end of the disk Treats cylinder list as a circular list that wraps around the disk Waiting time is more uniform for cylinders near the edge of the disk Seek order = 73, 77, 100, 133, 140, 175, 199, 0, 8, 51 Distance = = 386 cyls read/write head start

Chapter 5 39 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) C-LOOK Identical to C-SCAN, except head only travels as far as the last request in each direction Saves seek time from last sector to end of disk Seek order = 73, 77, 100, 133, 140, 175, 8, 51 Distance = = 322 cylinders read/write head start

Chapter 5 40 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) How to pick a disk scheduling algorithm SSTF is easy to implement and works OK if there aren’t too many disk requests in the queue SCAN-type algorithms perform better for systems under heavy load More fair than SSTF Use LOOK rather than SCAN algorithms to save time Long seeks aren’t too expensive, so choose C-LOOK over LOOK to make response time more even Disk request scheduling interacts with algorithms for allocating blocks to files Make scheduling algorithm modular: allow it to be changed without changing the file system  Use SSTF for lightly loaded systems  Use C-LOOK for heavily loaded systems

Chapter 5 41 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) When good disks go bad… Disks have defects In 3M+ sectors, this isn’t surprising! ECC helps with errors, but sometimes this isn’t enough Disks keep spare sectors (normally unused) and remap bad sectors into these spares If there’s time, the whole track could be reordered…

Chapter 5 42 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Clock hardware

Chapter 5 43 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Maintaining time of day

Chapter 5 44 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Doing multiple timers with a single clock

Chapter 5 45 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Soft timers A second clock may be available for timer interrupts Specified by applications No problems if interrupt frequency is low Soft timers avoid interrupts Kernel checks for soft timer expiration before it exits to user mode How well this works depends on rate of kernel entries

Chapter 5 46 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Character-oriented terminals An RS-232 terminal communicates with computer 1 bit at a time Called a serial line – bits go out in series, 1 bit at a time Windows uses COM1 and COM2 ports, first to serial lines Computer and terminal are completely independent

Chapter 5 47 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Buffering for input

Chapter 5 48 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Special terminal characters

Chapter 5 49 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Special output characters

Chapter 5 50 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Driver writes directly into display's video RAM Parallel port Memory-mapped display

Chapter 5 51 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) A video RAM image simple monochrome display character mode Corresponding screen the x s are attribute bytes How characters are displayed

Chapter 5 52 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Input software Keyboard driver delivers a number Driver converts to characters Uses a ASCII table Exceptions, adaptations needed for other languages Many OS provide for loadable keymaps or code pages Example: characters such as ç

Chapter 5 53 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Output software for Windows Sample window located at (200,100) on XGA display

Chapter 5 54 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Skeleton of a Windows program

Chapter 5 55 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Skeleton of a Windows program (cont’d)

Chapter 5 56 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Character outlines at different point sizes

Chapter 5 57 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) X Windows

Chapter 5 58 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Architecture of the SLIM terminal system

Chapter 5 59 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) The SLIM Network Terminal

Chapter 5 60 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Power Management (1) Power consumption of various parts of a laptop computer

Chapter 5 61 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Power management (2) The use of zones for backlighting the display

Chapter 5 62 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Power Management (3) Running at full clock speed Cutting voltage by two cuts clock speed by two, cuts power by four

Chapter 5 63 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Power Management (4) Telling the programs to use less energy may mean poorer user experience Examples change from color output to black and white speech recognition reduces vocabulary less resolution or detail in an image