Operating Systems 1
Operating Systems 1
Operating Systems 1
Introduction to
Operating System (OS)
What is an Operating System (1)?
3 A. Frank - P. Weisberg
Where does the OS fit in?
4 A. Frank - P. Weisberg
Services provided by an OS
• Facilities for program creation
– editors, compilers, linkers, debuggers, etc.
• Program execution
– loading in memory, I/O and file initialization.
• Access to I/O and files
– deals with the specifics of I/O and file formats.
• System access
– resolves conflicts for resource contention.
– protection in access to resources and data.
5 A. Frank - P. Weisberg
Operating System Types
• Multiuser – Two or more users work with the
computer at the same time
• Multitasking – Two or more processes running
at the same time.
• Multithreading – Two or more parts of the
same process running at the same time.
6
Why are Operating Systems Important?
• Important to understand and know how to correctly
use when writing user applications.
• Large and complex systems that have a high
economic impact and result in interesting problems
of management.
• Few actually involved in OS design and
implementation but nevertheless many general
techniques to be learned and applied.
• Combines concepts from many other areas of
Computer Science: Architecture, Languages,
Data Structures, Algorithms, etc.
7 A. Frank - P. Weisberg
• Motivation for Operating Systems (OS)
• Introduction
– What's an Operating System?
– Computer/Operating System Overview
– Evolution of Operating Systems
– Functional/Protection Aspects
– Operating System Structures
8 A. Frank - P. Weisberg
Computer Hardware Organization
9 A. Frank - P. Weisberg
Computer System Components
1. Hardware – provides basic computing resources
(CPU, Memory, I/O devices, Communication).
2. Operating System – controls and coordinates
use of the hardware among various application
programs for various users.
3. System & Application Programs – ways in which
the system resources are used to solve computing
problems of the users (Word processors, Compilers,
Web browsers, Database systems, Video games).
4. Users – (People, Machines, other computers).
10 A. Frank - P. Weisberg
Hierarchical view of computer system
11 A. Frank - P. Weisberg
Static View of System Components
12 A. Frank - P. Weisberg
Dynamic View of System Components
13 A. Frank - P. Weisberg
Layers of a Computer System
End
User
Programmer
Application
Programs
Utilities Operating-
System
Operating-System Designer
Computer Hardware
14 A. Frank - P. Weisberg
What Operating Systems Do
• Depends on the point of view.
• Users want convenience, ease of use and good performance
– Don’t care about resource utilization.
• But a shared computer such as mainframe or minicomputer
must keep all users happy.
• Users of dedicate systems such as workstations have dedicated
resources but frequently use shared resources from servers.
• Handheld computers are resource poor, optimized for usability
and battery life.
• Some computers have little or no user interface, such as
embedded computers in devices and automobiles.
15 A. Frank - P. Weisberg
Views of an Operating System
18 A. Frank - P. Weisberg
2. Control Program
• Control Program:
– Manages all the components of a complex
computer system in an integrated manner.
– Controls the execution of user programs and
I/O devices to prevent errors and improper
use of computer resources.
– Looks over and protects the computer:
Monitor, Supervisor, Executive, Controller,
Master, Coordinator ….
• Sort of a black box view.
19 A. Frank - P. Weisberg
3. Command Executer
• Command Executer:
– Interfaces between the users and machine.
– Supplies services/utilities to users.
– Provides the users with a convenient CLI
(Command Language Interface), also called
a Shell (in UNIX), for entering the user
commands.
• Sort of a top-down view.
20 A. Frank - P. Weisberg
Modern view: Virtual Machine (1)
• Operating System as a Virtual Machine:
– An interface between the user and hardware that
hides the details of the hardware (e.g., I/O).
– Constructs higher-level (virtual) resources out of
lower-level (physical) resources (e.g., files).
– Definition: OS is a collection of software
enhancements, executed on the bare hardware,
culminating in a high-level virtual machine that
serves as an advanced programming environment.
• virtual machine = software enhancement = extended
machine = abstract machine = layer = level = ring.
21 A. Frank - P. Weisberg
Modern view: Virtual Machine (2)
22 A. Frank - P. Weisberg
Definition of Operating System
• There is no universally accepted definition.
• “Everything a vendor ships when you order an
operating system” is good approximation but
varies widely.
• “The one program running at all times on the
computer” is the Kernel.
• Everything else is either a system program
(ships with the operating system) or an
application program.
23 A. Frank - P. Weisberg
One Kernel Point of View
24 A. Frank - P. Weisberg
What is the OS/Kernel?
• Is the Operating System just the Kernel (not
the utilities and application programs)?!
• The Command Line Interface (CLI) (or
command layer/interpreter or shell) allows
direct command entry by the user.
• The shell used to be in the kernel but now is a
(first between equals) utility outside of it:
– Easy to change/debug
– Many of them (sh, bsh, csh, ksh, tcsh, wsh, bash)
– Possible to switch between them (chsh)
25 A. Frank - P. Weisberg
UNIX Shell and Utilities
User
Utilities Shell
Kernel
Hardware
26 A. Frank - P. Weisberg
CLI is the User OS Interface
CLI allows direct command entry:
– Sometimes implemented in kernel, sometimes by
systems program.
– Sometimes multiple flavors implemented – shells.
– Primarily fetches a command from user and
executes it.
– Sometimes commands built-in, sometimes just
names of programs; if the latter, adding new
features doesn’t require shell modification.
27 A. Frank - P. Weisberg
UNIX System Layout
28 A. Frank - P. Weisberg
General UNIX Architecture (1)
29 A. Frank - P. Weisberg
General UNIX Architecture (2)
nroff sh who
cpp a.out
Kernel
date
comp
cc Hardware
as we
ld grep
vi ed
Other application programs
30 A. Frank - P. Weisberg