Wednesday, August 12, 2015

INPUT OUTPUT



The input/output system is the part of the operating system charged with the management of I/O devices. Acting as the interface between system users and I/O devices, the input/output system provides a means, by which files and devices are treated in a uniform manner and are manipulated by means of a set of high-level commands, such as READ_STRING. At the device end, however, the I/O system must supply the device-specific control signals to each particular type of device, possibly many times in the course of execution of a single high-level command. Higher-level function of the input/output system.
After a brief outline of the structure and role of the input/output section of computer system, we introduce the notion of an input/output port, stressing the aspect of concern to system programming and informaly analyze the resulting timing in order to asses to performance boundaries of the various I/O schemes. Following the exposition of program controlled I/O, we present a somewhat more involved discussion of interrupts. The purpose of this discussion is both
to explore the kind of hardware support to the operating system normally provided in this area and to indicate the potential for parallel operation that is exploited by multiprogramming operating system and is discussed in detail in subsequent chapters.
Given is complexity and impact on performance, concurrency is a major topic in operating system theory. As many of the concurrency-related problems are either originating from or present in the input/output system, our goal in this chapter is to explore the principles of input/output system, to study the elements of I/O programming, and to introduce the increasing degrees of concurrent execution of I/O operations that the hardware supports. In so doing, we will encounter a number of increasingly difficult scheduling problem that we solve using largely ad hoc and intuitive techniques, mimicking those frequently used by programmers. Toward the end of the chapter we conclude that even higher degrees of concurrency are possible, but that they require a much more rigid and systematic programming discipline, discussed in subsequent chapters.

No comments: