You are on page 1of 29

Operating

Systems
Lecture 30
Syed Mansoor Sarwar
Agenda for Today
 Review of previous lecture
 What is memory management

 Source code to execution

 Address binding

 Logical and physical address spaces

 Dynamic loading, dynamic linking,


and overlays
Recap
 September
9
of
14, 201
lecture
© Copyright Virtual Univers
ity of Pakistan
Review of Lecture 29
 Deadlock detection
 Deadlock recovery
Process termination
Resource preemption

September 14, 201 © Copyright Virtual Univers


9 ity of Pakistan
Memory Hierarchy
 Very small, extremely fast, extremely
expensive, and volatile CPU registers
 Small, very fast, expensive, and volatile
cache
 Hundreds of megabytes of medium-
speed, medium-price, volatile main
memory
 Hundreds of gigabytes of slow, cheap,
and non-volatile
September 14, 201 secondary
© Copyright Virtual Univers storage
9 ity of Pakistan
Purpose of Memory
Management
 To ensure fair, secure,
orderly, and efficient use
of memory

September 14, 201 © Copyright Virtual Univers


9 ity of Pakistan
Memory Management
 Keeping track of used and free
memory space
 When, where, and how much
memory to allocate and
deallocate
 Swapping processes in and out
of main memory
September 14, 201 © Copyright Virtual Univers
9 ity of Pakistan
Source to Execution
Compile/Assemble

Link

Load

September 14, 201
9
Execute
© Copyright Virtual Univers
ity of Pakistan
September 14, 201 © Copyright Virtual Univers
9 ity of Pakistan
Address Binding
 Binding instructions and data
to memory addresses
 Compile time
 Load time
 Execution time
September 14, 201 © Copyright Virtual Univers
9 ity of Pakistan
Address Binding
 Compile time: time If you know at
compile time where the
process will reside in memory,
the absolute code can be
generated. Process must
reside in the same memory
region for it to execute
9
correctly.
September 14, 201 © Copyright Virtual Univers
ity of Pakistan
Address Binding
 Load time: time If the location of a
process in memory is not known
at compile time, then the
compiler must generate re-
locatable code. In this case the
final binding is delayed until load
time. Process can be loaded in
different memory
September 14, 201
regions.
© Copyright Virtual Univers
9 ity of Pakistan
Address Binding
 Execution time:
time If the process
can be moved during its
execution from one memory
region to another, then binding
must be delayed until run time.
Special hardware must be
available for this to work.
September 14, 201 © Copyright Virtual Univers
9 ity of Pakistan
Logical and Physical
Addresses
 Logical address: An address
generated by the process/CPU;
refers to an instruction or data in
the process
 Physical address: An address for
a main memory location where
instruction
September 14, 201 ©or data
Copyright Virtualresides
Univers
9 ity of Pakistan
Logical and Physical
Address Spaces
 The set of all logical addresses
generated by a process comprises
its logical address space.
 The set of physical addresses
corresponding to these logical
addresses comprises the physical
address
September 14, 201 space
© Copyright for the process.
Virtual Univers
9 ity of Pakistan
Logical and Physical
Address Spaces
 The run-time mapping from
logical to physical addresses is
done by a piece of the CPU
hardware, called the memory
management unit (MMU).

September 14, 201 © Copyright Virtual Univers


9 ity of Pakistan
Example
 The base register is called the
relocation register.
 The value in the relocation
register is added to every
address generated by a user
process at the time it is sent to
memory.
September 14, 201 © Copyright Virtual Univers
9 ity of Pakistan
Example

14000
Process

September 14, 201 © Copyright Virtual Univers


9 ity of Pakistan
Example
 In i8086, the logical address of
the next instruction is specified by
the value of instruction pointer
(IP). The physical address for the
instruction is computed by shifting
the code segment register (CS)
left by four bits and adding IP to it.
September 14, 201 © Copyright Virtual Univers
9 ity of Pakistan
Example

CS * 24

Logical Physical
CPU + address
address

September 14, 201 MMU


© Copyright Virtual Univers
9 ity of Pakistan
Example
 Logical address (16-bit)
IP = 0B10h
CS = D000h
 Physical address (20-bit)
CS * 24 + IP = D0B10h
 Sizes of logical and physical
9
address
September 14, 201 spaces?
© Copyright Virtual Univers
ity of Pakistan
Dynamic Loading
 With dynamic loading, a routine
is not loaded into the main
memory until it is called.
 All routines are kept on the disk
in a re-locatable format.
 The main program is loaded
into memory
September 14, 201
and is executed
© Copyright Virtual Univers
9 ity of Pakistan
Dynamic Loading
 Advantages
 Potentially less time needed to
load a program
 Potentially less memory space
needed
 Disadvantage
9
 Run-time
September 14, 201 activity
© Copyright Virtual Univers
ity of Pakistan
Dynamic Linking
 In static linking, system
language libraries are linked
at compile time and, like any
other object module, are
combined by the loader into
the binary image
September 14, 201 © Copyright Virtual Univers
9 ity of Pakistan
Dynamic Linking
 In dynamic linking, linking is
postponed until run-time.
 A library call is replaced by a
piece of code, called stub,
which is used to locate
memory-resident library routine
September 14, 201 © Copyright Virtual Univers
9 ity of Pakistan
Dynamic Linking
 During execution of a process,
stub is replaced by the address
of the relevant library code and
the code is executed
 If library code is not in memory,
it is loaded at this time
September 14, 201 © Copyright Virtual Univers
9 ity of Pakistan
Dynamic Linking
 Advantages
 Potentially less time needed to
load a program
 Potentially less memory space
needed
 Less disk space needed to
store
September 14, 201
binaries
© Copyright Virtual Univers
9 ity of Pakistan
Dynamic Linking
 Disadvantages
 Time-consuming run-time activity,
resulting in slower program
execution
 gcc compiler
 Dynamic linking by default
 -static option allows static
9
linking
September 14, 201 © Copyright Virtual Univers
ity of Pakistan
Recap of Lecture
 What is memory management
 From source code to execution

 Address binding

 Logical and physical address


spaces
 Dynamic loading

 Dynamic linking
September 14, 201 © Copyright Virtual Univers
9 ity of Pakistan
Operating
Systems
Lecture 30
Syed Mansoor Sarwar
September 14, 201 © Copyright Virtual Univers
9 ity of Pakistan

You might also like