What is Input Output Subsystem ?
The I/O subsystem is a component of computer system design that uses buses to assist communication between the Central Processing Unit, Computer Memory/Storage, and Input and Output Devices (that is known as peripheral devices). The I/O subsystem includes disc controllers, tape drives, discs, system buses, and other devices. The I/O database application reads and writes drives using the operating system windows I/O.
The I/O subsystem allows a user to communicate with the machine. The I/O subsystem has three major components:
I/O Hardware-I/O hardware consists of a mouse, disk, keyboard. The device driver enables communication between the I/O devices and the operating system.
I/O Software-It refers to a set of instructions written to interact with I/O devices such as keyboard, USB devices, mouse, printers and so forth. It also helps in providing an interface for the user to perform the input-output operations. The key goal of I/O software is to achieve device independence which makes it possible to construct a set of programs that allow access to any I/O device without need of specifying the device in advance.
I/O Application Interface- The I/O Application interface refers to the medium through which data is being transferred between external I/O devices and internal storage. Each peripheral device that is connected or linked to a computer system needs a certain communication link to interact with the CPU.
Architecture of Input-Output Subsystem
I/O (input/output) subsystem provides efficient communication between the computer system and the outside environment. It is responsible for handling or controlling overall input-output operations in the computer system. The system bus, disc controllers, discs, tape drives, and other I/O devices comprise the I/O (input/output) subsystem. The database application makes use of the Windows OS I/O subsystem to execute read and write operations on disk. Disk I/O is the most prevalent system bottleneck. If database file placement is improper, it can significantly impact server disc I/O. Instead of storing the entire database on a single huge disc, splitting the storage size across different disc resources is recommended to optimize I/O performance.
Functions of I/O subsystem
Some essential functions of the I/O subsystem are:-
- I/O Scheduling– I/O scheduling can aid in improving the performance of the system. For example, disk scheduling is used to make the disk access faster.
- Buffering- It is used for three main reasons namely, to compensate for differences in data transfer speed, to support the concept of copy semantics and to support the difference in data transfer rates between the two devices.
- Caching- Caching stores a copy of data in a faster memory such that it allows for faster access. Caching and buffering are similar concepts. The main distinction is that the buffer only saves one copy of the data item whereas the cache contains the same content which is maintained permanently elsewhere.
- Spooling and Device Reservation– It stores data transferred to or from the peripheral devices in a buffer. For example, it buffers data for printers.
- Error Handling– Many factors can cause an I/O request to fail, including buffer overflow or disc crash. Therefore, an error handling mechanism must be in place.
- I/O Protection– All requests in kernel mode should be handled using system calls for I/O protection.
Input Output Performance Metrics
To efficiently perform I/O operations, it is always required to measure the performance of I/O subsystem in order to determine whether it meets all the I/O requirements of an application. The increase in speed, computational power, processing capacity corresponding to high performance computing system require more efficient I/O subsystems. I/O performance metrics determine how quickly the computer system performs its input-output functions. The various metrics used to evaluate the performance of I/O subsystem are listed below.
Latency: The time taken for the completion of I/O operation. It is also known as service time. The time interval between the submission of I/O request by the OS to the disk controller and the completion of processing by the drive.
IOPS: It refers to Input/Output operations Performed Per Second. This metric is related to latency. For example, a constant latency of 1 ms means that 1000 IOPS are processed by the driver with the queue depth of 1.
I/O Throughput:
Rate at which data is transferred. It is measured in MB/sec (Mega Bytes per Second) or GB/sec (Giga Bytes per Second). It is a critical measure in case of database servers.
Measurement of I/O performance
Measurement of Input/output performance can be done using the following two measures -
- Throughput
- Response time
Throughput
Throughput can be defined as the work done in a given amount of time. In the case of I/O, throughput is measured according to input/output operations performed per second (IOPS).
I/O rate is commonly employed in applications where each request is relatively small, like transaction processing system. In this case, throughput is measured in terms of Transactions Per Seconds(TPS)
Response Time
The response time of a storage system is the time it takes to process an I/O request and access the data. It is also called total processing time per I/O request or I/O request latency.
Response Time = CPU time + I/O Bus Transfer Time + Queue Time + I/O controller Time + I/O device service time.
Factors affecting I/O performance
- Data read or write patterns
- Block size
- Sequential or random access
- Buffered I/O or Direct IO
- Resource contention
- Pre-allocation of disk space
- File fragmentation
- Pre-fetching data
- File system size
Methods for improving I/O efficiency
The following techniques can be used to improve the efficiency of I/O:
- Minimizing the number of context switches.
- Reducing number of times the data must be copied in memory when being passed from device to application
- Using sophisticated controllers, massive transfers, and polling (if busy, waiting can be minimized), in order to reduce the frequency of interrupts.
- Utilizing DMA-knowledgeable controllers or channels for enhancing concurrency.
- Moving computational operations to the hardware to run alongside the CPU.
- Balance the load on the CPU, I/O subsystem, memory subsystem and the bus because an overload in one area can create inactivity in other areas.
Common Mistakes
Monitoring and comprehending the efficiency of I/O systems has become a pressing topic for the computational sector. Input/output Operations Per Second (IOPS), response time, bandwidth, and other traditional I/O performance indicators are useful in traditional I/O setups. Existing I/O metrics, on the other hand, are insufficient to establish the properties of I/O subsystem performance because I/O systems have become much more complicated.
Context and Applications
This topic is required for both graduate and postgraduate professional exams, particularly for-
- Bachelor of Science in Computer Science
- Bachelor of Science in Information Systems
- Master of Science in Computer Science
Related Topics
- I/O Interface
- Performance Metrics
- System Architecture
- Disk Performance
Practice Problems
Q1. A part of computer architecture that connects CPU, Memory and peripheral devices.
a) Processor
b) Graphics card
c) Input / Output Subsystem
d) None of the above.
Correct Answer- c) Input / Output Subsystem
Explanation- The I/O subsystem is a component of computer system design that uses buses to assist communication between the Central Processing Unit, Computer Memory/Storage, and Input and Output Devices(known as peripheral devices).
Q2. Input/output efficiency can be improved by
a) Increasing Context switch
b) Decreasing context switch
c) Context Switch Function
d) None of the above
Correct Answer- b) Decreasing context switch
Explanation-Reducing the context switching will increase the CPU time and thus improve Input/output efficiency.
Q3. The maximum data rate that may be sent to and from an I/O device or subsystem in a given amount of time is referred to as
a) Response Time
b) Throughput
c) Direct Memory Allocation
d) None of the above
Correct Answer- b) Throughput
Explanation- The rate at which the I/O or storage system sends data is measured as throughput.
Q4. The amount of time it takes a storage (or I/O) system to process an I/O request and access data.
a) Waiting Time
b) Response Time
c) Latency
d) None of the above
Correct Answer- b) Response Time
Explanation- The response time of a storage (or I/O) system is the time it takes to process an I/O request and access data. It's also called total processing time per I/O request or I/O request latency.
Q5. __________ is the maximum no. of devices that can connect to a system.
a) Capacity
b) Capability
c) Limit
d) None of the above
Correct Answer- a) Capacity
Explanation-Capacity here defines the number of devices that can connect to a system.
Want more help with your computer science homework?
*Response times may vary by subject and question complexity. Median response time is 34 minutes for paid subscribers and may be longer for promotional offers.
Search. Solve. Succeed!
Study smarter access to millions of step-by step textbook solutions, our Q&A library, and AI powered Math Solver. Plus, you get 30 questions to ask an expert each month.
Computer Organisation and Architecture
System Input and Output Performance
Fundamentals of Input and Output Performance
Search. Solve. Succeed!
Study smarter access to millions of step-by step textbook solutions, our Q&A library, and AI powered Math Solver. Plus, you get 30 questions to ask an expert each month.