Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D. very fast very small volatile non-volatile very slow very large.

Download Report

Transcript Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D. very fast very small volatile non-volatile very slow very large.

Rensselaer Polytechnic Institute
CSCI-4210 – Operating Systems
David Goldschmidt, Ph.D.
very fast
very small
volatile
non-volatile
very slow
very large

Based on the von Neumann architecture,
data and program instructions
exist in physical memory
 Repeatedly perform
fetch-decode-execute
cycles
 The execute part
often results in data
fetch and store operations

Locations in memory
are identified by
memory addresses
 When compiled, programs
consist of relocatable code
 Other compiled modules
also consist of
relocatable code

At load time, any
additional libraries
also consist of
relocatable code

At run time, memory
addresses of all object
files are mapped to a
single memory space
in physical memory

Using dynamic loading, external libraries are
not loaded when a process starts
 Libraries are stored on disk in relocatable form
 Libraries loaded into memory only when needed

Using dynamic linking, external libraries can
be preloaded into shared memory
 When a process calls a library function, the
corresponding physical address is determined

Main memory
is partitioned
and allocated
to resident
operating system
and user processes
fixed partitioning scheme

A pair of base and limit
registers define the
logical address space
 Also known as
relocation registers

The CPU generates logical memory addresses
 A Memory-Management Unit (MMU)
maps logical memory addresses
to the physical address space
 User programs never see
physical memory addresses

Hardware protects against memory access
outside of a process’s valid memory space

Variable-length or dynamic partitions:
 When a new process enters the system, the
process is allocated to a single contiguous block
OS
OS
OS
OS
Process 5
Process 5
Process 5
Process 5
Process 9
Process 9
Process 8
Process 2
Process 1
Process 2
Process 2
Process 2
 The operating system maintains a list of
allocated partitions and free partitions

How can we place new process Pi in memory?
 First-fit algorithm: allocate the first free block
that’s large enough to accommodate Pi
 Best-fit algorithm: allocate the
smallest free block that’s large
enough to accommodate Pi
 Next-fit algorithm: allocate the
next free block, searching from last allocated block
 Worst-fit algorithm: allocate the largest free block
that’s large enough to accommodate Pi

Memory is wasted due to fragmentation,
which can cause performance issues
OS
 Internal fragmentation is wasted memory
Process 5
within a partition or process memory
 External fragmentation can reduce
the number of runnable processes
Process 8
▪ Total memory space exists to satisfy
a memory request, but memory is
not contiguous
Process 9
Process 2
Process 3
Process 6
Process 7
Process 12

Reduce external fragmentation by
compaction or defragmentation
OS
 Rearrange memory contents to organize
Process 5
all free memory blocks together into
one large contiguous block
 Compaction is possible only if
relocation is dynamic and is
done at execution time
 Compaction is expensive
Process 9
Process 8
Process 2
Process 3
Process 6
Process 7
Process
Process 12
7
Process 9
Process 12