Introduction to Operating Systems
Download
Report
Transcript Introduction to Operating Systems
Understand model of operation
Easier to see how to use the system
Enables you to write efficient code
Learn to design an OS
Even so, OS is pure overhead of real work
Application programs have the real value to
person who buys the computer
2
A computer system consists of hardware and
software that are combined to provide a tool to
solve specific problems
Hardware includes CPU, memory, disks, printers,
screen, keyboard, mouse ...
Software includes
System software
A general environment to create specific applications
Application software
A tool to solve a specific problem
3
cut
print
send
save
open()
malloc()
fork()
read-disk start-printer
track-mouse
Application
Software
System
Software
Application
Software
System
Software
Application
Software
System
Software
Hardware
Hardware
Hardware
(a) End User
View
(b) Application
Programmer View
(c) OS Programmer
View
4
Independent of applications, but common to all
Examples
C library functions
A window system
A database management system
Resource management functions
5
Process: An executing program
Resource: Anything that is needed for a
process to run
Memory
Space on a disk
The CPU
“An OS creates resource abstractions”
“An OS manages resource sharing”
6
User Interface
Application
Abstract Resources (API)
Middleware
OS Resources (OS Interface)
OS
Hardware Resources
7
Provides an abstract model of the operation of
hardware components
Like data abstraction in Object-Oriented
programming
Interface functions
Internal functions and status
Eliminates the tedious details that a
programmer would otherwise have to handle
8
Processor: execute instructions
Memory: store programs and data
Input/output (I/O)controllers: transfer to and
from devices
Disk devices: long-term storage
Other devices: conversion between internal and
external data representations
9
10
Everything that a programmer needs to know
in order to write programs that perform
desired operation on the hardware
Disk drive is an example
Disk interface provides functions to move disk head,
transfer data
Monitor
Monitor interface provides functions to move the
cursor, display characters/graphics
11
System software
Provides a general programming environment in
which programmers can create specific applications
Application software
Intended to solve a specific problem
12
Application
Programmer
System Software
Software API
Command
Line
Interpreter
Compiler
Loader
Libraries
Libraries
Libraries
Database
Management
System
Window
System
OS
Hardware
13
The operating system is the part of the system
software that manages the use of the
hardware used by other system software and
all application software
It is the system program that acts between the
hardware and the user programs
14
It provides services to user programs
Through system calls / message passing
File system services
Memory services
I/O services
It hides hardware from user programs
When your program shows a message on the
monitor, it does not need to know the details
When your program generates a new file, it does not
need to where the free space is on your hard drive
15
Major differences between OS and general
system software
General system software relies on the abstractions
provided by OS
OS abstracts the hardware directly
OS provides the fundamental trusted mechanisms
for resource sharing
A general purpose OS is domain-independent
16
Resource manager
manage hardware and software resources
Resource abstraction and sharing
A nicer environment
implement a virtual machine for processes to run in
A program in execution is called a process
a nicer environment than the bare hardware
17
Transform physical resources to logical
resources
Resource abstraction
Make the hardware resources easier to use
Multiplex one physical resource to several
logical resources
Create multiple, logical copies of resources
Schedule physical and logical resources
Decide who gets to use the resources
18
Three interface functions
load(block, length, device)
seek(device, track)
out(device, sector)
19
An abstract function for writing
write(char *block, int len, int device,
int track, int sector)
{
...
load(block, length, device);
seek(device, 236);
out(device, 9);
...
}
20
Application
Programmer
OS Programmer
load(…);
seek(…);
out(…);
(a) Direct Control
void write() {
load(…);
seek(…)
out(…)
}
(b) write()
abstraction
int fprintf(…) {
...
write(…)
…
}
(c) fprintf()
abstraction
21
The dark side …
While simplifying the way application programmers
can control hardware, abstraction can limit the
flexibility by which specific hardware can be
manipulated
Certain operations may be impossible to achieve
using the abstraction
22
Concurrent execution
Parallel execution
Two or more processes appear to be (or actually are)
executing at the same time
Two or more processing actually executing
simultaneously
Processes which are concurrent, or parallel,
must share the computer
23
Two types of sharing
Time multiplexed sharing
time-sharing
schedule a serially-reusable resource among several
users
Space multiplexed sharing
space-sharing
divide a multiple-use resource up among several users
24
- Called multiprogramming
25
- Resulted in concurrent execution or concurrency
26
Pi’s Total Execution Time, ti
0
ti
Time
(a) Pi’s Use of Machine Resources
P1
P2
Pi
…
…
PN
Time
(a) All Processes’ Use of Machine Resources
Using the processor
I/O operation / paused
• Improves performance
27
28
29
30
Resource isolation and sharing
Protection
Prevent unauthorized access of resources by one
process when they are currently allocated to another
Sharing
Resource allocation
Scheduling
31
Not always
When resource abstraction or sharing is not needed
Some programs run “stand-alone”
Early computers did not have a sophisticated OS
OS was evolved along the hardware technology
But they are very useful
Reusable functions
Easier to use than the bare hardware
32
Several different strategies have been used
Earliest computers were dedicated to a single
program and there was no multiprogramming and
no OS
Batch systems
Timesharing systems
There are a few other recent strategies
Personal computers and workstations
Embedded systems
Small, communicating computers
Network technology
33
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
34
Job 19
Input Spooler
Input Spool
Job 3
Output Spooler
Output Spool
35
36
Overlap I/O of one job with computation of
another job. While executing one job, the OS
Reads next job from card reader into a storage area
on the disk (job queue).
Outputs printout of previous job from disk to
printer.
Job pool – data structure that allows the OS to
select which job to run next in order to increase
CPU utilization
37
Several jobs are kept in main memory at the same time, and the
CPU is multiplexed among them.
38
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
39
The goal is to enable users to interact with the
computer system
On-line communication between the user and
the system is provided
Batch processing systems do not allow user
interactions
When the operating system finishes the execution of
one command, it seeks the next “control statement”
not from a card reader, but rather from the user’s
keyboard.
On-line system must be available for users to
access data and code.
40
Abstract
Machines
Result
Physical
Machine
Command
Result
…
Command
Result
Command
41
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 system
often individuals have sole use of computer and do not
need advanced CPU utilization of protection features.
42
Win32 API
Win32 API Subset
Win32 API SubSet
Windows CE
(Pocket PC)
Windows 95/98/Me
Windows NT/2000/XP
43
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.
Hard real-time system.
Secondary storage limited or absent, data stored in shortterm memory, or read-only memory (ROM)
Conflicts with time-sharing systems, not supported by
general-purpose operating systems.
Soft real-time system
Limited utility in industrial control or robotics
Useful in applications (multimedia, virtual reality) requiring
advanced operating-system features.
44
Multiprocessor systems with more than one
CPU in close communication.
Tightly coupled system – processors share
memory and a clock; communication usually
takes place through the shared memory.
Advantages of parallel system:
Increased throughput
Economical
Increased reliability
graceful degradation
fail-soft systems
45
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
46
Network operating system
provides file sharing
provides communication scheme
runs independently from other computers on the
network
Distributed operating system
less autonomy between computers
gives the impression there is a single operating
system controlling the network.
47
48
Timesharing
Network OS
Memory Mgmt
Scheduling
Batch
Protection
PC & Wkstation
System software
Human-Computer
Interface
Memory Mgmt
Protection
Client-Server Model
Protocols
Real-Time
Scheduling
Scheduling
Files
Devices
Small Computer
Modern OS
Network storage,
Resource management
49