Demo Lecture
Introduction
to Operating Systems

About
This Lecture
This
lecture contains material which has been modified from slides copyright
Silberschatz, Galvin and Gagne, 2001. It covers the following topics:
- What
is an Operating System?
- Mainframe
Systems
- Desktop
Systems
- Multiprocessor
Systems
- Distributed
Systems
- Clustered
Systems
- Real-Time
Systems
- Handheld
Systems
- Computing
Environments
Before
you begin
Exposure
to a programming language is desirable background for this course.
|
Lecture
Menu
About
this Lecture
Learning
Objectives
What
is an Operating System?
Mainframe
Systems
Desktop
Systems
Multiprocessor
Systems
Distributed
Systems
Clustered
Systems
Real
-Time Systems
Handheld
Systems
Computing
Environments
Summary
Review
Questions
Practice
Test & Answers
Required
Readings
|
What
is an Operating System?

- A program
that acts as an intermediary between a user of a computer and the computer
hardware.
- Operating
system goals:
- Execute
user programs and make solving user problems easier.
- Make
the computer system convenient to use.
- Use
the computer hardware in an efficient manner.
Computer System Components
1. Hardware
– provides basic computing resources (CPU, memory, I/O devices).
2. Operating system – controls and coordinates the use of
the hardware among the various application programs for the various users.
3. Applications programs – define the ways in which the
system resources are used to solve the computing problems of the users
(compilers, database systems, video games, business programs).
4. Users (people, machines, other computers).
Abstract View
of System Components:
Operating
System Definitions
- Resource
allocator – manages and allocates resources.
- Control
program – controls the execution of user programs and operations of
I/O devices .
- Kernel
– the one program running at all times (all else being application programs).
Mainframe Systems
- Reduce
setup time by batching similar jobs
- Automatic
job sequencing – automatically transfers control from one job to another.
First rudimentary operating system.
- Resident
monitor
- initial
control in monitor
- control
transfers to job
- when
job completes control transfers pack to monitor
Memory Layout
for a Simple Batch System:
Multiprogrammed
Batch Systems:
Several jobs are kept in main memory at the same time, and
the CPU is multiplexed among them.
OS Features
Needed for Multiprogramming
- I/O routine
supplied by the system.
- Memory
management – the system must allocate the memory to several jobs.
- CPU scheduling
– the system must choose among several jobs ready to run.
- Allocation
of devices.
Time-Sharing
Systems–Interactive Computing
- The CPU
is multiplexed among several jobs that are kept in memory and on disk
(the CPU is allocated to a job only if the job is in memory).
- A job
swapped in and out of memory to the disk.
- On-line
communication between the user and the system is provided; when the
operating system finishes the execution of one command, it seeks the
next “control statement” from the user’s keyboard.
- On-line
system must be available for users to access data and code.
Desktop Systems
- Personal
computers – computer system dedicated to a single user.
- I/O devices
– keyboards, mice, display screens, small printers.
- User convenience
and responsiveness.
- Can adopt
technology developed for larger operating systems
- Often
individuals have sole use of computer and do not need advanced CPU utilization
or protection features.
- May run
several different types of operating systems (Windows, MacOS, UNIX,
Linux)
Multiprocessor
systems Parallel
Systems:
- Multiprocessor
systems with more than on CPU in close communication.
- Tightly
coupled system – processors share memory and a clock; communication
usually takes place through the shared memory.
- Advantages
of parallel systems:
- Increased
throughput
- Economical
- Increased
reliability
- graceful
degradation
- fail-soft
systems
- Symmetric
multiprocessing (SMP)
- Each
processor runs and identical copy of the operating system.
- Many
processes can run at once without performance deterioration.
- Most
modern operating systems support SMP
- Asymmetric
multiprocessing
- Each
processor is assigned a specific task; master processor schedules
and allocates work to slave processors.
- More
common in extremely large systems
Symmetric
Multiprocessing Architecture:
Distributed
Systems
- Distribute
the computation among several physical processors.
- Loosely
coupled system – each processor has its own local memory; processors
communicate with one another through various communications lines, such
as high-speed buses or telephone lines.
- Advantages
of distributed systems.
- Resources
Sharing
- Computation
speed up – load sharing
- Reliability
- Communications
- Requires
networking infrastructure.
- Local
area networks (LAN) or Wide area networks (WAN)
- May be
either client-server or peer-to-peer systems.
General Structure
of Client-Server:
Clustered
Systems
- Clustering
allows two or more systems to share storage.
- Provides
high reliability.
- Asymmetric
clustering: one server runs the application while other servers standby.
- Symmetric
clustering: all N hosts are running the application.
Real-Time Systems
- Often
used as a control device in a dedicated application such as controlling
scientific experiments, medical imaging systems, industrial control
systems, and some display systems.
- Well-defined
fixed-time constraints (deadlines).
- Real-Time
systems may be either hard or soft real-time.
- Hard real-time:
- Deadlines
must always be met.
- Secondary
storage limited or absent, data stored in short term memory, or read-only
memory (ROM)
- Conflicts
with time-sharing systems, not supported by general-purpose operating
systems.
- Soft real-time:
- An occasional
missed deadline is allowable.
- Limited
utility in industrial control of robotics
- Useful
in applications (multimedia, virtual reality) requiring advanced operating-system
features.
Handheld
Systems
- Personal
Digital Assistants (PDAs)
- Cellular
telephones
- Issues:
- Limited
memory
- Slow
processors
- Small
display screens.
Computing Environments
- Traditional
computing
- often
networked PCs with servers for files and printing
- current
technology is stretching the boundaries of traditional computing
- Web-Based
Computing
- increased
emphasis on networking
- Embedded
Computing
- most
prevalent form of computing
- found
in automobiles, VCRs, robots, airplanes (fly by wire), microwave ovens
and many other devices
|
Summary
Operating
systems have been developed to ensure good system performance and to provide
for user convenience. They evolved from simple automatic job sequencing
systems to sophisticated multiprogramming and time sharing systems.
Personal computer operating
systems benefit from operating system technology for larger systems but
do not require all features that larger systems do.
Systems for intensive
computing may have many CPUs and include the categories of multiprocessor
(parallel) systems, distributed systems and clustered systems.
Real-time systems are
used in industrial process control, automated manufacturing, medical imaging
and other applications.
Handheld systems are
growing in popularity and have constraints of limited memory, slower processors
and small displays.
Computing is done in
a number of different environments, including traditional computing, web-based
computing and embedded computing.
|
Review
Questions 1.
What are three goals of an operating system?
2. What are four computer system components?
3. What do multiprogrammed batch systems do?
4. What kind of multiple CPU system is tightly coupled
and what kind loosely coupled?
5. What are three computing environments?
|
Practice
Test & Answers
1.
What are the three main purposes of an operating system?
2. List
the four steps that are necessary to run a program on a completely dedicated
machine.
3. In
a multiprogramming and time-sharing environment, several users share the
system simultaneously. This situation can result in various security
problems. What are two such problems?
4. What
is the main advantage of multiprogramming?
5. What
are the main differences between operating systems for mainframe computers
and personal computers?
Answers
1. There
are several possible purposes of an operating system:
- To provide
an environment for a computer user to execute programs on computer hardware
in a convenient and efficient manner.
- To allocate
the separate resources of the computer as needed to solve the problem
given. The allocation process should be as fair and efficient as possible.
- As a control
program it serves two major functions: 1) supervision of the execution
of user programs to prevent errors and improper use of the computer,
and 2) management of the operation and control of I/O devices.
2.
a. Reserve machine time.
b. Manually load program into memory.
c. Load starting address and begin execution.
d. Monitor and control execution of program from console.
3. Stealing
or copying one’s programs or data; using system resources (CPU, memory,
disk space, peripherals) without proper accounting.
4. Multiprogramming
makes efficient use of the CPU by overlapping the demands for the CPU
and its I/O devices from various users. It attempts to increase
CPU utilization by always having something for the CPU to execute.
5. Personal
computer operating systems are not concerned with fair use, or maximal
use, of computer facilities. Instead, they try to optimize the usefulness
of the computer for an individual user, usually at the expense of efficiency.
Consider how many CPU cycles are used by graphical user interfaces (GUIs).
Mainframe operating systems need more complex scheduling and I/O algorithms
to keep the various system components busy.
|