Sei sulla pagina 1di 66

Chapter 10

Operating Systems

Chapter Goals
A little History of Operating Systems
Be familiar with current Major
Operating Systems
Contrast Applications Software
and Systems Software
Describe the main responsibilities
of an operating system

102

More Chapter Goals


(OS Responsibilities)

memory and process management


timesharing and the virtual machine
illusion
logical and physical addresses
memory management techniques

More Chapter Goals


(OS Responsibilities)

fixed and dynamic memory partitions


demand paging and the virtual memory
illusion
stages and transitions of the process life
cycle
CPU scheduling algorithms
4

2 Kinds of Software
Application software
Software written to address specific needs
To solve problems in the real world
The reason you buy the machine

System software
Software that manages a computer system at a
fundamental level
It provides the tools and an environment in
which application software can be created and
run
105

Application Software
Word processing programs, games,
inventory control systems,
automobile diagnostic programs, and
missile guidance programs are all
application software

The stuff you want


106

Systems Software
Operating Systems, File Systems
Software, Utilities (Disk
Defragmenter), Compilers, Maybe a
Web Browser

The stuff you need


107

Major OSs

Unix
Windows
Linux
Mac OS
Embedded OSs (Android, iOS)
Real-Time OSs

108

Which is the BEST OS??


NONE are best
Consumer POV
Buy whatever turns you on

Professional POV
Cost, tasks, maintenance, support,
legacy issues, popularity (network
effects), etc.
109

A Little History - Mainframes


Mainframes from 1950
1.
2.
3.
4.
5.

Earliest computers had no OS at all!


Proprietary (custom) OSs
VMX
Early Unix versions
Unix was invented at AT&T Bell Labs

1010

Mainframe
Circa 1950

1011

Mainframe
IBM System 360 circa 1964

1012

A Little History - Unix


Mainframes were often shared by
many users
A multiuser OS was needed
Unix arose to fill this need
IBM, Digital Equipment Corporation
(DEC), Honeywell, Hewlett Packard
Each had their own proprietary version on
Unix

1013

A Little History Early Personal


Computers
Microcomputers based on the first
integrated CPU chips ~ late 1970s
MITS Altair 8800 (MSs big break)
Commodore 64
Atari ST
TRS 80
Apple 2 (Apple 1 was a kit)
Each machine had their own proprietary
OS (or none at all for the Altair!)
1014

THE MICROPROCESSOR
!

Intel 8080 circa 1974

1015

Altair 8800 - circa 1975

1016

A Little History PCs n


Macs
PCs and Macs 1980s
IBM PC
IBM hired MS to supply DOS (A
basic command-line OS)
MS bought DOS from another party

Apple Macintosh
Apple wrote there own GUI OS
Apple borrowed the idea from
Xerox PARC
1017

A Little History Windows


OS
IBM PC needed a GUI
IBM hired MS to write OS2 for PS2 (not
Playstation!)
MS wrote Windows at the same time
Guess who won?

Why did MS win?


DOS was a cash cow for MS
Windows had backward compatibility w DOS
PC hardware was cheaper than Mac HW
1018

What is Linux???
Linux is based on a free source code
version of UNIX
This source is compiled to Intel CPU
machine code
Commercial versions are available
Internal SW architecture is circa 1960s
(A multi-user OS for a single-user
machine)
1019

What is Linux???
Its all about the

$$$$$$ MONEY $$$$$$


Linus Torvalds lead the creation of
Linux so that he could run UNIXbased code on cheap PC hardware
1020

Where are the computers??


The machines you SEE
Windows: Almost every desktop in the
USA and the world

The machines you DONT SEE


There are lots of UNIX-based machines
behind closed doors
1021

Why is Linux Important


Three Main Reasons
1)Academia
CS discipline was built with UNIX systems

2)Replacement of legacy hardware


Linux on PC is cheaper than Big Iron

3)Internet plumbing
Is all Unix-based, will not be re-done
1022

Why is Linux Important


Academia
There is a lot of code and textbooks
written for a UNIX point of view
Linux allows you to use this stuff on
cheaper hardware

1023

Why is Linux Important


The UNIX Legacy
There is a lot of application code
running on old expensive Unix
mainframe and workstation
machines
Linux is replacing these machines
because it runs on cheaper hardware
1024

Why is Linux Important


The Internet
Internet routers and other hardware where
originally run on old expensive Unix
machines
Linux is replacing these machines because
it runs on cheaper hardware
Learn Linux if you plan to study computing
more
1025

What about Wintell?


Windows/Intel machines will probably
hang around as legacy systems, boring,
but part of the standard infrastructure.
The Platform is standard and
widespread
Lots of existing programs for Wintel it
has its own legacy (like UNIX)
1026

Dominant OSs:
The Recent Past
Windows on the front
end
Linux on the back end
1027

Dominant OSs:
Present and Near Future
Mini Front End (Simple Interfacing
Tasks)
Tablets and Smart Phones

Maxi Front End (More demanding


specialized work)
Windows

Back End (Server processing)


Linux
1028

LETS GET TECHNICAL


A major OS job is to provide:

INTERFACES
1029

OS: Interfaces

Figure 10.1
An operating system
interacts with many
aspects of a computer
system.

1030

LETS GET TECHNICAL


The OS is there mainly to do what we all
learned in Kindergarten:

SHARING NICELY
1031

OS: Resource Management


File systems, monitor, keyboard, etc
The OS is in charge of making all the
application programs share nicely
Examples:
sending keystrokes to correct application
Placing overlapping windows on the screen
Making sure apps dont access each others
memory
1032

Operating System Resource


Management (Sharing)
Process Management (Sharing the CPU)
Sharing IO devices
Main (Primary Memory) Management
(Shared among many programs)
Disk (Secondary) Memory)
Management (More sharing)
1033

Process
Management
Sharing the CPU
1034

OS: Process Management


Process A program in execution
Process management keeping
track of processes and the states
they are in
CPU scheduling determines which
process in memory is executed by
the CPU at any given instant in time

1035

More History 1950s-1960s


Batch Processing
One big (expensive) machine
One human operating system The
Operator (ala The Matrix)
Several similar jobs were organized into
batches that required the same resources
Example:
Load the compiler
Run all the programs to be compiled
1036

History: Batch Processing

Figure 10.2 In early systems, human operators would organize jobs into batches

1037

More History: 1960s-1970s


Timesharing
One big (expensive) machine
Each user had her own virtual
machine, in which all system resources
seem to be available for use
In reality, resources are shared

Unix was created as a multi-user


timesharing operating system
1038

More History: 1970s-now


Multitasking
Lots of cheap PC machines
Timesharing evolved into multitasking
ONE user running MANY PROGRAMS
Still, resources must be shared by several
programs

Windows was created as a single-user


multitasking operating system
1039

Process States
The Process States

Figure 10.8 The process life cycle

1040

The Process Control Block


The operating system must manage
a large amount of data for each
active process
Usually that data is stored in RAM in
a data structure called a Process
Control Block (PCB)
The OS maintains one PCB for each
process
1041

Processes are like


Several Cooks Sharing ONE
Kitchen

1042

CPU Context Switch


There is only one CPU and therefore only one set of
CPU registers
These registers contain the values for the currently
executing process

Each time a process is moved to the running state:


Register values for the currently running process
are stored into its PCB
Register values of the new running state are loaded
into the CPU
This exchange of information is called a context switch

1043

CPU Scheduling
CPU Scheduling Determining which
process in the ready state should be
moved to the running state
Many processes may be in the ready
state
Only one process can be in the running
state, actually running at any one time

Which one gets to moved from ready


to running?
1044

CPU Scheduling
Nonpreemptive scheduling The currently
executing process gives up the CPU voluntarily
Batch Processing, the old Mac OS, Windows 3.1 circa 1990

Preemptive scheduling The operating


system decides to favor another process,
preempting the currently executing process
Win 9x and later, Unix, and most other modern
OSs

1045

CPU Scheduling Algorithms


First-Come, First-Served
Processes are moved to the CPU in the order in
which they arrive in the running state

Shortest Job Next


Process with shortest estimated running time
in the ready state is moved into the running
state first

Round Robin
Each process runs for a specified time slice and
moves from the running state to the ready
state to await its next turn if not finished
1046

First-Come, First-Served

Page 336

1047

Shortest Job Next


Looks at all processes in the ready
state and dispatches the one with
the smallest service time

Page 337

1048

Round Robin
Distributes the processing time
equitably among all ready processes
Aka Taking Turns
The algorithm uses a time slice,
which is the amount of time each
process is allowed to run before it is
the next process turn

1049

Round Robin
Suppose the time slice was 50

Page 339

1050

CPU Scheduling Algorithms


Are they preemptive or nonpreemptive? Explain
First-Come, First-Served?
Shortest Job Next?
Round Robin?

1051

Memory
Management
Sharing Primary
Memory (RAM)
1052

Memory Management
Memory management The
process of keeping track of what
programs are in memory and where
in memory they reside

1053

Memory Management

Figure 10.3
Memory is a continuous
set of bits referenced by
specific addresses
1054

The Problem

Every Program Wants to be


Loaded to RAM address ZERO
Address
Machine Code
-----------------------------------------0000
04000B
BR Main
0003
0000
sum: .WORD
0x0000
0005
0000
num1: .BLOCK 2
0007
0000
num2: .BLOCK 2
0009
0000
num3: .BLOCK 2
000B
C10003
Main: LDA sum,d
000E
310005
DECI num1,d
0011
710005
ADDA num1,d
0014
310007
DECI num2,d
0017
710007
ADDA num2,d
001A
310009
DECI num3,d
001D
710009
ADDA num3,d
0020
E10003
STA sum,d
0023
390003
DECO sum,d
0026
00
STOP
0027
.END

Branching
wants to
jump to some
particular
address

1055

The Solution
Load them elsewhere and LIE TO THEM
Aka Address Relocation
A part of Memory Management
When programs ask for bytes from some RAM location,
the OS will give them bytes from somewhere else

1056

Memory Management
1. Track where a program resides in memory
2. Convert logical addresses into physical
addresses

Logical address An address that the


program uses
All programs start at logical address ZERO

Physical address An actual address in


the main memory device
A program may not actually be loaded starting
at physical address zero
1057

Single Contiguous Memory


Management
The Simplest Way:
Only two programs
in memory
The operating
system
The application
program

1058

Single Contiguous Memory


Management
A logical address is simply an integer
value relative to the starting point of
the program
To produce a physical address, we
add a logical address to the starting
address of the program in physical
main memory

1059

Single Contiguous Memory


Management

1060

Partition Memory
Management
Partitions Main memory is divided
into a particular number of partitions
Programs are loaded into available
partitions

Note: A main memory partition is not the same thing as a


hard disk partition

1061

Partition Memory
Management
memory is divided into a
set of partitions, some
empty and some
allocated to programs
Base register A
register that holds the
beginning address of the
current partition
Bounds register A
register that holds the
length of the current
partition
1062

Paged Memory Management


Paged memory technique Processes
are divided into fixed-size pages and stored
in memory frames
Frame A piece of main memory that holds a
process page
Page A piece of a process that is stored into a
memory frame
Page-map table (PMT) A table used by the
operating system to keep track of page/frame
relationships
1063

Paged Memory Management


To produce a physical
address, you first look
up the page in the PMT
to find the frame
number in which it is
stored
Then multiply the
frame number by the
frame size and add the
offset to get the
physical address
1064

Paged Memory Management


Demand paging An important extension
of paged memory management
Not all parts of a program actually have to be
in memory at the same time
In demand paging, the pages are brought into
memory on demand

Page swap The act of bringing in a page from


secondary memory, which often causes another
page to be written back to secondary memory

1065

Paged Memory Management


The demand paging approach gives
rise to the idea of virtual memory,
the illusion that there are no
restrictions on the size of a program
Too much page swapping, however,
is called thrashing and can
seriously degrade system
performance.
1066

Potrebbero piacerti anche