INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 principles of i/o...

52
5 INPUT/OUTPUT 5.1 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 TERMINALS 5.7 GRAPHICAL USER INTERFACES 5.8 NETWORK TERMINALS 5.9 POWER MANAGEMENT 5.10 RESEARCH ON INPUT/OUTPUT 5.11 SUMMARY

Transcript of INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 principles of i/o...

Page 1: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

5INPUT/OUTPUT

5.1 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 TERMINALS

5.7 GRAPHICAL USER INTERFACES

5.8 NETWORK TERMINALS

5.9 POWER MANAGEMENT

5.10 RESEARCH ON INPUT/OUTPUT

5.11 SUMMARY

Page 2: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

2222222222222222222222222222222222222222222222Device Data rate2222222222222222222222222222222222222222222222

Keyboard 10 bytes/sec2222222222222222222222222222222222222222222222Mouse 100 bytes/sec222222222222222222222222222222222222222222222256K modem 7 KB/sec2222222222222222222222222222222222222222222222Telephone channel 8 KB/sec2222222222222222222222222222222222222222222222Dual ISDN lines 16 KB/sec2222222222222222222222222222222222222222222222Laser printer 100 KB/sec2222222222222222222222222222222222222222222222Scanner 400 KB/sec2222222222222222222222222222222222222222222222Classic Ethernet 1.25 MB/sec2222222222222222222222222222222222222222222222USB (Universal Serial Bus) 1.5 MB/sec2222222222222222222222222222222222222222222222Digital camcorder 4 MB/sec2222222222222222222222222222222222222222222222IDE disk 5 MB/sec222222222222222222222222222222222222222222222240x CD-ROM 6 MB/sec2222222222222222222222222222222222222222222222Fast Ethernet 12.5 MB/sec2222222222222222222222222222222222222222222222ISA bus 16.7 MB/sec2222222222222222222222222222222222222222222222EIDE (ATA-2) disk 16.7 MB/sec2222222222222222222222222222222222222222222222FireWire (IEEE 1394) 50 MB/sec2222222222222222222222222222222222222222222222XGA Monitor 60 MB/sec2222222222222222222222222222222222222222222222SONET OC-12 network 78 MB/sec2222222222222222222222222222222222222222222222SCSI Ultra 2 disk 80 MB/sec2222222222222222222222222222222222222222222222Gigabit Ethernet 125 MB/sec2222222222222222222222222222222222222222222222Ultrium tape 320 MB/sec2222222222222222222222222222222222222222222222PCI bus 528 MB/sec2222222222222222222222222222222222222222222222Sun Gigaplane XB backplane 20 GB/sec222222222222222222222222222222222222222222222211

1111111111111111111111111111111

111111111111111111111111111111111

111111111111111111111111111111111

Fig. 5-1. Some typical device, network, and bus data rates.

Page 3: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Two address One address space Two address spaces

Memory

I/O ports

0xFFFF…

0

(a) (b) (c)

Fig. 5-2. (a) Separate I/O and memory space. (b) Memory-mappedI/O. (c) Hybrid.

Page 4: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

CPU Memory I/O

BusAll addresses (memory

and I/O) go here

CPU Memory I/O

CPU reads and writes of memorygo over this high-bandwidth bus

This memory port isto allow I/O devicesaccess to memory

(a) (b)

Fig. 5-3. (a) A single-bus architecture. (b) A dual-bus memoryarchitecture.

Page 5: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

CPUDMA

controllerDisk

controllerMain

memoryBuffer

1. CPUprogramsthe DMAcontroller

Interrupt whendone

2. DMA requeststransfer to memory 3. Data transferred

Bus

4. Ack

Address

Count

Control

Drive

Fig. 5-4. Operation of a DMA transfer.

Page 6: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

CPUInterruptcontroller3. CPU acks

interrupt

2. Controller issues interrupt

1. Device is finished

Disk

Keyboard

Printer

Clock

Bus

12

6

9 348

57

111210

Fig. 5-5. How an interrupt happens. The connections between thedevices and the interrupt controller actually use interrupt lines onthe bus rather than dedicated wires.

Page 7: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

String tobe printedUser

space

Kernelspace

ABCDEFGH

Printedpage

(a)

ABCDEFGH

ABCDEFGH

Printedpage

(b)

ANext

(c)

ABNext

Fig. 5-6. Steps in printing a string.

Page 8: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

copy3from3user(buffer, p, count); /* p is the kernel bufer */for (i = 0; i < count; i++) { /* loop on every character */

while (*printer3status3reg != READY) ;/* loop until ready */

*printer3data3register = p[i]; /* output one character */}return3to3user( );

Fig. 5-7. Writing a string to the printer using programmed I/O.

Page 9: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

copy3from3user(buffer, p, count); if (count == 0) {enable3 interrupts( ); unblock3user( );while (*printer3status3reg != READY) ; } else {

*printer3data3register = p[0]; *printer3data3register = p[i];scheduler( ); count = count − 1;

i = i + 1;}acknowledge3 interrupt( );return3from3 interrupt( );

(a) (b)

Fig. 5-8. Writing a string to the printer using interrupt-driven I/O.(a) Code executed when the print system call is made. (b) Inter-rupt service procedure.

Page 10: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

copy3from3user(buffer, p, count); acknowledge3 interrupt( );set3up3DMA3controller( ); unblock3user( );scheduler( ); return3from3 interrupt( );

(a) (b)

Fig. 5-9. Printing a string using DMA. (a) Code executed whenthe print system call is made. (b) Interrupt service procedure.

Page 11: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

User-level I/O software

Device-independent operating system software

Device drivers

Interrupt handlers

Hardware

Fig. 5-10. Layers of the I/O software system.

Page 12: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Userspace

Kernelspace

User process

Userprogram

Rest of the operating system

Printerdriver

Camcorderdriver

CD-ROMdriver

Printer controllerHardware

Devices

Camcorder controller CD-ROM controller

Fig. 5-11. Logical positioning of device drivers. In reality allcommunication between drivers and device controllers goes overthe bus.

Page 13: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

222222222222222222222222222222222222222222Uniform interfacing for device drivers222222222222222222222222222222222222222222Buffering222222222222222222222222222222222222222222Error reporting222222222222222222222222222222222222222222Allocating and releasing dedicated devices222222222222222222222222222222222222222222Providing a device-independent block size2222222222222222222222222222222222222222221111111

1111111

Fig. 5-12. Functions of the device-independent I/O software.

Page 14: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Operating system Operating system

Disk driver Printer driver Keyboard driver Disk driver Printer driver Keyboard driver

(a) (b)

Fig. 5-13. (a) Without a standard driver interface. (b) With a stan-dard driver interface.

Page 15: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

User process

Userspace

Kernelspace

2 2

1 1 3

Modem Modem Modem Modem

(a) (b) (c) (d)

Fig. 5-14. (a) Unbuffered input. (b) Buffering in user space.(c) Buffering in the kernel followed by copying to user space. (d)Double buffering in the kernel.

Page 16: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

2

1 5

4

3

User process

Network

Networkcontroller

Userspace

Kernelspace

Fig. 5-15. Networking may involve many copies of a packet.

Page 17: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

I/Orequest

LayerI/Oreply I/O functions

Make I/O call; format I/O; spooling

Naming, protection, blocking, buffering, allocation

Set up device registers; check status

Wake up driver when I/O completed

Perform I/O operation

User processes

Device-independentsoftware

Device drivers

Interrupt handlers

Hardware

Fig. 5-16. Layers of the I/O system and the main functions of eachlayer.

Page 18: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

2222222222222222222222222222222222222222222222222222222222222222222222222222222Parameter IBM 360-KB floppy disk WD 18300 hard disk2222222222222222222222222222222222222222222222222222222222222222222222222222222

Number of cylinders 40 106012222222222222222222222222222222222222222222222222222222222222222222222222222222Tracks per cylinder 2 122222222222222222222222222222222222222222222222222222222222222222222222222222222Sectors per track 9 281 (avg)2222222222222222222222222222222222222222222222222222222222222222222222222222222Sectors per disk 720 357420002222222222222222222222222222222222222222222222222222222222222222222222222222222Bytes per sector 512 5122222222222222222222222222222222222222222222222222222222222222222222222222222222Disk capacity 360 KB 18.3 GB2222222222222222222222222222222222222222222222222222222222222222222222222222222Seek time (adjacent cylinders) 6 msec 0.8 msec2222222222222222222222222222222222222222222222222222222222222222222222222222222Seek time (average case) 77 msec 6.9 msec2222222222222222222222222222222222222222222222222222222222222222222222222222222Rotation time 200 msec 8.33 msec2222222222222222222222222222222222222222222222222222222222222222222222222222222Motor stop/start time 250 msec 20 sec2222222222222222222222222222222222222222222222222222222222222222222222222222222Time to transfer 1 sector 22 msec 17 µsec222222222222222222222222222222222222222222222222222222222222222222222222222222211111111111111111

11111111111111111

11111111111111111

11111111111111111

Fig. 5-17. Disk parameters for the original IBM PC 360-KBfloppy disk and a Western Digital WD 18300 hard disk.

Page 19: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

0 1

23

45

67891011

1213

1415

0 12

3

45

67

89

1011

1213

1415161718

19

2021

2223

2425

2627

2829

30 31 01

23

45

67

89

1011

121314

15

1617

1819

2021

2223

24

Fig. 5-18. (a) Physical geometry of a disk with two zones.(b) A possible virtual geometry for this disk.

Page 20: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

P16-19 Strip 16 Strip 17 Strip 18

Strip 12 P12-15 Strip 13 Strip 14

(a)

(b)

(c)

(d)

(e)

(f)

RAID level 0

Strip 8

Strip 4

Strip 0

Strip 9

Strip 5

Strip 1

Strip 10

Strip 6

Strip 2

RAID level 2

Strip 11

Strip 7

Strip 3

Strip 8

Strip 4

Strip 0

Strip 9

Strip 5

Strip 1

Strip 10

Strip 6

Strip 2

Strip 11

Strip 7

Strip 3

Strip 8

Strip 4

Strip 0

Strip 9

Strip 5

Strip 1

Strip 10

Strip 6

Strip 2

Strip 11

Strip 7

Strip 3

Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6

RAIDlevel 1

Bit 7

Bit 1 Bit 2 Bit 3 Bit 4

Strip 8

Strip 4

Strip 0

Strip 9

Strip 5

Strip 1

Strip 10

Strip 6

Strip 2

Strip 11

Strip 7

Strip 3

Strip 8

Strip 4

Strip 0

Strip 9

Strip 5

Strip 1

P8-11

Strip 6

Strip 2

Strip 10

P4-7

Strip 3

Strip 19

Strip 15

RAID level 3

RAID level 4

RAID level 5

Parity

P8-11

P4-7

P0-3

Strip 11

Strip 7

P0-3

Fig. 5-19. RAID levels 0 through 5. Backup and parity drives areshown shaded.

Page 21: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Spiral groove

Pit

Land

2K block ofuser data

Fig. 5-20. Recording structure of a compact disc or CD-ROM.

Page 22: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Preamble

Bytes 16

Data

2048 288

ECCMode 1sector

(2352 bytes)

Frames of 588 bits,each containing24 data bytes

Symbols of14 bits each

42 Symbols make 1 frame

98 Frames make 1 sector

Fig. 5-21. Logical data layout on a CD-ROM.

Page 23: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Printed label

Protective lacquerReflective gold layer

layer

Substrate

Directionof motion Lens

Photodetector Prism

Infraredlaserdiode

Dark spot in thedye layer burnedby laser whenwriting1.2 mm

Dye

Polycarbonate

Fig. 5-22. Cross section of a CD-R disk and laser (not to scale).A silver CD-ROM has a similar structure, except without the dyelayer and with a pitted aluminum layer instead of a gold layer.

Page 24: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Polycarbonate substrate 1

Polycarbonate substrate 2

Semireflectivelayer

Semireflectivelayer

Aluminumreflector

Aluminumreflector

0.6 mmSingle-sided

disk

0.6 mmSingle-sided

disk

�������

Adhesive layer

Fig. 5-23. A double-sided, dual layer DVD disk.

Page 25: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Preamble Data ECC

Fig. 5-24. A disk sector.

Page 26: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

0 1 23

45

67

89

10111213141516171819

2021

2223

2425

2627

2829 30 31

29 30 310

12

34

56

78

91011121314151617

1819

2021

2223

24

2526 27 28

26 27 28 29

3031

01

23

45

678910111213

1415

1617

1819

2021

2223 24 25

23 24 2526

2728

2930

310

12

34

56789

10

1112

1314

1516

1718

1920

21 22

20 2122

23

2425

2627

2829

3031

01

23456

7

89

1011

1213

1415

1617

18 19

17 1819

20

2122

2324

2526

2728

2930

310123

4

5

67

89

1011

1213

1415 16 Direction of disk

rotation

Fig. 5-25. An illustration of cylinder skew.

Page 27: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

(a)

07

34

1

2

6

5

(b)

07

52

4

1

3

6

(c)

05

14

3

6

2

7

Fig. 5-26. (a) No interleaving. (b) Single interleaving. (c) Doubleinterleaving.

Page 28: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Initialposition

Pendingrequests

Sequence of seeks

Cylinder

X X X X X X X

0 5 10 15 20 25 30 35

Tim

e

Fig. 5-27. Shortest Seek First (SSF) disk scheduling algorithm.

Page 29: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Initialposition

Cylinder

X X X X X X X

0 5 10 15 20 25 30 35

Tim

e Sequence of seeks

Fig. 5-28. The elevator algorithm for scheduling disk requests.

Page 30: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Sparesectors Bad

sector

0 1 23

456

89

1011

1213

141516171819

2021

2223242526

2728

29

(a)

Replacementsector

0 1 23

456

89

1011

1213

141516171819

2021

2223242526

2728

29 7

(b)

0 1 23

456

78

910

1112

131415161718

1920

21222324

2526

272829

(c)

Fig. 5-29. (a) A disk track with a bad sector. (b) Substituting aspare for the bad sector. (c) Shifting all the sectors to bypass thebad one.

Page 31: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Old

1

Old

2Disk

1

Old

2Disk

New

1

Old

2Disk

New

1 2Disk

New

1

New

2Disk

Crash Crash Crash Crash Crash(a) (b) (c) (d) (e)

ECCerror

Fig. 5-30. Analysis of the influence of crashes on stable writes.

Page 32: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Crystal oscillator

Counter is decremented at each pulse

Holding register is used to load the counter

Fig. 5-31. A programmable clock.

Page 33: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

(a) (b) (c)

Time of day in ticks

Time of dayin seconds

Counter in ticks

System boot timein seconds

Number of ticksin current second

64 bits 32 bits 32 bits

Fig. 5-32. Three ways to maintain the time of day.

Page 34: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Current time Next signal

Clockheader

3 4 6 2 1 X

4200 3

Fig. 5-33. Simulating multiple timers with a single clock.

Page 35: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

CPU MemoryRS-232interface

UART

Computer

Transmit

Recieve

Bus

Fig. 5-34. An RS-232 terminal communicates with a computerover a communication line, one bit at a time.

Page 36: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

(a) (b)

Terminaldata structure

Terminaldata structure

TerminalTerminalCentral

buffer pool

0 Bufferarea for

terminal 0

1 Bufferarea for

terminal 1

0

1

2

3

Fig. 5-35. (a) Central buffer pool. (b) Dedicated buffer for eachterminal.

Page 37: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

2222222222222222222222222222222222222222222222222222222222Character POSIX name Comment2222222222222222222222222222222222222222222222222222222222CTRL-H ERASE Backspace one character2222222222222222222222222222222222222222222222222222222222CTRL-U KILL Erase entire line being typed2222222222222222222222222222222222222222222222222222222222CTRL-V LNEXT Interpret next character literally2222222222222222222222222222222222222222222222222222222222CTRL-S STOP Stop output2222222222222222222222222222222222222222222222222222222222CTRL-Q START Start output2222222222222222222222222222222222222222222222222222222222DEL INTR Interrupt process (SIGINT)2222222222222222222222222222222222222222222222222222222222CTRL-\ QUIT Force core dump (SIGQUIT)2222222222222222222222222222222222222222222222222222222222CTRL-D EOF End of file2222222222222222222222222222222222222222222222222222222222CTRL-M CR Carriage return (unchangeable)2222222222222222222222222222222222222222222222222222222222CTRL-J NL Linefeed (unchangeable)22222222222222222222222222222222222222222222222222222222221

11111111111111

111111111111111

111111111111111

111111111111111

Fig. 5-36. Characters that are handled specially in canonical mode.

Page 38: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

22222222222222222222222222222222222222222222222222222222222222222222222222222Escape sequence Meaning22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ n A Move up n lines22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ n B Move down n lines22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ n C Move right n spaces22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ n D Move left n spaces22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ m ; n H Move cursor to (m,n)22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ s J Clear screen from cursor (0 to end, 1 from start, 2 all)22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ s K Clear line from cursor (0 to end, 1 from start, 2 all)22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ n L Insert n lines at cursor22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ n M Delete n lines at cursor22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ n P Delete n chars at cursor22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ n @ Insert n chars at cursor22222222222222222222222222222222222222222222222222222222222222222222222222222ESC [ n m Enable rendition n (0=normal, 4=bold, 5=blinking, 7=reverse)22222222222222222222222222222222222222222222222222222222222222222222222222222ESC M Scroll the screen backward if the cursor is on the top line2222222222222222222222222222222222222222222222222222222222222222222222222222211

111111111111111111

11111111111111111111

11111111111111111111

Fig. 5-37. The ANSI escape sequences accepted by the terminaldriver on output. ESC denotes the ASCII escape character (0x1B),and n, m, and s are optional numeric parameters.

Page 39: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

CPU MemoryGraphicsadapter Video

controllerVideoRAM

Analogvideo signal

Parallel port

Bus

Fig. 5-38. With memory-mapped displays, the driver writesdirectly into the display’s video RAM.

Page 40: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

… × 3 × 2 × 1 × 0

160 characters

(a)

Video RAM

0×B00A0

RAM address

0×B0000

80 characters

(a)

Screen

A B C D0 1 2 3

25 lines

… × D × C × B × A

Fig. 5-39. (a) A video RAM image for a simple monochromedisplay in character mode. (b) The corresponding screen. The ×sare attribute bytes.

Page 41: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Thumb

Title bar

File Edit View Tools Options Help

Client area

(200, 100)

(0, 0)

(0, 767)

Menu bar

Tool bar

Window

Scroll bar

(1023, 767)

(1023, 0)

12

6

9 348

57

111210

Fig. 5-40. A sample window located at (200, 100) on an XGAdisplay.

Page 42: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

#include <windows.h>

int WINAPI WinMain(HINSTANCE h, HINSTANCE, hprev, char *szCmd, int iCmdShow){

WNDCLASS wndclass; /* class object for this window */MSG msg; /* incoming messages are stored here */HWND hwnd; /* handle (pointer) to the window object */

/* Initialize wndclass */wndclass.lpfnWndProc = WndProc; /* tells which procedure to call */wndclass.lpszClassName = "Program name"; /* Text for title bar */wndclass.hIcon = LoadIcon(NULL, IDI3APPLICATION);/* load program icon */wndclass.hCursor = LoadCursor(NULL, IDC3ARROW); /* load mouse cursor */

RegisterClass(&wndclass); /* tell Windows about wndclass */hwnd = CreateWindow ( ... ) /* allocate storage for the window */ShowWindow(hwnd, iCmdShow); /* display the window on the screen */UpdateWindow(hwnd); /* tell the window to paint itself */

while (GetMessage(&msg, NULL, 0, 0)) { /* get message from queue */TranslateMessage(&msg); /* translate the message */DispatchMessage(&msg); /* send msg to the appropriate procedure */

}return(msg.wParam);

}

long CALLBACK WndProc(HWND hwnd, UINT message, UINT wParam, long lParam){

/* Declarations go here. */

switch (message) {case WM3CREATE: ... ; return ... ; /* create window */case WM3PAINT: ... ; return ... ; /* repaint contents of window */case WM3DESTROY: ... ; return ... ; /* destroy window */

}return(DefWindowProc(hwnd, message, wParam, lParam));/* default */

}

Fig. 5-41. A skeleton of a Windows main program.

Page 43: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

0

0

1

2

3

4

5

6

7

1 2 3 4 5 6 7 8

Fig. 5-42. An example rectangle drawn using Rectangle. Each boxrepresents one pixel.

Page 44: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

0 2 4 6 802468

0 2 4 6 802468

Window 1

Window 2

0 2 4 6 802468

0 2 4 6 802468

Window 1

Window 2

(a) (b)

Fig. 5-43. Copying bitmaps using BitBlt. (a) Before. (b) After.

Page 45: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

20 pt:

53 pt:

81 pt:

Fig. 5-44. Some examples of character outlines at different pointsizes.

Page 46: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Remote host

Windowmanager

Applicationprogram

Motif

Intrinsics

Xlib

X client

UNIX

Hardware

X server

UNIX

Hardware

X terminal

Window

Userspace

Kernelspace

X protocol

Network

Fig. 5-45. Clients and servers in the M.I.T. X Window System.

Page 47: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

#include <X11/Xlib.h>#include <X11/Xutil.h>

main(int argc, char *argv[]){

Display disp; /* server identifier */Window win; /* window identifier */GC gc; /* graphic context identifier */XEvent event; /* storage for one event */int running = 1;

disp = XOpenDisplay("display3name"); /* connect to the X server */win = XCreateSimpleWindow(disp, ... ); /* allocate memory for new window */XSetStandardProperties(disp, ...); /* announces window to window mgr */gc = XCreateGC(disp, win, 0, 0); /* create graphic context */XSelectInput(disp, win, ButtonPressMask | KeyPressMask | ExposureMask);XMapRaised(disp, win); /* display window; send Expose event */

while (running) {XNextEvent(disp, &event); /* get next event */switch (event.type) {

case Expose: ...; break; /* repaint window */case ButtonPress: ...; break; /* process mouse click */case Keypress: ...; break; /* process keyboard input */

}}

XFreeGC(disp, gc); /* release graphic context */XDestroyWindow(disp, win); /* deallocate window’s memory space */XCloseDisplay(disp); /* tear down network connection */

}

Fig. 5-46. A skeleton of an X Window application program.

Page 48: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Computer center

Dedicatednetwork

connection

Switch

Disks

Thin clientServer(s)

Fig. 5-47. The architecture of the SLIM terminal system.

Page 49: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

222222222222222222222222222222222222222222222222222222222222222222222Message Meaning222222222222222222222222222222222222222222222222222222222222222222222SET Update a rectangle with new pixels222222222222222222222222222222222222222222222222222222222222222222222FILL Fill a rectangle with one pixel value222222222222222222222222222222222222222222222222222222222222222222222BITMAP Expand a bitmap to fill a rectangle222222222222222222222222222222222222222222222222222222222222222222222COPY Copy a rectangle from one part of the frame buffer to another222222222222222222222222222222222222222222222222222222222222222222222CSCS Convert a rectangle from television color (YUV) to RGB2222222222222222222222222222222222222222222222222222222222222222222221

1111111

11111111

11111111

Fig. 5-48. Messages used in the SLIM protocol from the server tothe terminals.

Page 50: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

2222222222222222222222222222222222222222222222222222Device Li et al. (1994) Lorch and Smith (1998)2222222222222222222222222222222222222222222222222222

Display 68% 39%2222222222222222222222222222222222222222222222222222CPU 12% 18%2222222222222222222222222222222222222222222222222222Hard disk 20% 12%2222222222222222222222222222222222222222222222222222Modem 6%2222222222222222222222222222222222222222222222222222Sound 2%2222222222222222222222222222222222222222222222222222Memory 0.5% 1%2222222222222222222222222222222222222222222222222222Other 22%22222222222222222222222222222222222222222222222222221

1111111111

11111111111

11111111111

11111111111

Fig. 5-49. Power consumption of various parts of a laptop com-puter.

Page 51: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

Window 1

Window 2

Window 1

Window 2

Zone

(a) (b)

Fig. 5-50. The use of zones for backlighting the display. (a) Whenwindow 2 is selected it is not moved. (b) When window 1 isselected, it moves to reduce the number of zones illuminated.

Page 52: INPUT/OUTPUT - vidyakodgirwar.files.wordpress.com€¦ · input/output 5.1 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

1.00

0.75

0.50

0.25

00 T/2 T

Time

Pow

er

(a)

1.00

0.75

0.50

0.25

00 T/2 T

Time

Pow

er

(b)

Fig. 5-51. (a) Running at full clock speed. (b) Cutting voltage bytwo cuts clock speed by two and power consumption by four.