Слайд 1Teacher:Shaimerdenova G.S
South Kazakhstan State pharmaceutical academy
“Medical Biophysics, Computer Science and Mathematics”
department
Theme : Evolution of operating system
Слайд 2Contents
1.Early Systems
2.Characteristics of Early Systems
3. Simple Batch Systems
4.Operation of Simple Batch Systems
5.Idea of Simple Batch Systems
Слайд 3Evolution of an Operating Systems?
Must adapt to hardware upgrades and new
types of hardware. Examples:
Character vs. graphic terminals
Introduction of paging hardware
Must offer new services, e.g., internet support.
The need to change the OS on regular basis place requirements on it’s design:
modular construction with clean interfaces.
object oriented methodology.
Слайд 4Evolution of Operating Systems
Early Systems (1950)
Simple Batch Systems (1960)
Multiprogrammed Batch Systems
(1970)
Time-Sharing and Real-Time Systems (1970)
Personal/Desktop Computers (1980)
Multiprocessor Systems (1980)
Networked/Distributed Systems (1980)
Web-based Systems (1990)
Слайд 5Early Systems
Structure
Single user system.
Programmer/User as operator (Open Shop).
Large machines run from
console.
Paper Tape or Punched cards.
Слайд 6Example of an early computer system
Слайд 7Characteristics of Early Systems
Early software: Assemblers, Libraries of common subroutines (I/O,
Floating-point), Device Drivers, Compilers, Linkers.
Need significant amount of setup time.
Extremely slow I/O devices.
Very low CPU utilization.
But computer was very secure.
Слайд 8Simple Batch Systems
Use of high-level languages, magnetic tapes.
Jobs are batched
together by type of languages.
An operator was hired to perform the repetitive tasks of loading jobs, starting the computer, and collecting the output (Operator-driven Shop).
It was not feasible for users to inspect memory or patch programs directly.
Слайд 9Operation of Simple Batch Systems
The user submits a job (written on
cards or tape) to a computer operator.
The computer operator place a batch of several jobs on an input device.
A special program, the monitor, manages the execution of each program in the batch.
Monitor utilities are loaded when needed.
“Resident monitor” is always in main memory and available for execution.
Слайд 10Idea of Simple Batch Systems
Reduce setup time by batching similar jobs.
Alternate
execution between user program and the monitor program.
Rely on available hardware to effectively alternate execution from various parts of memory.
Use Automatic Job Sequencing – automatically transfer control from one job when it finishes to another one.
Слайд 11Control Cards (1)
Problems:
1. How does the monitor know about the nature
of the job (e.g., Fortran versus Assembly) or which program to execute?
2. How does the monitor distinguish:
(a) job from job?
(b) data from program?
Solution: Introduce Job Control Language (JCL) and control cards.
Слайд 12Special cards that tell the monitor which programs to run:
$JOB
$FTN
$RUN
$DATA
$END
Special characters
distinguish control cards from data or program cards:
$ in column 1
// in column 1 and 2
709 in column1
Control Cards (2)
Слайд 13Job Control Language (JCL)
JCL is the language that provides instructions to
the monitor:
what compiler to use
what data to use
Example of job format: ------->>
$FTN loads the compiler and transfers control to it.
$LOAD loads the object code (in place of compiler).
$RUN transfers control to user program.
$JOB
$FTN
...
FORTRAN
program
...
$LOAD
$RUN
...
Data
...
$END
Слайд 15Effects of Job Control Language (JCL)
Each read instruction (in user program)
causes one line of input to be read.
Causes (OS) input routine to be invoked:
checks for not reading a JCL line.
skip to the next JCL line at completion of user program.
Слайд 16Resident Monitor
Resident Monitor is first rudimentary OS.
Resident Monitor (Job Sequencer):
initial control
is in monitor.
loads next program and transfers control to it.
when job completes, the control transfers back to monitor.
Automatically transfers control from one job to another, no idle time between programs.
Слайд 18Parts of resident monitor:
Control Language Interpreter – responsible for reading and
carrying out instructions on the cards.
Loader – loads systems programs and applications programs into memory.
Device drivers – know special characteristics and properties for each of the system’s I/O devices.
Resident Monitor Parts
Слайд 19Desirable Hardware Features
Memory protection
do not allow the memory area containing the
monitor to be altered by a user program.
Privileged instructions
can be executed only by the resident monitor.
A trap occurs if a program tries these instructions.
Interrupts
provide flexibility for relinquishing control to and regaining control from user programs.
Timer interrupts prevent a job from monopolizing the system.
Слайд 20Offline Operation
Problem:
Card Reader slow, Printer slow (compared to Tape).
I/O and
CPU could not overlap.
Solution: Offline Operation (Satellite Computers) –
speed up computation by loading jobs into memory from tapes while card reading and line printing is
done off-line using smaller machines.
Слайд 21Spooling (1)
Problem:
Card reader, Line printer and Tape drives slow (compared
to Disk).
I/O and CPU could not overlap.
Solution: Spooling -
Overlap I/O of one job with the computation of another job (using double buffering, DMA, etc).
Technique is called SPOOLing: Simultaneous Peripheral Operation On Line.
Слайд 22Spooling (2)
While executing one job, the OS:
Reads next job from card
reader into a storage area on the disk (Job pool).
Outputs printout of previous job from disk to printer.
Job pool – data structure that allows the OS to select which job to run next in order to increase CPU utilization.
Слайд 23We assumed Uniprogramming until now
I/O operations are exceedingly slow (compared to
instruction execution).
A program containing even a very small number of I/O operations, will spend most of its time waiting for them.
Hence: poor CPU usage when only one program is present in memory.
Слайд 24Why Multiprogramming?
Multiprogramming (also known as Multitasking) needed for efficiency:
Single user cannot
keep CPU and I/O devices busy at all times.
Multiprogramming organizes jobs (code and data) so CPU always has one to execute.
A subset of total jobs in system is kept in memory.
One job selected and run via job scheduling.
When it has to wait (for I/O for example), OS switches to another job.
Слайд 25Requirements for Multiprogramming
Hardware support:
I/O interrupts and DMA controllers
in order to execute
instructions while I/O device is busy.
Timer interrupts for CPU to gain control.
Memory management
several ready-to-run jobs must be kept in memory.
Memory protection (data and programs).
Software support from the OS:
For scheduling (which program is to be run next).
To manage resource contention.
Слайд 26References
1.Sameer, Shaikh. Complete Computer Hardware Only. PediaPress. pp. 256–257.
2.See Rand Corporation
publication by Robert Patrick
3."Timeline of Computer History: 1956: Software". Computer History Museum. Retrieved 2008-05-25.
4.A Brief History of Linux
Johnston (April 1, 2005). "VSE: A Look at the Past 40 Years". z/Journal. Thomas 5.Communications, Inc. (April/May 2005).
Chuck Boyer, The 360 Revolution