01 Os Introduction

Download as pdf or txt
Download as pdf or txt
You are on page 1of 33

1

OPERATING SYSTEMS
Introduction to
Operating Systems

12/23/2020 Chandrakant Mallick


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 12/23/2020
3
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.

12/23/2020
Where does the OS fit in?
4

12/23/2020
Services provided by an OS
5

 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.

12/23/2020
Why are Operating Systems Important?
6

 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.
12/23/2020
Course Outlines
7

 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

12/23/2020
Course Outlines (2)
8

 Concurrent Processes
 Process Models and Management
 Process Description and Control
 Task/Thread Description and Control
 Concurrency: Mutual Exclusion and
Synchronization
 Concurrency: Deadlock and Starvation

12/23/2020
Course Outlines (3)
9

 Memory Management
 Real Memory Management
 Motivation for Virtual Memory (VM)
 Paging and Segmentation
 Page Fetch, Placement and Replacement

12/23/2020
Course Outlines (4)
10

 Uniprocessor Scheduling
 Levelsof CPU Scheduling
 Process Scheduling

 External Storage Management


 File Systems/Management
 Directories
 File Allocation
 Disk Scheduling
12/23/2020
Main Bibliography

1. A. Silberschatz, P. B. Galvin, and G. Gagne,


“Operating Systems Concepts (with Java)”,
8th Edition, John Wiley & Sons, 2009.
http://codex.cs.yale.edu/avi/os-book/os8/index.php
Main Bibliography

3. W. Stallings,
“Operating Systems:
Internals and Design
Principles”,
7th ed, Prentice Hall,
2012.
http://williamstallings.c
om/OperatingSystems/
Additional Bibliography
4. A. S. Tanenbaum,
“Modern Operating
Systems”, 3rd Edition,
Prentice-Hall Intl.,
2008.
http://www.pearsonhigh
ered.com/educator/aca
demic/product/0,,0136
006639,00%2ben-
USS_01DBC.html
Additional Bibliography
5. A. S. Tanenbaum and A.
S. Woodhill, “Operating
Systems: Design and
Implementation”, 3rd
Edition, Prentice-Hall Intl.,
2006.
http://www.pearsonhighered.
com/educator/academic/pro
duct/0,,0131429388,00%2b
en-USS_01DBC.htm
Computer Hardware Organization
15

12/23/2020
Computer System Components
16

1. Hardware – provides basic computing resources


(CPU, Memory, I/O devices, Communication).
2. Operating System – controls and coordinates the
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).
12/23/2020
P6

Hierarchical view of computer system


17

12/23/2020
Slide 17

P6 Can "User Files" changed to "Users" ?


Pinchas, 02/22/2002
Static View of System Components
18

12/23/2020
Dynamic View of System Components
19

12/23/2020
Layers of a Computer System
20

End
User
Programmer
Application
Programs
Utilities Operating-
System
Operating-System Designer

Computer Hardware

12/23/2020
Views of an Operating System
21

 There are three classical views (in literature):


1. Resource Manager – manages and allocates
resources.
2. Control program – controls the execution of user
programs and operations of I/O devices.
3. Command Executer – Provides an environment for
running user commands.
 But one more modern view: the Operating System
as a Virtual Machine.

12/23/2020
1. Resource Manager
22

 Resource Manager:
 Manages and protects multiple computer resources: CPU,
Processes, Internal/External memory, Tasks, Applications,
Users, Communication channels, etc…
 Handles and allocates resources to multiple users or multiple
programs running at the same time and space (e.g.,
processor time, memory, I/O devices).
 Decides between conflicting requests for efficient and fair
resource use (e.g., maximize throughput, minimize response
time).
 Sort of a bottom-up view.
12/23/2020
OS as a Resource Manager
23

12/23/2020
2. Control Program
24

 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.
12/23/2020
3. Command Executer
25

 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.
12/23/2020
Modern view: Virtual Machine (1)
26

 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.
12/23/2020
Modern view: Virtual Machine (2)
27

12/23/2020
Definition of Operating System
28

 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.
12/23/2020
One Kernel Point of View
29

12/23/2020
What is the OS/Kernel?
30

 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)

12/23/2020
UNIX Shell and Utilities

User

Utilities Shell

Kernel

Hardware

31 12/23/2020
General UNIX Architecture (1)

32 12/23/2020

You might also like