Because of this set of potentially supported OS peripherals always significantly
greater range of devices, which OS to manage the installation of a specific
machine, the OS valuable feature is the ability to dynamically loaded into RAM
required driver (no stop OS) and unload it after the need for support device
passed, which could significantly save memory system area. Alternative dynamic
loading drivers to change the current configuration of external devices computer
is re-compiling the kernel code with the required set of drivers that creates
all components of the kernel instead of static dynamic. For example, thus solved
the problem in some versions of the operating system UNIX. In static links
between kernel and drivers of the OS easier, but this requires source code
modules operating system, the availability of which is not likely (for non-UNIX
versions), not the rule. In addition, this option works previous version of
operating system must be stopped and replaced by a new, and interruptions in the
work environment in some applications may not tolerated. Support for dynamic
load drivers is almost mandatory for today's universal operating systems.
Multiple file systems discs of particular kinds of peripheral devices, as it is
for most of them stored as a user or system data. These disks are organized in
file systems, and properties of the file system largely determines the
properties of the OS is its reliability, performance, maximum storage. The
popularity of file system often leads to the migration of "native" environment
in other operating systems, such as file system FAT appeared in the original MS-DOS,
but it was implemented in OS / 2, a family of MS Windows, and many of UNIX.
Because of the support of several popular file systems for the I / O subsystem
is also important as support for a wide range of peripheral devices. It is also
important that architecture enables I / O subsystem simply include it in new
types of file systems without having to re-code. Typically, the operating system
has a special layer of software responsible for this task, such as layer VFS (Virtual
File System) in the version of UNIX System V code of Release 4.
Translate a Web Page Support for synchronous and asynchronous I / O operations I
/ O operation can be performed on software module, requesting operation in
synchronous or asynchronous modes. The meaning of these regimes, the same as
described above for system calls-synchronous mode means that the software module
suspend its work until the I / O operation is not completed (Figure 7.1, a), and
in asynchronous a software module continues to be implemented in conjunction
with multiprogrammnom mode operation O (Fig. 7 L, b). The difference however is
that the I / O operations can be initiated not only user-process in the case of
operations performed by the system call, but the kernel code, such as virtual
memory subsystem code readers missing pages in memory. I / O subsystem to
provide its clients (user process and kernel code) to perform as synchronous or
asynchronous I / O operation, depending on the needs of serious side. System I /
O calls are plotted as a synchronous procedure because such operations last long,
and the user or process flow still have to wait for the results of operations in
order to continue its work. Domestic same challenges of Input / Output from
kernel modules usually implemented in the form of asynchronous processes, as
well as kernel codes need freedom to choose conduct further inquiry after I / O
operations. Using asynchronous procedure leads to a more flexible solutions, as
well as through asynchronous call you can always build interpretation, creating
further interim procedure, blocking implementation of procedures leading to
completion of I / O. Sometimes the application process and the need to implement
asynchronous I / O operations, such as architecture mikroyadernoy when part of
the code works as a customized application process, but also serves as an
operating system for complete freedom of action and after the call I / O
operations.
Multi I / O subsystem model Overall design A multilayer software, typical for
operating systems in general, are especially useful in natural and construction
of I / O subsystem. With great diversity I / O devices with significantly
different characteristics (printer and CDs, graphical display and network
adapter, etc.), a hierarchical structure of software to observe a balance
between two very contradictory requirements: on the one hand, it is necessary to
take into account all features each device on the other hand, provide a logical
presentation and a unified interface for all types of devices. In doing so, the
lower layers of I / O subsystem must include individual drivers written for the
specific physical devices, and upper management procedures should compile these
devices, providing a common interface, if not for all the devices, at least for
groups of devices, with some common characteristics such printers for a
manufacturer or all matrix printers, etc. Multi structure certainly facilitates
the solution of most listed in the previous section of I / O subsystem tasks,
such as simplicity of the new drivers, support for multiple file systems,
dynamic zagruzka- unloading of drivers and others. Synthesis of the I / O
subsystem presented in Fig. 7.2. Of the figure shows that the software I / O
shared not only horizontal layers, but the vertical. This is because for such a
diverse world, as external devices, it is difficult to ensure uniformity in the
splitting of administration sectors. Therefore, the general principle of multi
remains fair, but for a certain type of device it is in many ways, with its
number of layers and their functions. In the structure of the examples are three
vertical subsystem for managing disks, graphics devices, such as monitors,
printers and Plotter, and network adapters. Naturally, this list may be added
and others, such as management subsystem character terminals or any specialized
devices such as analog-to-digital and digital analog converters. Each subsystem
has several vertical segments modules. The bottom layer of a so-called hardware
device drivers, the title of which reflects the fact that they manage external
hardware devices by exchanging byte blocks and bytes, and are usually the case
with a high level of the logical organization of data, such as files or complex
graphical objects. Options upstream sectors are heavily dependent on the type of
vertical subsystem. Manager / O In the I / O subsystem, along with modules,
reflecting the specificity of external devices and forming vertical subsystem
modules are universal destination. These modules provide a coherent work of all
other components of I / O subsystem and interaction with the user processes and
other subsystem OS. As management devices, such as organizing distributed on all
levels, forming a sheath. This envelope is sometimes called the I / O manager.
Objectives of this manager quite diverse. Top Layer Manager of I / O system
calls, which take from user processes I / O requests and pereadresuyut them
responsible for a certain class of device modules and drivers, and return the
results of I / O operations. Thus this layer supports user interface I / O
applications programmers to create maximum convenience for manipulating external
devices and sharing their data. The lower layer manager has direct interaction
with the external controller devices ekraniruya drivers of particular hardware
platform computer-tyre I / O, system interruption, etc. This layer takes
requests from drivers to exchange data with the controller registers in some
synthesis of using independent from a tyre addressing and I / O format, and then
translates these requests depending on the hardware platform format. Manager
interruption considered above can be part of the I / O manager, or a separate
kernel module. In the latter case manager for the I / O controller interrupt
performs primary processing requests interruption, conveying the controller
general information on the source of the request. An important function of I / O
manager is a certain environment for the rest of the subsystem components, which
would facilitate their interaction with each other. This can be achieved by
establishing a standard internal interface I / O modules interact with each
other, which would complement the external interface subsystem applications
processes, kernel modules and other equipment. Such interface greatly
facilitates the integration of new drivers and file systems to the OS. In
addition, developers drivers and other software components are exempt from
writing common procedures, such as data buffering, and synchronization of
multiple modules are in the exchange of data. All these functions assume I / O
manager. Another function of the manager is the I / O modules interface I / O
modules with other subsystems of the OS, such as sub-process management, virtual
memory, and others. Examples of such manager is the manager of I / O on Windows
NT, as well as STREAMS environment, in many versions of the operating system
UNIX. Manager O Windows NT organizes interaction between modules via I / O
request packet-IRP (I / O Request Packet). After receiving a request from the
procedure call system, a manager of IRP and passes it correct driver. After the
driver requested operation returns a response in the form of another IRP manager,
and he, in turn, may need to refer the IRP another driver. Manager allows
drivers to put the relationship (bindings) among themselves, and on the basis of
the relationship and transferred packages IRP. In addition, the manager supports
Windows NT dynamic zagruzku- unload drivers without stop system. A standard
internal mezhmodulnogo interface improves stability and improves I / O subsystem
Scales, although some may slow its work, as well as any division into sections
and parts leads to additional operations in conjunction compared to monolithic
organization with a direct transfer of management.
|