Your SlideShare is downloading. ×
IO Management
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

IO Management


Published on



Published in: Education, Technology, Business

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. I/O Management
  • 2. Differences in I/O Devices
    • Data transfer rate
    • Complexity of control
    • Unit of transfer – data may be transferred as
      • a stream of bytes (e.g. terminal), stream-oriented
      • in larger blocks (e.g. disk), block-oriented
    • Data representation
    • Error conditions
  • 3.
  • 4. Performing I/O
    • Programmed I/O
      • Process is busy-waiting for the operation to complete
    • Interrupt-driven I/O
      • I/O command is issued
      • Processor continues executing instructions
      • I/O module sends an interrupt when done
  • 5. Performing I/O
    • Direct Memory Access (DMA)
      • DMA module controls exchange of data between main memory and the I/O device
      • Processor interrupted only after entire block has been transferred
  • 6. DMA Configurations
  • 7. DMA Configurations
  • 8. Techniques for Performing I/O Programmed I/O Interrupt-driven I/O I/O-to-memory transfer through processor DMA Direct I/O-to-memory transfer No Interrupts Use of Interrupts
  • 9. Operating System Design Issues
    • Efficiency
      • Most I/O devices extremely slow compared to main memory
      • Use of multiprogramming allows for some processes to be waiting on I/O while another process executes
      • I/O cannot keep up with processor speed
      • Swapping is used to bring in additional Ready processes which is an I/O operation
  • 10. Operating System Design Issues
    • Generality
      • Desirable to handle all I/O devices in a uniform manner
      • Hide most of the details of device I/O in lower-level routines so that processes and upper levels see devices in general terms such as read, write, open, close, lock, unlock
  • 11. I/O Buffering
    • Reasons for buffering
      • Processes must wait for I/O to complete before proceeding
      • Certain pages must remain in main memory during I/O
    Chap … Addressing space of a process ... fgets(F,s1) fgets(F,s2) ... s1 z  I/O device ……… s2 Chap 11 Input / Output … …
  • 12. How I/O Buffer works, 1 ……… Addressing space of a process ... fgets(F,s1) fgets(F,s2) ... s1 z  I/O device ……… s2 To avoid these overheads and inefficiencies, it is sometimes convenient to perform input transfers in advance of requests being made and to perform output transfers sometime after the request is made. This technique is known as buffering. Cha … … … … … … … I/O buffer
    • OS reads data from I/O device to I/O buffer. User process reads from I/O buffer. (similar for data write)
    • I/O buffer is not swapped out.
    Chap 11 Input / Output … …
  • 13. How I/O Buffer works, 2 Chap 11 Addressing space of a process ... fgets(F,s1) fgets(F,s2) ... s1  I/O device ……… s2 When the process requests the first line, it is blocked. A few lines will be read, in advance, from the I/O device to the I/O buffer. Later, when the process requests the second line, the OS can satisfy the request from the I/O buffer without blocking. Chap 11 Input / Output … … … Input/Output I/O buffer Chap 11 Input / Output … …
  • 14. I/O Buffering
  • 15. Double Buffer
    • Use two system buffers instead of one
    • A process can transfer data to or from one buffer while the operating system empties or fills the other buffer
  • 16. Circular Buffer
    • More than two buffers are used
    • Each individual buffer is one unit in a circular buffer
    • Used when I/O operation must keep up with process