1. Fully Layered Modern Operating Systems CP2088
Operating Systems Programming
2. Review of a Standard Structure
3. Structures The Unix Model
4. Structure of Microsoft Windows
5. Getting Scared I am going to go into this in detail ? We canít really look at any of these aspects in detail.
The final level module CP3025 takes these ideas even further
6. But Ö. We do need to, at least review why the layered approach is adopted in the modern machine.
What is the benefit of an API interface for applications?
7. The Virtual Machine Concept. Benefits
It is an environment for processes
Each virtual machine is isolated from all others
System resource conflicts at process level are minimised.
8. Conventional Approach Hardware is the lowest layer of the OS
Kernel normally runs above this
Followed by the system processes
Finally the user processes
9. The VM Approach Taking this layered approach a step further we can redefine the layers to
user processes (Highest)
10. The VM Model.
11. What Does it gain you? The virtual machine does not provide any increase on functionality.
The VM is simply a copy (simulation) of the underlying hardware
Allowing processes to gain as they believe unique access to the physical peripherals.
The VM provides a unique CPU, memory and I/O system for each process.
But remember there may still be only one physical device.
12. VM Concepts The concept is relatively simple
Problems that are created are based on the sharing of the physical resources.
Leads to the need to create a virtual version of all the peripherals and hardware control on the processor as well
13. Special VMís Some VM definitions create a simulation of an abstract physical machine environment rather than a simulation of the underlying H/W & S/W.
14. JAVA VM JVM is a specification for an abstract computer
Interpreter for the architecture - neutral bytecodes
15. .NET Once again an implementation of a generalised stack oriented machine architecture.
But the whole package of .NET is classed as a Common Run Time (CLR) for a group of supported Common Languages C#, VB.NET and C++ (in a managed code environment.
16. Structure of a specialist VM
17. Structure of a specialist VM
18. The Programmers Interface. When you write any application you need access to the so called Run Time to be able to access Operating System support.
File System Access
Process and Physical Resources
19. Traditional Run Time Access to OS
20. Typical System Calls Available Five major categories:
Process & thread control
GUI, multimedia, ..
21. Mechanism Basic mechanism:
Put system call index number into register
Do something about parameters
Call kernel system call dispatcher
Kernel inspects index number and calls appropriate function, passing parameters (somehow!)
Kernel function validates parameters and performs action.
22. Windows 2000 What is a system call in Windows
API provided by subsystem?
23. Windows 2000
24. Hidden Techniques Some system calls may be buried in libraries
Example - fopen()/fclose() - wrappers
fopen() ? CreateFile()
fclose() ? CloseHandle()
25. Summary Layered Designs are the only way forward in Modern OS designs.
UNIX and Windows use a different approach to the layered technique
Virtual Machine approach allows multi tasking but creates added compleity to an OS.
26. Summary Standard VM approaches give a simulation of the underlying H/W and S/W to each process
Specialist VMís such as Java and .NET take the approach further and produce an emulation of a specialist architecture for the process to run within.
27. Summary All interfaces to the Services provided by the OS are generally wrapped into so called APIís
The API may be unique or may simply be a wrapper for lower level run time support.