Tải bản đầy đủ (.pdf) (43 trang)

Lecture Operating system principles - Chapter 7: Memory management

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (344.03 KB, 43 trang )

Chapter 7
Memory Management
• Basic requirements of Memory
Management
• Memory Partitioning
• Paging
• Segmentation

1


Memory Management
A program must be loaded into
main memory to be executed.
The principal operation of memory
management is to bring processes into
main memory for execution by the
processor.

2


Memory Management
Memory needs to be allocated to ensure
a reasonable supply of ready processes
to consume available processor time
– Otherwise, for much of the time all of the
processes will be waiting for I/O and the
processor will be idle.
3



The need for memory
management
• Memory is cheap today, and getting
cheaper
– But applications are demanding more and
more memory, there is never enough!

• Memory Management involves swapping
blocks of data from secondary storage.
• Memory I/O is slow compared to CPU
– The OS must cleverly time the swapping to
maximise the CPU’s efficiency
4


Memory Management
Requirements
• Relocation
• Protection
• Sharing
• Logical organisation
• Physical organisation

5


Relocation
• The programmer does not know where the
program will be placed in memory when it

is executed,
– it may be swapped to disk and return to main
memory at a different location (relocated)

• But, OS knows because it is managing
memory and is responsible for bringing
this process into main memory
6


Relocation
Addressing

The processor and OS must be
able to translate the memory
references found in the code of
the program into actual physical
memory addresses (to be
discussed)

7


Protection
• Processes should not be able to reference
memory locations in another process
without permission.
• Impossible to check absolute addresses at
compile time because the location of a
program in main memory is unpredictable.

• Must be checked at run time by the
processor.
8


Sharing
• Allow several processes to access the
same portion of memory
– Better to allow each process executing the
same program access to the same copy of the
program rather than have their own separate
copy
– Processes that are cooperating on some task
may need to share access to the same data
structure
9


Logical Organization
• Memory is organized linearly (usually)
• In contrast, programs are organized into
modules
– Modules can be written and compiled
independently
– Different degrees of protection can be given to
different modules (read-only, execute-only)
– Modules can be shared among processes

• Segmentation helps here
10



Physical Organization
• Cannot leave the programmer with the
responsibility to manage memory
– Memory available for a program plus its data
may be insufficient
– Programmer does not know how much space
will be available or where the space will be

• The task of moving information between
different levels of memory should be a
system responsibility
11


Partitioning
• An early method of managing memory
– Pre-virtual memory
– Not used much now

• But, it will clarify the later discussion of
virtual memory if we look first at
partitioning
– Virtual Memory has evolved from the
partitioning methods
12


Types of Partitioning








Fixed Partitioning
Dynamic Partitioning
Simple Paging
Simple Segmentation
Virtual Memory Paging
Virtual Memory Segmentation

13


Fixed Partitioning
• Partition memory into regions with
fixed boundaries
• Equal-size partitions
– Any process whose size is less than
or equal to the partition size can be
loaded into an available partition

14


Fixed Partitioning
Problems

• A program may be too big to fit into a
partition
• Main memory use is inefficient.
– Any program, no matter how small, occupies
an entire partition.
– This is results in internal fragmentation
(wasted space internal to a partition).
15


Fixed Partitioning
Solution – Unequal Size Partitions
• Lessen both problems
– But doesn’t solve completely
– Larger programs can be
accommodated
– Smaller programs can be placed in
smaller partitions, reducing internal
fragmentation
16


Fixed Partitioning
Placement Algorithm
• Equal-size
– Placement is trivial: a process can be loaded
into any available partition

• Unequal-size
– Can assign each process to the smallest

partition within which it will fit
– Queue for each partition
–  Processes are assigned in such a way as to
minimize wasted memory within a partition
17


Fixed Partitioning
Placement Algorithm
It is possible that a
partition is unused
even though some
smaller process
could have been
assigned to it

Select the smallest
available partition
that will hold the
process

18


Fixed Partitioning
Remaining Problems
• The number of active processes is limited
by the system
– i.e., limited by the pre-determined number of
partitions


• Partition sizes are preset at system
generation time, small jobs will not use
space efficiently
19


Dynamic Partitioning
• Dynamic partitioning can overcome some
of the difficulties with fixed partitioning
• Partitions are of variable length and
number
• Process is allocated exactly as much
memory as required

20


Dynamic Partitioning
Example
OS (8M)
P2
P1
(14M)
(20M)
Empty (6M)
Empty
P4(8M)
P2
(56M)

(14M)
Empty (6M)
P3
(18M)

• External Fragmentation
– Memory external to all
processes is fragmented and
memory utilization declines

• Can resolve using
compaction
– OS moves processes so that
they are contiguous
–  Time consuming and
wastes CPU time

Empty (4M)
21


Dynamic Partitioning
• Operating system must decide which free
block to allocate to a process
• Best-fit algorithm
– Chooses the block that is closest in size to the
request
–  Worst performer overall
• Since smallest block is found for a process, the
fragment left behind is too small to satisfy other

requests
• Memory compaction must be done more often
22


Dynamic Partitioning
• First-fit algorithm
– Scans memory from the beginning and
chooses the first available block that is large
enough
–  Simplest and fastest
–  May have many process loaded in the front
end of memory such that small free partitions
must be searched over on each subsequent
pass
23


Dynamic Partitioning
• Next-fit
– Scans memory from the location of the last
placement
–  More often allocate a free block at the end
of memory where the largest block is found
• The largest block of free memory is quickly broken
up into smaller blocks
• Compaction is required more frequently
24



Dynamic Partitioning
Allocation

25


×