Title: Operating Systems
1Operating Systems
2What is an operating system
- an extended machine, easier to program for the
user - a resource manager, with more multiple users
using the system efficient and correct use of the
available resources is conducted by the operating
systems.
3Typical Services Provided by an O.S.
- CPU scheduling how to serve the program
execution (batch, multiprogramming, timesharing,
real time) - Memory management how to allocate the memory
- Swapping how to move data between the main
memory and secondary storage - I/O device drivers how to operate I/O devices
4- File system organize mass storage (disk) into
files and directories - Utilities date/time, accounting, file copy, etc.
- Command interpreter allow users to enter
commands interactively - System calls allow user programs access to OS
services - Protection keep processes (and users) from
interfering with each other and system - Communication Resource sharing allow users/
processes to communicate (within a computer or
over networks) and share resources (e.g. laser
printers, disks, etc.) - Security protect machines from intruders and
unauthorized people.
5Evolution of the Operating Systems
- It is better tie up the evolution of the
operating systems to the hardware, to give a true
picture, as done by Tanenbaum.
6First generation (1945-1955) characterized by
vacuum tubes and plug-boards
- First Computers
- All the programming was in machine language,
often by wiring up plug-boards to control
machine's basic functions. All the problems
programmed were numeric calculations such as
tables of sines and cosines. Punch-cards were
introduced in 1950 which replaced plug-boards
7Second generation Characterized by Transistors
(1955-1965)
- Batch systems,
- Commercial use of computers has become possible.
They were small enough and reliable enough to be
manufactured and sold. They were kept in special
dust-free air conditioned rooms and attended by
operators only. - Use of high level languages such as FORTRAN has
become possible, other than the assembly
language. - Batch systems were order of the day as they
allowed the best utilization of the equipment
under the present condition (see Figure 1.2 and
1.3) - Examples IBM 1401 and 7094.
8Simple Batch Systems in more details
- Are the first operating systems
- The user submit a job (written on card or tape)
to a computer operator - The computer operator place a batch of several
jobs on a input device - A special program, the monitor, manages the
execution of each program in the batch - Resident monitor is in main memory and available
for execution - Monitor utilities are loaded when needed
9The Monitor
- Monitor reads jobs one at a time from the input
device - Monitor places a job in the user program area
- A monitor instruction branches to the start of
the user program - Execution of user pgm continues until
- end-of-pgm occurs or error occurs
- Causes the CPU to fetch its next instruction from
Monitor
10Job Control Language (JCL)
- Is the language to provide instructions to the
monitor - what compiler to use and what data to use
- Each read instruction (in user pgm)
- causes one line of input to be read
- causes (OS) input routine to be invoked, to
- check for not reading a JCL line
- skip to the next JCL line at completion of user
program
11Batch OS
- Alternates execution between user program and the
monitor program - Relies on available hardware to effectively
alternate execution from various parts of memory
12Desirable Hardware Features
- Memory protection
- do not allow the memory area containing the
monitor to be altered by user programs - Timer
- prevents a job from monopolizing the system
- an interrupt occurs when time expires
- Privileged instructions
- can be executed only by the monitor
- an interrupt occurs if a program tries these
instructions - Interrupts
- provides flexibility for relinquishing control to
and regaining control from user programs
13Third generation computers, Characterized by Ics
(1965-1980) Multiprogramming
- The most representative machine of this
generation is IBM 360, which has combined the
numeric and non-numeric applications in one
machine. - The operating systems were written in assembly
language and have soon become very bulky as they
have to work both on newer as well as older
systems. - One important break from the second generation
was multiprogramming which was very important
for the utilization of the machine. The CPU could
be multiplexed between the programs residing in
the memory. When one tied up with IO, the other
would be tied up with execution. - Another important characteristic of the third
generation is SPOOLING, which comes from
simultaneous peripheral operation on line. The
job flow from card readers to disk, IO from/to
disk, print-out from disk to printers could take
place concurrent with CPU operation. - The desire for quick response time speeded up the
birth of timesharing systems. This has made
interactive on-line of systems order of the day. - Examples IBM 360, 370, 43xx, and 30xx series.
14Multiprogrammed Batch Systems
- I/O operations are exceedingly slow (compared to
instruction execution) - A program containing even a very small number of
I/O ops, will spend most of its time waiting for
them - Hence poor CPU usage when only one program is
present in memory - If memory can hold several programs, then CPU can
switch to another one whenever a program is
awaiting for an I/O to complete - This is multitasking (multiprogramming)
15Requirements for Multiprogramming
- Hardware support
- I/O interrupts and (possibly) DMA
- in order to execute instructions while I/O device
is busy - Memory management several ready-to-run jobs must
be kept in memory - Memory protection (data and programs)
- Software support from the OS
- Scheduling (which program is to be run next)
- To manage resource contention
16MULTICS
- Multics project was initiated to integrate all
the novelty of multiprogramming, timesharing, and
user requirements into one operating system.
Unfortunately the project was never fully
complete, initiated by ATT - Minicomputers have allowed computers to enter
small business and scientific institutions PDP,
Interdata, VAX, Prime, etc. - People who have taken part in MULTICS were able
to come up MULTICS like but far simpler (far less
ambitious) operating system- UNIX for
minicomputers, with no written objectives.
17Time Sharing Systems (TSS) in summary
- Batch multiprogramming does not support
interaction with users - TSS extends multiprogramming to handle multiple
interactive jobs - Processors time is shared among multiple users
- Multiple users simultaneously access the system
through terminals - Because of slow human reaction time, a typical
user needs 2 sec of processing time per minute - Then (about) 30 users should be able to share the
same system without noticeable delay in the
computer reaction time - The file system must be protected (multiple
users)
18Fourth generation (1980- ) Personal Computers,
Workstations, and Distributed Systems
- Chip technology (development in LSI) allowed mass
production, thus the present state of cheap but
powerful computers finding their way to homes as
well as offices. - The dominant operating systems UNIX, NT,
WindowsXX, etc. - Networking (TCP/IP) allowed operating systems
like UNIX to evolve into network operating
systems, in network environment. - Distributed operating systems Multiple
processors will appear one single system to the
user.
19Fifth generation (1990- ) Intelligent systems
- (still to come!), distributed computing, parallel
computing, very high speed communication (order
of many giga bits per second), www, mobile
systems