COMS1015 Operating Systems
COMS1015 Operating Systems
operating Systems.
CHAPTER 10
Describe the two main responsibilities of an
operating system
Define memory and process management
Explain how timesharing creates the virtual
machine illusion
Explain the relationship between logical and
physical addresses
Compare and contrast memory
management techniques
2
Distinguish between fixed and dynamic
partitions
Define and apply partition selection
algorithms
Explain how demand paging creates the
virtual memory illusion
Explain the stages and transitions of the
process life cycle
Explain the processing of various CPU
scheduling algorithms
3
Operating system
System software that
◦ manages computer resources, such as memory and
input/output devices
◦ provides an interface through which a human can
interact with the computer
◦ allows an application program to interact with these
other system resources
4
The various roles of an operating system
generally revolve around the idea of “sharing
nicely”
An operating system manages resources, and
these resources are often shared in one way or
another among programs that want to use them
6
Multiprogramming
The technique of keeping multiple programs
that compete for access to the CPU in main
memory at the same time so that they can
execute
Memory management
The process of keeping track of what
programs are in memory and where in
memory they reside
7
Process
A program in execution
Process management
The act of carefully tracking the progress of a
process and all of its intermediate states
CPU scheduling
Determining which process in memory is
executed by the CPU at any given point
8
The first operating system was a human operator,
who organized various jobs from multiple users into
batches of jobs that needed the same resources
9
Timesharing system
A system that allows multiple users to interact
with a computer at the same time
Virtual machine
The illusion created by a time-sharing system
that each user has his/her own machine
10
Real-time System
A system in which response time is crucial
given the nature of the application
Response time
The time delay between receiving a stimulus
and producing a response
Device driver
A small program that “knows” the way a
particular device expects to receive and
deliver information
11
Operating systems must employ techniques to
◦ Track where and how a program resides in
memory
◦ Convert logical addresses into actual addresses
Logical address
Reference to a stored value relative to the
program making the reference
Physical address
Actual address in main memory
12
There are only two
programs in memory
The operating system
The application
program
This approach is
called single
contiguous memory
management
Figure 10.4 Main memory
divided into two sections
14
In concrete terms:
A logical address is simply an integer value
relative to the starting point of the program
A physical address is a logical address added to
the starting location of the program in main
memory
15
Figure 10.5 Binding a logical address
to a physical one
16
Single contiguous MM has only the OS and
one other program in memory at one time
Partition MM has the OS and any number of
other programs in memory at one time
There are two schemes for dividing up
memory for programs:
◦ Fixed partitions Main memory is divided into a
fixed number of partitions into which programs
can be loaded
◦ Dymanic partitions Partitions are created as
needed to fit the programs waiting to be loaded
17
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 (the one that is running)
Bounds register
A register that holds the length of the current
partition
18
Figure 10.6
Address resolution
in partition memory
management
19
Which partition should we allocate to a new
program?
First fit Allocate program to the first
partition big enough to hold it
Best fit Allocated program to the smallest
partition big enough to hold it
Worst fit Allocate program to the largest
partition big enough to hold it
20
A: 1000 Requests come in for blocks of
the following sizes:
1000, 25, 780, 1600, and 325
B: 700
21
Paged memory technique
A technique in which processes are divided into
fixed-size pages and stored in memory frames when
loaded
Frame
A fixed-size portion of main memory that holds a
process page
Page
A fixed-size portion of a process that is stored into a
memory frame
We assume that a frame and a page are the same size
22
Prog. 2, Page 2
Prog. 1, Page 3
Figure 10.7
A paged memory
management
approach
23
This new logical address is
mapped to a physical address
with the help of a page-map
table (PMT)
Every program has a PMT that
shows into which frame each
page of the program is stored
25
Demand paging
An extension of paged memory management in
which 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
26
Virtual memory
The illusion that there are no restrictions on
the size of a program because an entire
process doesn't have to be in memory at the
same time
Thrashing
Inefficient processing caused by constant
page swaps
27
Process management
The act of managing the use of the CPU by
individual processes
Recall that a process is a program in execution
What stages does a process go
through?
28
The Process States
29
Process control block (PCB)
A data structure used by the OS to manage
information about a process, including
◦ current value of the program counter
◦ values of all CPU registers for the process
◦ base and bound register values (or page tables)
◦ accounting information
Each state is represented by a list of PCBs,
one for each process in that state
30
There is only one CPU and therefore only one set of
CPU registers, which 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
◦ Its PCB is moved to the list of the state into which it goes
◦ Register values of the new process moving into the
running state are loaded into the CPU
◦ This exchange of register information is called a context
switch
31
CPU Scheduling
The act of 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,
making progress at any one time
Which one gets to move from ready to
running?
32
Nonpreemptive scheduling
The currently executing process gives up the CPU
voluntarily
Preemptive scheduling
The operating system decides to favor another
process, preempting the currently executing process
Turnaround time
The amount of time between when a process arrives
in the ready state the first time and when it exits the
running state for the last time
33
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
34
Average turnaround time = (140+215+535+815+940)/5
=529
Average turnaround time = (75+200+340+620+940)/5
=435
36
Every process is treated the same!
Time slice (quantum)
The amount of time each process receives
before being preempted and returned to the
ready state to allow another process its turn
37
Suppose the time slice is 50
38