Showing posts with label program-development. Show all posts
Showing posts with label program-development. Show all posts

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.

Wednesday, July 15, 2015

EVOLUTION OF OPERATING SYSTEMS



An Operating system may process its workload serially or concurrently. That is, resourses of the computer system may be dedicated to single program until its completion, or they may be dynamically reassigned among a collection of active programs in different stage of execution. Because of their ability to execute multiple programs in interleaved fashion, such operating systems are often reffered to as multi programming systems exist. In order to motivate the need for the types of services that each of these varieties provide, we briefly and informally sketch the evolutionary path of operating-system development. In particular, we describe serial processing, batch processing, and multi programming. No specific dates are attached to some of the events because we are interested in the progression of ideas and not in attempting to chart the history of oprating systems. Moreover, much of the historical development of operating systems for mainframes was first retraced by minicomputers and then again by microcomputers and personal computers. Thus many of the concepts and ideas recur are applicable to different systems at deferent times.
The mechanics of program execution and brief sketch of the process of program development, namely, the edit-compile-execute cycle, are described for each type of operating system. While execution of programs is an essential activity in all computer systems, productivity of program preparation is important only in program-development environments, such as university computing centers.