Verified Trusted Call Girls Ambattur Chennai ✔✔7427069034 Independent Chenna...
5120224.ppt
1. 1
Input/Output
Chapter 5
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
2. 2
I/O Device
• I/O devices can be divided into two categories:
– A block devices is one that stores information in
fixed-size blocks.
– A character device delivers or accepts a stream of
characters, without regard to any block structure.
• Some devices do not fit in: clocks, memory-
mapped screens.
3. 3
Principles of I/O Hardware
Some typical device, network, and data base rates
4. 4
Device Controllers
• I/O devices have components:
– mechanical component
– electronic component
• The electronic component is the device controller or
adapter.
– may be able to handle multiple devices
– On PCs, it often takes the form of a printed circuit card
that can be inserted into an expansion slot.
• Controller's tasks
– convert serial bit stream to block of bytes
– perform error correction as necessary
– make available to main memory
5. 5
Memory-Mapped I/O
• Each controller ha a few registers that are used for
communicating with the CPU. The operating system
can command the device by writing into these
registers and learn the device’s state by reading from
these registers.
• Many devices have a data buffer that the operating
system can read and write. Two approaches exist:
– Each control register is assigned an I/O port number.
– All the control registers are mapped into the memory space.
This is called memory-mapped I/O.
7. 7
Memory-Mapped I/O
• Advantages of memory-mapped I/O:
– An I/O device driver can be written entirely in C
– No special protection mechanism is needed to keep
user process from performing I/O.
– Every instruction that can reference memory can
also reference control register.
• Disadvantages of memory-mapped I/O:
– Caching a device control register would be
disastrous (not reflect current device status change).
– All memory modules and all I/O devices must
examine all memory references.
9. 9
Direct Memory Access (DMA)
• Direct Memory Access (DMA) is a
capability provided by some computer bus
architectures that allows data to be sent
directly from an attached device (such as a
disk drive) to the memory on the computer's
motherboard.
• DMA operations:
1. CPU program the DMA controller
2. DMA requests transfer to memory
3. Data transferred
4. The disk controller sends an acknowledgement
11. 11
Interrupts Revisited
• The interrupt vector is a table holding numbers on
the address lines specifying devices.
• Precise interrupt:
– The PC (Program Counter) is saved in a known place.
– All instructions before the one pointed to by the PC have
fully executed.
– No instruction beyond the one pointed to by the PC has been
executed.
– The execution state of the instruction pointed to by the PC is
known.
12. 12
Interrupts Revisited
How interrupts happens. Connections between devices and
interrupt controller actually use interrupt lines on the bus
rather than dedicated wires
13. 13
Principles of I/O Software
Goals of I/O Software
• Device independence
– programs can access any I/O device
– without specifying device in advance
· (floppy, hard drive, or CD-ROM)
• Uniform naming
– name of a file or device a string or an integer
– not depending on which machine
• Error handling
– handle as close to the hardware as possible
14. 14
Goals of I/O Software
• Synchronous vs. asynchronous transfers
– blocking transfers vs. interrupt-driven
– Most physical I/O is interrupt-driven.
• Buffering
– data coming off a device cannot be stored in
final destination
• Sharable vs. dedicated devices
– disks are sharable
– tape drives would not be
15. 15
I/O Execution
• There are three ways that I/O are
performed:
– Programmed I/O
• Disadvantage: tying up the CPU full time until all
the I/O is done.
– Interrupt-driven I/O
• Interrupts might waste time.
– I/O using DMA
• Slower than CPU
16. 16
Programmed I/O
• Steps in printing a string
– String in the user buffer
– A System call to transfer the string to the kernel.
– String printed
18. 18
Interrupt-Driven I/O
• Writing a string to the printer using interrupt-driven I/O
– Code executed when print system call is made
– Interrupt service procedure
19. 19
I/O Using DMA
• Printing a string using DMA
– code executed when the print system call is made
– interrupt service procedure
20. 20
I/O Software Layers
• I/O Software in four layers:
– Interrupt handlers
– Device drivers
– Device-independent operating system software
– User-level I/O software
22. 22
Interrupt Handlers
• Interrupt handlers are best hidden
– have driver starting an I/O operation block until
interrupt notifies of completion
• Interrupt procedure does its task
– then unblocks driver that started it
23. 23
Interrupt Handlers
• Steps must be performed in software after interrupt
completed
1. Save registers not already saved by interrupt hardware
2. Set up context for interrupt service procedure
3. Set up stack for interrupt service procedure
4. Acknowledge interrupt controller, reenable
interrupts
5. Copy registers from where saved
6. Run service procedure
7. Set up MMU context for process to run next
8. Load new process' registers
9. Start running the new process
24. 24
Device Driver
• The device driver is the device-specific
code for controlling the I/O device attached
to a computer.
• Current operating systems expect drivers to
fun in the kernel.
• Operating systems usually classify drivers
into:
– Block devices
– Character devices
25. 25
Device Drivers
• Logical position of device drivers is shown here
• Communications between drivers and device controllers
goes over the bus
26. 26
Device-Independent I/O Software
Functions of the device-independent I/O software
Uniform interfacing for device drivers
Buffering
Error reporting
Allocating and releasing dedicate devices
Providing a deice-independent block size
28. 28
Buffering
• Buffering is a widely-used technique. If data get
buffered too many times, performance suffers.
• Classes of I/O errors:
– Programming errors
– Actual I/O errors
• Some I/O software can be linked with user programs.
– Spooling is a way of dealing with dedicated I/O devices in a
multiprogramming system.
– A spooling directory is used for storing the spooling jobs.
29. 29
Device-Independent I/O Software
(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
32. 32
Disks
• Disks come in a variety of types:
– Magnetic disks (hard disks and floppy disks)
– Arrays of disks
– Optical disks
• CD-ROMs
• CD-Recordables
• CD-Rewritables
• DVD
39. 39
Disk Hardware
• Cross section of a CD-R disk and laser
– not to scale
• Silver CD-ROM has similar structure
– without dye layer
– with pitted aluminum layer instead of gold
44. 44
Disk Arm Scheduling Algorithms
• Time required to read or write a disk
block determined by 3 factors
1. Seek time
2. Rotational delay
3. Actual transfer time
• Seek time dominates
• Error checking is done by controllers
45. 45
Disk Arm Scheduling Algorithms
Shortest Seek First (SSF) disk scheduling algorithm
Initial
position
Pending
requests
52. 52
Soft Timers
• A second clock 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
53. 53
Character Oriented Terminals
RS-232 Terminal Hardware
• 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
54. 54
• Central buffer pool
• Dedicated buffer for each terminal
Input Software (1)
56. 56
Output Software
The ANSI escape sequences
• accepted by terminal driver on output
• ESC is ASCII character (0x1B)
• n,m, and s are optional numeric parameters
58. 58
Display Hardware (2)
• A video RAM image
– simple monochrome display
– character mode
• Corresponding screen
– the xs are attribute bytes
59. 59
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
72. 72
Power Management (3)
• Running at full clock speed
• Cutting voltage by two
– cuts clock speed by two,
– cuts power by four
73. 73
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