#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:
-
A Communications System.
It allows the sharing of resources such as filestore and CPU between
users.
It allows multiple users of multiple files and processes.
-
A Resource Manager.
It controls a number of simple devices and adds functionality by
sequencing access, and providing protection mechanisms to prevent
disorderly use.
#figure88#
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>:
-
Users
-
Processes
[Which may be divided into various levels of threads of control]
-
Filestore
[Usually provided as a uniform view of Input/Output devices, with a
base set of methods and some refinements for special case devices].
Communications Channels
Furthermore, we can identify a set of base operations on these
objects such as:
-
Create/Destroy (User/Process/File/Directory/Channel)
-
Initialise (User/Process/File/Directory/Channel)
-
Identify/Authenticate a User/Process/File
-
Change Permissions for User/Process/File/Channel
-
Send/Receive Data to/from File/Channel
-
Control Device...