Real Memory Management

reelingripehalfSoftware and s/w Development

Dec 14, 2013 (3 years and 5 months ago)

61 views

Operating Systems

Session 6:



Real Memory



organization



management

Operating Systems

COP 5614
-

Operating Systems

2

Introduction


Memory divided into tiers


Main memory


Relatively expensive


Relatively small capacity


High
-
performance


Secondary storage


Cheap


Large capacity


Slow


Main memory requires careful management

COP 5614
-

Operating Systems

3

Memory Organization


Memory can be organized in different
ways


One process uses entire memory space


Each process gets its own partition in
memory


Dynamically or statically allocated


Trend: Application memory requirements
tend to increase over time to fill main
memory capacities

COP 5614
-

Operating Systems

4

Memory Management


Strategies for obtaining optimal memory
performance


Performed by memory manager


Which process will stay in memory?


How much memory will each process have
access to?


Where in memory will each process go?


COP 5614
-

Operating Systems

5

Memory Hierarchy


Main memory


Should store currently needed program instructions and
data only


Secondary storage


Stores data and programs that are not actively needed


Cache memory


Extremely high speed


Usually located on processor itself


Most
-
commonly
-
used data copied to cache for faster
access


Small amount of cache still effective for boosting
performance


Due to temporal locality

COP 5614
-

Operating Systems

6

Memory Hierarchy

COP 5614
-

Operating Systems

7

Memory Management
Strategies


Allocation


Single or multiple processes


Fixed or variable


Fetch


Demand or anticipatory


Decides which piece of data to load next


Placement


Decides where in main memory to place incoming
data


Replacement


Decides which data to remove from main memory to
make more space

COP 5614
-

Operating Systems

8

Contiguous vs. Noncontiguous Memory
Allocation


Ways of organizing programs in memory


Contiguous allocation


Program must exist as a single block of contiguous
addresses


Sometimes it is impossible to find a large enough block


Low overhead


Noncontiguous allocation


Program divided into chunks called segments


Each segment can be placed in different part of memory


Easier to find “holes” in which a segment will fit


Increased number of processes that can exist
simultaneously in memory offsets the overhead incurred
by this technique

COP 5614
-

Operating Systems

9

Single Process: Contiguous Memory
Allocation

COP 5614
-

Operating Systems

10

Single Process : Overlays

COP 5614
-

Operating Systems

11

Protection in a Single Process
Environment


Operating system must not be damaged by
programs


System cannot function if operating system
overwritten


Boundary register


Contains address where program’s memory space
begins


Any memory accesses outside boundary are denied


Can only be set by privileged commands


Applications can access OS memory to execute OS
procedures using system calls, which places the
system in executive mode


COP 5614
-

Operating Systems

12

Single Process: Memory Protection

COP 5614
-

Operating Systems

13

Multi Process: Fixed
-
Partition
Allocation


Fixed
-
partition multiprogramming


Each active process receives a fixed
-
size
block of memory


Processor rapidly switches between each
process


Security becomes important



COP 5614
-

Operating Systems

14

Multi Process: Fixed
-
Partition Allocation

COP 5614
-

Operating Systems

15

Multi Process: Fixed
-
Partition
Allocation

with
address translation

COP 5614
-

Operating Systems

16

Internal fragmentation in a fixed
-
partition multiprogramming system.

Internal Fragmentation

COP 5614
-

Operating Systems

17

Multi Process: Fixed
-
Partition Protection

COP 5614
-

Operating Systems

18

Multi Process: Fixed
-
Partition
Drawbacks


Internal fragmentation


Process does not take up entire partition,


wasting memory



Process can be too big to fit anywhere



Variable partitions designed as
replacement

COP 5614
-

Operating Systems

19

Multi Process: Variable
-
Partition
Allocation

COP 5614
-

Operating Systems

20

Variable
-
Partition Characteristics


processes placed where they fit


No space wasted initially


Internal fragmentation impossible


Partitions are exactly the size they need to be


External fragmentation occurs when process
ends


Leaves holes too small for new processes


Eventually no holes large enough for new
processes


COP 5614
-

Operating Systems

21

Variable
-
Partition: memory holes

COP 5614
-

Operating Systems

22

Reduce external fragmentation


Coalescing


Combine adjacent free blocks into one large
block



Compaction


Rearranges memory into


one contiguous block of free space


one contiguous block of occupied space


Significant overhead

COP 5614
-

Operating Systems

23

Memory coalescing

COP 5614
-

Operating Systems

24

Memory compaction

COP 5614
-

Operating Systems

25

Memory Placement
Strategies


Where to put incoming processes


First
-
fit strategy


Process placed in first hole of sufficient size found


Simple, low execution
-
time overhead


Best
-
fit strategy


Process placed in hole that leaves least unused
space


More execution
-
time overhead


Worst
-
fit strategy


Process placed in hole that leaves most unused
space


remaining large hole may be used by another
process

COP 5614
-

Operating Systems

26

Memory Placement: first fit

COP 5614
-

Operating Systems

27

Memory Placement: best fit

COP 5614
-

Operating Systems

28

Memory Placement: worst fit

COP 5614
-

Operating Systems

29

Multi process with Memory Swapping


remove inactive processes from memory


only running process is in main memory


others temporarily moved to secondary
storage


maximizes available memory


significant overhead when switching
processes


COP 5614
-

Operating Systems

30

Multi process with Memory Swapping

COP 5614
-

Operating Systems

31

Multi process with Memory Swapping


Idea: keep several processes in memory


Less available memory per process


Much faster response times


Similar to paging

COP 5614
-

Operating Systems

32

Evolution of memory organization

COP 5614
-

Operating Systems

33

Agenda for next week:


Chapter 10 Virtual Memory Organization