Page 34 - DCAP507_SYSTEM_SOFTWARE
P. 34
System Software
Notes Layer 1 did the memory management. It allocated space for processes in main memory and on
a 512k word drum used for holding parts of processes (pages) for which there was no room in
main memory. Above layer 1, processes did not have to worry about whether they were in
memory or on the drum; the layer 1 software took care of making sure pages were brought into
memory whenever they were needed.
Layer 2 handled communication between each process and the operator console. Above this
layer each process effectively had its own operator console.
Layer 3 took care of managing the I/O devices and buffering the information streams to and
from them. Above layer 3 each process could deal with abstract I/O devices with nice properties,
instead of real devices with many peculiarities.
Layer 4 was where the user programs were found. They did not have to worry about process,
memory, console, or I/O management.
The system operator process was located in layer 5.
Figure 2.7: MS-DOS Layer Structure
Application program
Resident system program
-
MS DOS device drivers
ROM BIOS device drivers
In MS-DOS, the interfaces and levels of functionality are not well separated. For instance,
application programs are able to access the basic I/O routines to write directly to the display and
disk drives. Such freedom leaves MS-DOS vulnerable to errant (or malicious) programs, causing
entire system crashes when user programs fail. Of course, MS-DOS was also limited by the
hardware of its era. Because the Intel 8088 for which it was written provides no dual mode and
no hardware protection, the designers of MS-DOS had no choice but to leave the base hardware
accessible.
The main advantage of the layered approach is modularity. The layers are selected such that
each uses functions (operations) and services of only lower level layers. This approach simplifies
debugging and system verification. The first layer can be debugged without any concern for the
rest of the system, because, by definition, it uses only the basic hardware (which is assumed
correct) to implement its functions. Once the first layer is debugged, its correct functioning can
be assumed while the second layer is worked on, and so on. If an error is found during the
debugging of a particular layer, we know that the error must be on that layer, because the layers
below it are already debugged. Thus, the design and implementation of the system is simplified
when the system is broken down into layers.
28 LOVELY PROFESSIONAL UNIVERSITY