Page 29 - DCAP403_Operating System
P. 29
Operating System
Notes files from one machine to another. Each machine runs its own local operating system and has its
own user (or users).
A distributed operating system, in contrast, is one that appears to its users as a traditional
uni-processor system, even though it is actually composed of multiple processors. In a true
distributed system, users should not be aware of where their programs are being run or where
their fi les are located; that should all be handled automatically and effi ciently by the operating
system.
True distributed operating systems require more than just adding a little code to a uni-processor
operating system, because distributed and centralised systems differ in critical ways. Distributed
systems, for example, often allow program to run on several processors at the same time, thus
requiring more complex processor scheduling algorithms in order to optimise the amount of
parallelism achieved.
Operating Systems for Embedded Devices
As embedded systems (PDAs, cellphones, point-of-sale devices, VCR’s, industrial robot control,
or even your toaster) become more complex hardware-wise with every generation, and more
features are put into them day-by-day, applications they run require more and more to run on
actual operating system code in order to keep the development time reasonable. Some of the
popular OS are:
1. Nexus’s Conix: an embedded operating system for ARM processors.
2. Sun’s Java OS: a standalone virtual machine not running on top of any other OS; mainly
targeted at embedded systems.
3. Palm Computing’s Palm OS: Currently the leader OS for PDAs, has many applications and
supporting companies.
4. Microsoft’s Windows CE and Windows NT Embedded OS.
Single Processor System
In theory, every computer system may be programmed in its machine language, with no systems
software support. Programming of the “bare-machines” was customary for early computer
systems. A slightly more advanced version of this mode of operating is common for the simple
evaluation boards that are sometimes used in introductory microprocessor design and interfacing
courses.
Programs for the bare machine can be developed by manually translating sequences of instructions
into binary or some other code whose base is usually an integer power of 2. Instructions and data
are then fed into the computer by means of console switches, or perhaps through a hexadecimal
keyboard. Programs are started by loading the program counter with the address of the fi rst
instruction. Results of execution are obtained by examining the contents of the relevant registers
and memory locations. Input/Output devices, if any, must be controlled by the executing
program directly, say, by reading and writing the related I/O ports. Evidently, programming of
the bare machine results in low productivity of both users and hardware. The long and tedious
process of program and data entry practically precludes execution of all but very short programs
in such an environment.
The next significant evolutionary step in computer system usage came about with the advent
of input/output devices, such as punched cards and paper tape, and of language translators.
Programs, now coded in a programming language, are translated into executable form by
a computer program, such as compiler or an interpreter. Another program, called the loader,
automates the process of loading executable programs into memory. The user places a program
22 LOVELY PROFESSIONAL UNIVERSITY