Design Principles
Design Principles
Functionality of a typical OS
1. Manage the computer's resources, such as the
central processing unit, memory, disk drives, and
printers,
2. Establish a user interface, and
3. Execute and provide services for applications
software.
• Keep in mind, however, that much of the work of an
operating system is hidden from the user; many
necessary tasks are performed behind the scenes.
Design Issues
• Efficiency
Most I/O devices slow compared to main memory
(and the CPU)
Use of multiprogramming allows for some processes to
bewaiting on I/O while another process executes
Often I/O still cannot keep up with processor speed
Swapping may used to bring in additional Ready processes
--More I/O operations
Optimize I/O efficiency – especially Disk &
Network I/O
Robustness
The system is robust if the addition of a feature doesn't
cause the breakdown of a previous feature.
In the case of a robust design, there is no implication
that other parts of the design (or features) would be
shaped by the addition of a new one... to the contrary,
robustness implies a certain rigidity, such that the
original features will be there no matter what you
change in other areas.
In a good, robust OS, there's no way to crash or
damage one part of the OS by crashing or adding
insane features to another part.
Flexibility
Kernels
• The part of the OS critical to correct operation
(trusted software)
• Executes in supervisor mode
• The trap instruction is used to switch from
user to supervisor mode, entering the OS
User
User User
User
Process
Process Space
Space
Supervisor
Supervisor
Process
Process
Supervisor
Supervisor
Space
Space
API
Security Service
Module Module
Monolithic Structure
Layered Systems
Process Security
Manager Module
File
Systems Network
Support
Register
I/O I/O
device device
27
End of Chapter 2