Operating Systems
Introduction to
Operating System (OS)
What is an Operating System (1)?
• A modern computer consists of:
One or more processors
Main memory
Disks
Printers
Various input/output devices.
• Managing all these varied components
requires a layer of software – the
Operating System (OS).
2
What is an Operating System (2)?
• An Operating System is a program that acts as
an intermediary/interface between a user of a
computer and the computer hardware.
• OS goals:
– Control/execute user/application programs.
– Make the computer system convenient to use.
– Ease the solving of user problems.
– Use the computer hardware in an efficient manner.
3
Where does the OS fit in?
4
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
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.
6
Hierarchical view of computer system
7
Static View of System Components
8
Layers of a Computer System
End
User
Programmer
Application
Programs
Utilities Operating-
System
Operating-System Designer
Computer Hardware
9
Operating Systems Evolution
IOCS IBSYS
55
60
CTSS
65 DOS/360 OS/360 MULTICS
CP/CM5
70 RSX-11M
UNIX
TSO RT-11 CP/M
75 UNIXV.7
DOS/VDSE MVS/370 VM/370 VMS 1.0
4.1BSD XENIX MS-DOS 1.0
80 SYSTEM III DR/DOS
SUN OS 4.2BSD
85 VS MVS/XA VM/XA SYSTEM V AIX POSIX OS/2
MACH WIN 3.0
AIX/370 OSF/1 4.3BSD VMS 5.4 WIN 3.1
90 SYSTEM V.4
VS/ESA MVS/ES VM/ESA
95 LINUX AIX/ESA SOLARIS 2 4.4BSD WIN NT WIN 9X
00 VMS 7.3 WIN 2000
03 LINUX 2.6 WIN XP
SOLARIS 10
WIN Server 2003
10
Evolution of Operating system
• Batch processing OS
• Interactive processing (Real time)
– Requires real-time processing
• Time-sharing/Multitasking
– Implemented by Multiprogramming
• Multiprocessor machines
• Embedded OS
11
Batch processing
12
Interactive processing
13
Time Sharing / Multitasking
• Users seeking services from same machine at the same time –
time sharing
– Implemented using a technique called multiprogramming (time is
divided into multiple intervals, execution of one job is limited to a
single time interval)
• Multiple terminals connected to same machine
– Driven by the fact that in the past computers were very expensive
• When multiprogramming is applied to single-user
environments is usually called multitasking
14
Multiprocessor Operating Systems
• Provide time sharing/multi-tasking capabilities by assigning
different tasks to different processors as well as sharing the
time of one single processor
• Problems to solve:
– Load balancing – dynamically allocating tasks to the various processor
so that all of them are used efficiently
– Scaling – breaking tasks into sub-tasks compatible with the number of
processors available
• Trend to develop a network wide operating system
rather than networks of individual operating systems
15
Embedded Operating Systems
• Used in hand held devices (PDAs), mobile
phones, cars, etc…
• Limited data storage and power conservation
are the big challenges
• Examples: VxWorks, Windows CE (Pocket
PC), Palm OS, Symbinan, ThredX, RomDOS,
etc…
16
Tasks of an Operating System
• Processor management - Scheduling
– Fairness
– Non-blocking behavior
– Priorities
• Memory management
– Virtual versus physical memory, memory hierarchy
– Protection of competing/conurrent programs
• Storage management – File system
– Access to external storage media
• Device management
– Hiding of hardware dependencies
– Management of concurrent accesses
• Batch processing
– Definition of an execution order; throughput maximization
17