Operating Systems - METU Computer Engineering

Download Report

Transcript Operating Systems - METU Computer Engineering

Operating Systems
What 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.
Typical 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
• 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.
Evolution 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.
First 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 plugboards…
Second 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.
Simple 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
The 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
Job 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
Batch OS
• Alternates execution between user program and
the monitor program
• Relies on available hardware to effectively
alternate execution from various parts of
memory
Desirable 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
Third 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.
Multiprogrammed 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)
Requirements 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
MULTICS
• 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 AT&T
• 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.
Time Sharing Systems (TSS) in summary
•
•
•
•
•
•
•
Batch multiprogramming does not support interaction
with users
TSS extends multiprogramming to handle multiple
interactive jobs
Processor’s 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…)
•
•
•
•
Fourth 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.
Fifth 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