0% found this document useful (0 votes)
34 views49 pages

OS Chapter 1

Uploaded by

mikimeba2023
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views49 pages

OS Chapter 1

Uploaded by

mikimeba2023
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 49

Operating Systems

Chapter one
Introduction
Topics
• What is an operating system?
• Operating System Functions
• Operating System Goals
• Computer System Components
• History of Operating System
• Types of Operating System
What is an Operating system
• A program that acts as an intermediary
between a user of a computer and the
computer hardware
• A systems program which controls and
manages all the computer's resources and
provides a base upon which application
programs can be written
Operating System functions
• Extending the machine: hiding the internal
complication of the hardware and presenting
simple view that is simpler and easier to use
– E.g. files instead of physical disk addresses
• Managing resources : provides an orderly and
controlled allocation of resources ( processers,
memories, printers ,etc) among various
programs competing for them
– E.g. printing service, space and time multiplexing
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
• Hardware - provides basic computing resources
(CPU, memory, I/O devices).
• Operating system - controls and coordinates the
use of the hardware among the various
application programs for the various users.
• 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 pro
grams).
• Users (people, machines, other computers).
Computer System
Cont’d
• Early Software
– Assemblers
– Loaders
– Linkers
– Libraries of common subroutines
– Compilers
– Device drivers
Operating System
• Resource allocator - manages and allocates
resources.
• Control program - controls the execution of
user programs and operation of I/O devices.
• Kernel - the one program running at all times
(all else being application programs).
Early Systems - bare machine (early 1950s) - First Generation

• Structure
– Large machines run from console
– Single user system
– Programmer/User as operator
– Paper tape or punched cards
• Secure
• Inefficient use of expensive resources
– Low CPU utilization
– Significant amount of setup time
Simple Batch Systems - Second Generation

• Use an operator (somebody to work the machine)


• Add a card reader (a device to read programs written
on punched cards)
• 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 back to monitor
Problems
• How does the monitor know about the nature
of the job (e.g., Fortran versus Assembly) or
which program to execute?
• How does the monitor distinguish
– job from job?
– data from program?
• Solution: introduce control cards
– Special cards that tell the resident monitor which
programs to run
Control Cards
Cont’d

• Parts of resident monitor


– Control card 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.
• Problem: Slow Performance - since I/O and CPU
could not overlap, and card reader very slow.
• Solution: Off-line operation - speed up
computation by loading jobs into memory from
tapes and card reading and line printing done off-
line using smaller machines.
Cont’d
Cont’d
• Advantage of off-line operation - main computer
not constrained by the speed of the card readers
and line printers, but only by the speed of faster
magnetic tape units.
• No changes need to be made to the application
programs to change from direct to off-line I/O
operation.
• Real gain - possibility of using multiple reader to-
tape and tape-to-printer systems for one CPU.
• Spooling - overlap the I/O of one job with the
computation of another job
Cont’d
Cont’d
• (Simultaneous Peripheral Operation On Line)
Simple Multiprogramming.
– While executing one job, the operating system
reads the next job from the card reader into a
storage area on the disk (job queue).
– outputs the printout of previous job from disk to
the line printer.
– Job pool - data structure that allows the operating
system to select which job to run next, in order to
increase CPU utilization.
Multiprogramming and Time Sharing-
Third Generation
• Multiprogramming
• Several jobs are kept in main memory at the
same time, and the CPU is shared between
them
• Each job is called a process
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
• Most efficient for many users to share a large
computer.
• The CPU is shared between several processes.
• Each process belongs to a user and I/O is
to/from a separate terminal for each user.
• On-line file system must be available for users
to access data and code
Personal-Computer Systems - Fourth
Generation
• 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.
Parallel Systems - multiprocessor systems with more than
one CPU
• 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
• Symmetric multiprocessing
– Each processor runs an identical copy of the operating system.
– Many processes can run at once without performance deterioration.
• Asymmetric multiprocessing
– Each processor is assigned a specific task; master processor
schedules and allocates work to slave processors.
– More common in extremely large systems
Types of Operating system
• Mainframe Operating system: operating systems
heavily oriented towards processing many jobs at
once most of which need intensive input output.
Typically they offer three kinds of jobs
– Batch: routine jobs without interactive user present
– Transaction processing: large number of small jobs
– Time sharing: multiple remote users run jobs at once
• Server Operating system: run on servers that
serve multiple users over a network and allow
users to share hardware and software resources.
– Can provide print service, file service or web service
Cont’d
• Multi Processor Operating system: multiple CPU
in one system, a variation on server OS with some
special features for communication and
connectivity
• Personal Computer Operating system: provide a
good interface for a single user
• Real Time Operating system: 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
Cont’d
• Embedded Operating System: run on the
computers that control devices that are not
generally thought of as computers such as Tv,
microwave ovens and DVD
• Smart Card Operating System: handle only a
single function such as electronic payments
Operating system components
• Process Management
• Main-Memory Management
• Secondary-Storage Management
• I/O System Management
• File Management
• Protection System
• Networking
• Command-Interpreter System
Process Management
• A process is a program in execution. A process needs
certain resources, including CPU time, memory, files,
and I/O devices, to accomplish its task.
• The operating system is responsible for the following
activities in connection with process management:
– process creation and deletion.
– process suspension and resumption (scheduling).
– provision or mechanisms for:
• process synchronization
• process communication
• Process management is usually performed by the
kernel
Main-Memory Management
• Memory is a large array of words or bytes, each with
its own address. It is a repository of quickly
accessible data shared by the CPU and I/O devices.
• The operating system is responsible for the following
activities in connection with memory management:
– Keep track of which parts of memory are currently being
used and by whom.
– Decide which processes to load when memory space
becomes available.
– Allocate and deallocate memory space as needed. e.g.
the C function 'malloc' (or 'New' in Pascal) allocates a
specified amount of memory; this happens via an OS call.
The functions 'free'(C) and 'Dispose'(Pascal) deallocate
this memory.
I/O System Management
• The I/O system consists of:
– A buffer-caching system
– A general device-driver interface
– Drivers for specific hardware devices (device
drivers)
• Device Drivers
– Must have access to I/O hardware
– Must be able to handle interrupts.
– Communicate with other parts of the OS (File
system, Networking etc)
File Management
• A file is a collection of related information.
• Commonly, files represent programs (both source and
object forms) and data.
• Files may also be used to represent devices (e.g. lpt1: in
DOS).
• The operating system is responsible for the following
activities in connection with file management:
– File creation and deletion.
– Directory creation and deletion.
– Support of primitives for manipulating files and directories.
– Mapping files onto secondary storage e.g. free space
allocation.
– File backup on stable (non-volatile) storage media
Protection System
• Protection refers to a mechanism for
controlling access by programs, processes, or
users to both system and user resources.
• Operating Systems commonly control access
by using permissions.
• All system resources have an owner and a
permission associated with them.
• Users may be combined into groups for the
purpose of protection. e.g. in UNIX every file
has an owner and a group.
Cont’d
• The following is a listing of all the information about a file
• rwx-rx-r-- martin staff 382983 Jan 18 10:20 notes305.html
• The first field is the protection information; it shows the
permissions for the owner, then the group, then everybody else.
• The first rwx means that the owner has read, write and execute
permissions.
• The next rx means that the group has read and execute
permissions.
• The next r-- means that all other users have only read
permission.
• The name of the owner of the file is martin; the name of the
group for the file is staff; the length of the file is 382983 bytes;
the file was created on Jan 18 at 10:20 and the name of the file
is: notes305.html
• There is usually a special user corresponding to the system
administrator, this user has permission to do anything. On UNIX
systems this user is called root
Networking (Distributed Systems)
• A distributed system is a collection of processors
that do not share memory or a clock.
• Each processor has its own local memory.
• The processors in the system are connected
through a communication network.
• A distributed system provides user access to various
system resources.
• Access to a shared resource allows:
– Computation speed-up
– Increased data availability
– Enhanced reliability
Command-Interpreter
• Many commands are given to the operating
system by control statements which deal with:
– process creation and management (e.g. running a
program)
– I/O handling (e.g. set terminal type)
– secondary-storage management (e.g. format a disk)
– main-memory management (e.g. specify virtual
memory parameters)
– file-system access (e.g. print file)
– protection (e.g. set permissions)
– networking (e.g. set IP address)
Cont’d
• The program that reads and interprets control
statements is called variously:
– command-line interpreter
– shell (in UNIX)
• Its function is to get and execute the next
command statement.
• Some operating systems have no command
line interpreter and use a GUI for all
• system administration (e.g. NT).
Operating-System Services
• Program execution - ability to load a program into
memory and to run it.
• I/O operations - since user programs cannot execute I/O
operations directly, the operating system must provide
some means to perform I/O.
• File-system manipulation - capability to read, write,
create, and delete files.
• Communications - exchange of information between
processes executing either on the same computer or on
different systems tied together by a network.
Implemented via shared memory or message passing.
• Error detection - ensure correct computing by detecting
errors in the CPU and memory hardware, in I/O devices,
or in user programs.
Cont’d
• Additional operating-system functions exist not for
helping the user, but rather for ensuring efficient system
operation.
• Resource allocation - allocating resources to multiple
users or multiple processes running at the same time.
• Accounting - keep track of and record which users use
how much and what kinds of computer resources for
account billing or for accumulating usage statistics.
• Protection - ensuring that all access to system resources
is controlled.
System Calls

• System calls provide the interface between a


running program and the operating system.
– Generally available as an assembly-language instruction
to generate a software interrupt. (e.g. INT 21H in DOS)
– Systems programming languages such as C allow
system calls to be made directly.
• Three general methods are used to pass
parameters between a running program and the
operating system:
– Pass parameters in registers.
– Store the parameters in a table in memory, and the
table address is passed as a parameter in a register.
– Push (store) the parameters onto the stack by the
program, and pop off the stack by the operating system.
System Programs
• System programs provide a convenient environment
for program development and execution. They can be
divided into:
– File manipulation
– Status information
– File modification
– Programming-language support
– Program loading and execution
– Communications
– Application programs
• Most users' view of the operation system is defined by
system programs, not the actual system calls.
System Structure - Simple Approach
• MS-DOS - written to provide the most functionality in the
least space; it was not divided into modules. MS-DOS has
some structure, but its interfaces and levels of functionality
are not well separated.
• UNIX - limited by hardware functionality, the original UNIX
operating system had limited structuring. The UNIX OS
consists of two separable parts:
– the systems programs.
– the kernel, which consists of everything below the system-call
interface and above the physical hardware. Provides the file system,
CPU scheduling, memory management, and other operating-system
functions; a large number of functions for one level.
• Often this is called a Monolithic Kernel
Cont’d
• Many modern operating systems use a
Microkernel - The kernel provides
• only the following minimal services.
– Inter process communication.
– Memory management.
– Low level process management.
– Low Level I/O
• All other services are provided by user level
processes
System Structure - Layered Approach
• The operating system is divided into a number of
layers (levels), each built on top of lower layers.
• The bottom layer (layer 0) is the hardware; the
highest (layer N) is the user interface.
• With modularity, layers are selected such that each
uses functions (operations) and services of only
lower-level layers.
• A layered design was first used in the THE operating
system of Dijkstra in 1968.
• Its six layers are as follows:
Cont’d
Level 5: user programs
_______________________________________________
Level 4: buffering for input and output devices
_______________________________________________
Level 3: operator-console device driver
_______________________________________________
Level 2: memory management
_______________________________________________
Level 1: CPU scheduling
_______________________________________________
Level 0: hardware
_______________________________________________
Virtual Machines
• A virtual machine takes the layered approach to its logical
conclusion. It treats hardware and the operating system kernel
as though they were all hardware.
• A virtual machine provides an interface identical to the
underlying bare hardware.
• The operating system creates the illusion of multiple processes,
each executing on its own processor with its own (virtual)
memory.
• The resources of the physical computer are shared to create the
virtual machines.
– CPU scheduling can create the appearance that users have their own
processor.
– Spooling and a file system can provide virtual I/O.
– A terminal serves as the virtual machine console.
Advantages and Disadvantages of Virtual
Machines
• The virtual-machine concept provides complete protection of
system resources since each virtual machine is isolated from
all other virtual machines.
• This isolation, however, permits no direct sharing of
resources.
• A virtual-machine system is a perfect vehicle for operating-
systems research and development. System development is
done on the virtual machine, instead of on a physical machine
and so does not disrupt normal system operation.
• The virtual machine concept is difficult to implement due to
the effort required to provide an exact duplicate of the
underlying machine.
System Design Goals
Mechanisms and Policies

• User goals - operating system should be


convenient to use, easy to learn, reliable, safe, and
fast.
• System goals - operating system should be easy to
design, implement, and maintain, as well as
flexible, reliable, error-free, and efficient.
• Mechanisms determine how to do something;
policies decide what will be done.
• The separation of policy from mechanism is a very
important principle; it allows maximum flexibility if
policy decisions are to be changed later.
System Implementation
• Traditionally written in assembly language, operating
systems are now mostly written in higher level languages.
• Code written in a high-level language:
– can be written faster.
– is more compact.
– is easier to understand and debug.
• An operating system is far easier to port (move to some
other hardware) if it is written in a high level language.
• The first OS to be written in a high-level language was
UNIX, at the time there were very few suitable languages
and so a new one was developed from an existing
language called B - it was called C
Booting
• Modern operating systems are designed to run on
machines with a wide range of different hardware.
• Booting - starting a computer by loading the kernel.
• Bootstrap program - code stored in ROM that is
able to locate the kernel, load it into memory, and
start its execution.
• Once the kernel is loaded it must identify all the
hardware present in the machine and load relevant
device drivers.

You might also like