Central Operating System Services

Central Operating Systems traditionally provide a <#84#> virtual machine<#84#> which has a unified view of various peripherals[#Cheriton84##1#]. Typically these are implemented as structured views of data (as in file systems and databases) and processes (running programs). Two alternative views of an operating system are:

Figure: Operating System Components

Operating systems evolved to provide more convenient access to computing resources, and also to provide more efficient use of those resources. For convenience, a standard interface to the virtual machine is provided. For efficiency and convenience, multi-tasking is provided. Multi-tasking provides the programmer with illusion of concurrency on single processor architectures. This illusion greatly simplifies the design of programs handling streams of input and output to and from different devices (sources and sinks). Neither the operating system nor the applications programmer can know in advance which events will occur in what order. It is much more natural to model separate sources and sinks as being handled by separate processes. Thus we can identify a set of base objects that exist in the virtual machine (see figure #fnos1#93>:

Furthermore, we can identify a set of base operations on these objects such as: