Professional Documents
Culture Documents
COMP3300
An operating system is a program that acts as an
intermediary between the hardware of a computer and a
Introduction user and their application programs.
This is often viewed as a layer that simplifies and
standardizes the use of a computer. Also an operating
Department of Computer Science system may be viewed as the resource manager of the
The Australian National University computer system.
The purpose of a good operating system is to perform its
Eric McCreath tasks: efficiently, reliably, securely, conveniently, and
socially.
2004
Operating System
Modem Display
Memory Disk
Hardware CPU Memory Controller Controller
Controller Controller
System Bus
Relationship between OS/HW 5 OS - The Resource Manager 6
The development of Operating System and computer Operating systems may be viewed as a resource manager. As
architecture have greatly influenced each other. they provide a way of sharing both abstract and physical
Operating system designers may require certain resources resources.
which are more efficiently done in hardware, hence, these Physical resources include resources such as: CPU, memory,
features are added into the architecture. keyboard, monitor, ... etc.
Similarly hardware designers may leave some capabilities to be Abstract resources include : files, file systems, windows,
implemented in software. semaphores, locks, processes, threads, ... etc.
Some examples of the interplay include: Resources may either be:
Memory protection, Space-multiplexed, or
Modems, and Time-multiplexed.
Floating point arithmetic.
Secondly a user may need to re-book more time if they run over their
Time Time booking. This would duplicate set up time.
Punch Cards 9 Enter The Transistor 10
By the early 1950's punch cards replaced the use of plug boards. The introduction of transistors in mid-1950s brought enormous
The introduction of punch-cards improved efficiency. change. Primarily transistor made computers more reliable.
Note that, vacuum tube technology placed hard limits on the
computer system's capabilities. This in tern limited the software
that could be run.
Compilers such as FORTRAN and COBOL appeared. This The OS was small and would be directed by the control cards.
created more work for the operator and degraded the utilization Jobs would be automatically sequenced to reduce idle time. The
of the computer. resident monitor was created for this purpose. The monitor
would be directed by a job control language(JCL). This would
effectively tell the computer what to do with the next sequence
Jobs with similar needs would be batched together. This of cards.
improved utilization. (Note that, the meaning of the word
batch has changed slightly over the years.)
I/O devices required careful programming. Rather than the code The mechanical I/O devices were considerably slower than the
being rewritten every time, a library of device drivers was CPU. (e.g. An assembler may be able to process 300 cards per
maintained. second, yet a fast card reader is only able to read 20 cards per
second. So the CPU would be idle 93.3% of the time.)
Magnetic tapes could perform I/O operations considerably Buffering is used to overlap I/O with computation. For input,
faster than card readers or line printers. So the information on data is automatically read and stored in a buffer while
the cards were copied onto magnetic tapes and than given to the computation is taking place. When the job requires the data it
main computer. The reverse of the procedure was used for may read directly from the buffer. For output data is placed
output. Hence, the card readers and line printers were operated into a buffer and than output to the device when it is able.
off-line.
Card Tape Tape Line Without Buffering
Reader Drive Drive Printer Input Device
Card Tape Tape Tape
Drive CPU Drive Tape Line
Reader Drive Drive Printer Computation
With Buffering
Card Line
Input Device CPU
Computation
Reader Printer
Time
Spooling 19 Multiprogramming 20
Spooling introduced the job pool structure which is an Multiprogramming involves having more than one program in
important precursor for multiprogramming. main memory at once. If one job is waiting for an I/O event
then the CPU can be switched to run another job.
A B C
Input Device to Disk Due to limitations on main memory only a subset of the job
A C B pool will be moved into main memory ready to be run.
Disk to Output Device
Multiprogramming improves CPU utilization.
Computation A C B
Without Spooling
A B C
Input Device to Disk
A B
Disk to Output Device
Computation A B
Multiprogramming 21 Time-Sharing 22
Multiprogramming introduces the basic building blocks of a A natural extension of Multiprogramming is time sharing(or
modern operating system. These include: job scheduling, CPU multitasking) where the CPU is rapidly switched between
scheduling, memory management, and resource management. different jobs. This rapid switching allows users to interact with
Main Memory their programs.
Disk Job A waits for some I/O
OS
Job2
Job5 Job3 A B C A B C B C
Job4
Job 1
Users would now interact with the computer using a keyboard
The turnaround time for batched multiprogrammed systems is and a monitor. This also created a need for an on-line file
considerable. This makes debugging difficult and interacting system.
with your program impossible.
Time-sharing systems became common in the early 1970s.
What could be done?
By 1970 the cost of Mainframe Microcomputer As different computer system have different requirements there
hardware had reduced s s is also a variety of different types of operating system. These
considerably. This allowed 50' Compilers include:
an entire computer to be s Batch Real Time Systems - these need to be able to react in a timely
dedicated to one person. manner.
The personal computer was 60' Multiuser
Operating systems in Fault-tolerant Systems - when it is critical to continue to
70' Compilers
personal computers went s provide a service.
through similar Distributed System - when resources are spread out.
80' Distributed
developmental stages to Multiuser
that of mainframes. s
Multiprocessor
There is a number of other types of operating systems such as
for games machines, OS's for small devices such as PDA's.
Multiprocessor Note that, operating systems will often have overlapping
focuses.
Real Time Systems 25 Parallel Systems 26
Fault-tolerant Systems allow the system to continue to provide In contrast to tightly coupled systems distributed systems or
full or partial services when components break down. This is loosely coupled systems consist of a set of computer systems
also known as graceful degradation. Fault-tolerant systems each with their own independent: processors, memory, bus
require mechanisms to: detect, diagnose, and correct(if clock, and secondary storage. They communicate with each
possible), faults that occur from time to time. other through various communication channels.
There are many advantages in building distributed systems
these include:
Resource sharing
Computation speedup
Reliability
Communications