CHAPTER 1
INTRODUCTION TO
OPERATING SYSTEMS
1.1 General Definition
An OS is a program which acts as an interface between
computer system users and the computer hardware.
It provides a user-friendly environment in which a user
may easily develop and execute programs.
Otherwise, hardware knowledge would be mandatory for
computer programming.
So, it can be said that an OS hides the complexity of
hardware from uninterested users.
1.1 General Definition
In general, a computer system has some resources which
may be utilized to solve a problem. They are
Memory
Processor(s)
I/O
File System
etc.
1.1 General Definition
Mainboard
1.1 General Definition
1.1 General Definition
mainboard
1.1 General Definition
processor
1.1 General Definition
RAM
1.1 General Definition
The OS manages these resources and allocates them to
specific programs and users.
With the management of the OS, a programmer is rid of
difficult hardware considerations.
An OS provides services for
Processor Management
Memory Management
File Management
Device Management
Concurrency Control
1.1 General Definition
Another aspect for the usage of OS is
that; it is used as a predefined library
for hardware-software interaction. Application Programs
This is why, system programs apply to
the installed OS since they cannot System Programs
reach hardware directly.
Operating System
Machine Language
HARDWARE
1.1 General Definition
Since we have an already written library, namely the OS,
to add two numbers we simply write the following line to
our program:
c=a+b;
1.1 General Definition
in a system where there is no OS installed, we should
consider some hardware work as:
(Assuming an MC 6800 computer hardware)
LDAA $80 Loading the number at memory location 80
LDAB $81 Loading the number at memory location 81
ADDB Adding these two numbers
STAA $55 Storing the sum to memory location 55
As seen, we considered memory locations and used our
hardware knowledge of the system.
1.1 General Definition
In an OS installed machine, since we have an
intermediate layer, our programs obtain some advantage
of mobility by not dealing with hardware.
For example, the above program segment would not
work for an 8086 machine, where as the
“c = a + b ;”
syntax will be suitable for both.
1.1 General Definition
A more
A simple program sophisticated Hardware
segment with no OS program segment Machine response
hardware with hardware Language
consideration consideration
1.1 General Definition
With the advantage of easier programming provided by
the OS, the hardware, its machine language and the OS
constitutes a new combination called as a virtual
(extended) machine.
Operating
Machine System
Virtual
Language Machine (Extended)
Machine Language
Hardware Machine
Hardware
1.1 General Definition
In a more simplistic approach, in fact, OS itself is a
program.
But it has a priority which application programs don’t
have.
OS uses the kernel mode of the microprocessor, whereas
other programs use the user mode.
The difference between two is that; all hardware
instructions are valid in kernel mode, where some of
them cannot be used in the user mode.
1.2 History of Operating
Systems
It all started with computer hardware in about 1940s.
ENIAC 1943
1.2 History of Operating
Systems
ENIAC (Electronic Numerical Integrator and Computer),
at the U.S. Army's Aberdeen Proving Ground in Maryland.
built in the 1940s,
weighed 30 tons,
was eight feet high, three feet deep, and 100 feet long
contained over 18,000 vacuum tubes that were cooled by 80
air blowers.
1.2 History of Operating
Systems
Computers were using vacuum tube technology.
ENIAC’s vacuum tubes
1.2 History of Operating
Systems
ENIAC’s backside
1.2 History of Operating
Systems
Programs were loaded into memory manually using switches, punched
cards, or paper tapes.
ENIAC : coding by cable connections
1.2 History of Operating
Systems
punch card
1.2 History of Operating
Systems
1.2 History of Operating
Systems
Paper tape
1.2 History of Operating
Systems
1.2 History of Operating
Systems
Babbage’s analytical engine
(designed in 1840’s by Charles Babbage, but cold not be constructed by him.
An earlier and simpler version is constructed in 2002, in London )
http://www.computerhistory.org/babbage/
1.2 History of Operating
Systems
Ada Lovalence (at time of Charles Babbage) wrote code
for analytical engine to compute Bernulli Numbers
1.2 History of Operating
Systems
As time went on, card readers, printers, and magnetic
tape units were developed as additional hardware
elements.
Assemblers, loaders and simple utility libraries were
developed as software tools.
Later, off-line spooling and channel program methods
were developed sequentially.
1.2 History of Operating
Systems
Commodore PET,
1977
1.2 History of Operating
Systems
Finally, the idea of multiprogramming came.
Multiprogramming means sharing of resources between
more than one processes.
By multiprogramming the CPU time is not wasted,
because, while one process moves on some I/O work, the
OS picks another process to execute till the current one
passes to I/O operation.
1.2 History of Operating
Systems
With the development of interactive computation in
1970s, time-sharing systems emerged.
In these systems, multiple users have terminals (not
computers) connected to a main computer and execute
her task in the main computer.
1.2 History of Operating
Systems
Main computer; having a CPU
executing processes by
utilization of the OS, (e.g. UNIX).
Terminals are connected
to the main computer and
used for input and output.
No processing is made.
They do not have CPUs.
1.2 History of Operating
Systems
Another computer system is the multiprocessor system
having multiple processors sharing memory and
peripheral devices.
With this configuration, they have greater computing
power and higher reliability.
1.2 History of Operating
Systems
Multiprocessor systems are classified into two as tightly-
coupled and loosely-coupled (distributed).
In the tightly-coupled one, each processor is assigned a
specific duty but processors work in close association,
possibly sharing the same memory.
In the loosely coupled one, each processor has its own
memory and copy of the OS.
1.2 History of Operating
Systems
Use of the networks required OSs appropriate for them.
In network systems, each process runs in its own
machine but the OS have access to other machines.
By this way, file sharing, messaging, etc. became
possible.
In networks, users are aware of the fact that s/he is
working in a network and when information is
exchanged. The user explicitly handles the transfer of
information.
1.2 History of Operating
Systems
Each is a computer having its own
CPU, RAM, etc. An OS supporting
networks is installed on them.
1.2 History of Operating
Systems
Distributed systems are similar to networks. However in
such systems, there is no need to exchange information
explicitly, it is handled by the OS itself whenever
necessary.
With continuing innovations, new architectures and
compatible OSs are developed. But their details are not
in the scope of this text since the objective here is to
give only a general view about developments in OS
concept.