IO Systems Lecture 1 New - 20210710 - 134336

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 23

IO Systems

Lecture -1

Subject: Operating Systems

Ibrar Afzal

Lecturer IT Department

1
I/O Systems
• I/O and its main Job

• I/O Harware

• Application I/O Interface

• Kernel I/O Subsystem

2
I/O Systems
The two main jobs of a computer are

• I/O

• Processing.
•The main job is I/O

• The processing is purely secondary task.


•Concepts to understand how the devices are attached and how the
software can control the hardware.

3
I/O Systems
I/O-device technology exhibits two conflicting trends.
•Increasing standardization of software and hardware interfaces.

• This trend helps us to incorporate improved device generations into


existing computers and operating systems.
•Increasingly broad variety of I/O devices.

• Some new devices are so unlike previous devices

• It is a challenge to fit in them into our computers and operating systems.


•This challenge is met by a combination of hardware and software techniques.

4
4
I/O Systems
Port
• The device communicates with the machine via a connection point

Bus
• Set of wires and protocol that specifies a set of messages that can
be sent on the wires.
 PCI bus

• Connects the processor–memory subsystem to fast devices

 Expansion bus

• Connects relatively slow devices, such as the keyboard and


serial and USB ports
5
I/O Systems

6
I/O Systems
• PCI Express

 Throughput of up to 16 GB per second

• HyperTransport

 Throughput of up to 25 GB per second

•Daisy chain

• When device A has a cable that plugs into device B, and device B has a
cable that plugs into device C, and device C plugs into a port on the
computer
•Controller

• Collection of electronics that can operate a port, a bus, or a device.

7
I/O Systems
•Disk controller

•It has microcode and a processor to do many tasks,

• bad-sector mapping, prefetching, buffering, and caching.

•How can the processor give commands and data to a controller to accomplish an
I/O transfer?
•Controller has one or more registers for data and control signals.

•The processor communicates with the controller by reading and writing bit
patterns in these registers.

8
I/O Systems
An I/O port typically consists of four registers
•Status
•Control
•Data-in
•Data-out
• The data-in register is read by the host to get input.
• The data-out register is written by the host to send output.
• The status register contains bits that can be read by the host.
•These bits indicate states, such as
•Whether the current command has completed
•Whether a byte is available to be read from the data-in register
•Whether a device error has occurred.

9
I/O Systems
•The control register can be written by the host
• To start a command
•Change the mode of a device.
•The data registers are typically 1 to 4 bytes in size.
•Some controllers have FIFO chips
•It can hold several bytes of input or output data to expand the
capacity of the controller beyond the size of the data register.

10
Characteristics I/O devices
 Six main Characteristics of I/O devices are:

• Character-stream or block. A character-stream device transfers


bytes one by one, whereas a block device transfers a block of
bytes as a unit.

• Sequential or random access. A sequential device transfers data in


a fixed order determined by the device and random-access device
can instruct the device to seek to any of the available data storage
locations.

11
11
Characteristics I/O devices
 Six main Characteristics of I/O devices are:
• Synchronous or asynchronous.
 A synchronous device performs data transfers with predictable
response times.
 Asynchronous device exhibits irregular or unpredictable response
times not coordinated with other computer events.

• Sharable or dedicated.
 A sharable device can be used concurrently by several processes or
threads; a dedicated device cannot.

12
12
Characteristics of I/O Devices

• Speed of operation.
 Device speeds range from a few bytes per second to a few gigabytes
per second.

• Read–write, read only, or write only.


 Some devices perform both input and output, but others support only
one data transfer direction.

13
13
Application I/O Interface

 Block and Character Devices

 Network Devices

 Clocks and Timers

 Nonblocking and Asynchronous I/O

 Vectored I/O

14
14
Application I/O Interface
 Block and Character Devices
 Block-device interface or raw I/O
• read(), write(), and seek()
• Memory-mapped file access can be layered on top of block-device drivers
 The actual data transfers are performed only when needed to satisfy
access to the memory image.
 Memory mapping is also convenient for programmers.
 Character stream interface
• “spontaneously” that is, at times that cannot necessarily be predicted by the
application.
• get() or put() one character
• Convenient for input devices such as keyboards, mice, printers and
modems.

15
15
Application I/O Interface

 Network Devices
• Network socket interface: The system calls in the socket interface which
enable an application for
• Creation of a socket

• Connect a local socket to a remote address

• To listen for any remote application to plug into the local socket

• To send and receive packets over the connection.

• The use of select() system calls eliminates the polling and busy waiting that
would otherwise be necessary for network I/O.

16
16
Application I/O Interface
• Programmable interval timer

• It is the hardware to measure elapsed time and to trigger operations

 Scheduler uses this mechanism to generate an interrupt

 Disk I/O subsystem uses it to invoke the periodic flushing of dirty


cache buffers to disk
 Network subsystem uses it to cancel operations that are proceeding too
slowly
 Operating system may also provide an interface for user processes to
use timers.

17
17
Application I/O Interface
 Clocks and Timers

• Used for giving the current time

• The elapsed time


• set a timer to trigger operation X at time T.
 Operating system, use above functions but unfortunately, the system
calls that implement these functions are not standardized across
operating systems.

18
18
Application I/O Interface
 Nonblocking and Asynchronous I/O

 Blocking system call

• Application execution is suspended and application is moved from


OS run queue to a wait queue.
• The application is moved back to the run queue after the system call

• The physical actions performed by I/O devices are generally


asynchronous(varying or unpredictable amount of time)
• Blocking application code is easier to understand than nonblocking
application

19
19
Application I/O Interface
 Nonblocking and Asynchronous I/O Continues….
 Nonblocking call
• does not halt the execution of the application for an extended time.

• Keyboard ,mouse input and video application that reads frames from a file
on disk while simultaneously decompressing and displaying the output on
the display.
• select() system call for network sockets is an example

 Asynchronous system call


• An asynchronous call returns immediately, without waiting for the I/O to
complete
• Disk and network I/O are examples.

20
20
Application I/O Interface
 Nonblocking and Asynchronous I/O Continues….

 The difference between nonblocking and asynchronous system calls


• Nonblocking read() returns immediately with whatever data are available

 The full number of bytes requested

 Fewer

 None at all.

 An asynchronous call returns immediately and does not waiting for the I/O
to complete

21
21
Application I/O Interface
 Vectored I/O
• Allows one system call to perform multiple I/O operations
involving multiple locations
• Scatter-gather method is useful
 Increase throughput and decrease system overhead
 Atomicity, assuring that all the I/O is done without interruption

22
22
Thanks

23
23

You might also like