• No results found

Memory Management

N/A
N/A
Protected

Academic year: 2020

Share "Memory Management"

Copied!
30
0
0

Loading.... (view fulltext now)

Full text

(1)

Memory

Management

(2)

MEMORY HIERARCHY

Memory Hierarchy is to obtain the highest possible access speed

while minimizing the total cost of the memory system

.

(3)

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 secondary storage.

Internet storages(almost free

(4)

To ensure fair, secure, orderly and efficient use of memory

Fair means, fair distribution of memory among processes

Secure means, once a process is brought in memory it should not

overwrite another process and must never cross its address space

Orderly means, should follow some algorithm to allocate/de allocate the

memory to processes

Efficient means, if a process needs 10KB, it should be given 10KB and not

100KB

Above tasks can be performed by doing following:

Keeping track of used and free memory space

When, where and how much memory to allocate and de-allocateSwapping processes in and out of main memory

(5)

Usually, a program resides on a disk as a binary executable file. To be executed, the program must be brought into memory.  Addresses in the source program are

generally symbolic (such as count). A

compiler will typically bind these symbolic addresses to relocatable addresses (such as 14 bytes from the beginning of this module). The linkage editor or loader will in turn bind the relocatable addresses to absolute

addresses (such as 74014).

Binding instructions and data to memory addresses can be done at:

a) Compile time

b) Load time

c) Execution time

(6)

a) Compile time

If you know at compile time where the process will

reside in memory, the absolute code can be

generated by the compiler.

Limitations:

Process must reside in the same memory region

for it to execute correctly. If the addresses are not

free, we cannot load the program for the

execution, even if lot of memory space is

available

(7)

b) Load time (Re-locatable)

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 at any free slot in

memory. Data and instructions are assigned

addresses by loader at load time

Address Binding

(8)

c) Execution Time

If the process can be moved during its execution

from one memory region to another, then binding

must be delayed until run time.

The relative addresses are converted dynamically to

absolute addresses by special hardware.

(9)

LOGICAL & PHYSICAL ADDRESSES

Logical Addresses / Virtual Addresses.

An address generated by the process / CPU; refers to an

instruction or data within the address space of the

process.

Process generate address within its own address space.

The set of all logical addresses generated by a process

comprises its logical address space.

(10)

LOGICAL & PHYSICAL ADDRESSES

Physical Addresses.

An address for a main memory location where instruction or data resides is

called the physical address.

Set of all physical addresses corresponding to the logical addresses comprises

the physical address space of that process.

Note:

The run time mapping of logical to physical address is done by a piece of the CPU h/w called the memory management unit (MMU).

(11)

LOGICAL & PHYSICAL ADDRESSES

Exqmple

There is a Base / Relocation register, whose contents are added to

every address generated by a user process at the time it is sent to

memory.

(12)

SOURCE CODE TO EXECUTION

Object code is in the form of Machine instruction that the underlying CPU can understand, but it is not executable

because of certain references (e.g.

reference to some library calls) which are not part of it.

Linkage Editor links the function calls that are not part of the object code i.e. static linking.

COMPILE / ASSEMBLE

LINKAGE EDITOR

LOADER

SOURCE CODE

OBJECT MODULE

LOAD MODULE

BINARY IMAGE

Compile Time / Absolute addresses

Load Time /

Re-locatable addresses

(13)

STATIC & DYNAMIC LOADING

Static Loading

In static loading, The entire program and all data of a process must be in

memory for the process to execute. This results in a large size of the process.

Dynamic Loading

With dynamic loading, a routine is not loaded into the main memory until it

is called.

All routines are kept on disk in a relocatable load format and a certain

routine is loaded only when it is needed.

This method is particularly useful when large amounts of code are needed to

handle infrequently occurring cases, such as error routines.

Advantages.

Less time needed to load a programLess memory space needed

Disadvantages.

Time consuming Run time activity resulting in slower program execution. (i.e. getting some piece of code from disk and loading it in memory)

(14)

STATIC & DYNAMIC LINKING

Static 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.

Dynamic Linking

The concept of dynamic linking is similar to that of dynamic loading.In dynamic linking the linking decision 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

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 of requirement

Advantages.

Less time needed to load a programLess memory space needed

Disadvantages.

Time consuming Run time activity resulting in slower program execution. (i.e. getting some

piece of code from disk and loading it in memory)

(15)

SWAPPING

A process can be

swapped

out (roll out) temporarily out of

memory to a

backing store

, and then brought back (roll in) into

memory for continued execution

(16)

SWAPPING

Memory Manager is responsible to keep track of which parts of

memory are in use and which parts are not in use to bring

programs /parts of programs form auxiliary memory to main

memory & vice versa.

A process that is swapped out must be swapped back into the

same memory space it occupied previously (if binding is done at

load time). However, in case of execution time binding, a process

can be swapped back to a different memory space

CPU Memory Manager Memory Hard Disk

Addr generated by CPU is called Logical Address

Address seen by memory unit is called Physical / Absolute addr

(17)

Issues with Swapping

Quantum for RR Scheduler

Pending I/O for swapped out processes.

Use space used for I/O

Solutions

Don’t swap out processes with pending I/O

Do I/O using kernal space.

(18)

SWAPPING

Major part of swap time is transfer time; the total transfer time is

directly proportional to the amount of memory swapped

Example

Process size = 1 MB

Transfer rate = 5 MB/sec

Swap out time = 1/5 sec = 200 ms

Average latency

= 8 ms

(19)

CONTIGUOUS ALLOCATION

Entire process will come in memory at a time and it will be loaded at one

place i.e. contiguous

The memory is divided into two main parts:

User Space

; contain the user programs

Kernel Space

; contains the OS kernel

A process is placed in a single contiguous area in memory

Base

(re-location) and

limit

registers are used to point to the smallest

memory address of a process and its size respectively

Two techniques used for contiguous allocation are:

Multiprogramming with Fixed Tasks

(MFT)

. (Multiple fixed size

partitions)

Multiprogramming with Variable Tasks

(MVT)

. (Multiple variable size

partitions)

(20)

M F T

Multi programming with Fixed Tasks; Fixed

Partitioning

Memory is divided into several fixed size partitions.

Each partition may be of same or different size.

Each partition contain exactly one process / task

Boundaries for partitions are set at boot time and

are not movable.

The degree of multiprogramming is bound by the

number of partitions.

Main memory use is inefficient, because any

(21)

M F T

21

Hard ware requirements are a Base Register, which is loaded by the OS when it switches to a process

Physical Address = Logical Address + Base Register

(22)

M F T with Multiple input Queues

Every partition will have a separate queue of processes i.e. One input Queue per partition

A process will be moved to a separate queue depending on its size

Limitation: Potential for wasted memory space – an empty partition but no process in the associated queue.

Partition 4

Partition 3

Partition 2

Partition 1

OS

100 K

300 K

200 K

150 K

Input

(23)

M F T with Single input Queue

23

Single input queue for all the processes.

Search the queue for a process when a partition becomes empty

First-fit, best-fit, worst-fit space allocation algorithms

Partition 4

Partition 3

Partition 2

Partition 1

OS

100 K

300 K

200 K

150 K

(24)

Issues with MFT

Internal fragmentation:

wasted space inside

a fixed size memory region.

No sharing

between processes

Load time-address binding

with multiple

(25)

M V T / Dynamic Partitioning

Multi programming with Variable Tasks; or Dynamic Partitioning

This is a generalization of MFT.

Both the number and size of partitions change with time

For a process, an appropriate partition (hole) is allocated to it. If

the hole is too large, it is split into two.

Partitions are created dynamically (run time), so that each process

is loaded into a partition of exactly the same size as that of the

process.

Jobs can move form one partition to another. After swapping out

the process can be swapped in to some other partition

It reduces internal fragmentation but does have external

fragmentation.

(26)

M V T / Dynamic Partitioning

Limitation

This technique starts well but eventually leads to a situation where

a lot of small holes are available in memory. As time goes on the

memory become more and more fragmented. All these holes make

up enough memory to bring in a process but these holes are not

contiguous

External fragmentation

refers to the state of memory space when

the total amount of unused space exists to satisfy a request but

this memory space is not contiguous

Solution is

Compaction

.

From time to time OS shifts all the

(27)

MVT

200K 50K

(28)

External Fragmentation

Memory external to all processes is fragmented

Suppose now a process of size 10 MB comes, it

cannot be accommodated, we do have 16 MB free

memory, but that is not contiguous

Can resolve using

compaction

OS moves processes so that they are contiguous

Time consuming and wastes CPU time

OS (8M) P1 (20M) P2 (14M) P3 (18M) Empty (56M) Empty (4M) P4(8M) Empty (6M) P2 (14M) Empty (6M)

M V T / Dynamic Partitioning

(29)

M V T - Placement Algorithms.

When it is time to load / swap a process into main memory and if there is more than one free block of memory of sufficient size, then the OS must decide which free block to allocate. It can use any of the following algorithms:

Best Fit

Scan all holes and chooses the one with a size that best meets the

requirements.

Since smallest block is found for process, the smallest amount of

fragmentation is left

Worst performer overall

Memory compaction must be done more often

First Fit

Scan from beginning or from where the previous first fit search ended and

chooses the first available block that is large enough

Fastest

May have many process loaded in the front end of memory that must be

(30)

M V T - Placement Algorithms.

Worst Fit

Scan all holes and chooses the one with a largest size.

This strategy produces a largest leftover hole, which may be more useful than

the smaller leftover hole from a best fit approach.  Problem

Show how the available memory of 810 KB will accommodate following job

sequence with all the three placement algorithms.

Job Sequence:

References

Related documents

Videographer to our two sample estate testimonials page dedicated agent would need to quite responsive and energy really good morning i thought they not.. Upfront investment as well

Loading-case3 (displacement in the middle area of the plate upper surface) is useful to investigate the stress distribution correlated to a dis- placement applied on the

A study of 130 cases investigated for suspected sexual abuse of elders residing in the community found that 77% of the alleged offenders were members of the elder = s family

6 Article 4: «States Parties condemn all propaganda and all organizations which are based on ideas or theories of superiority of one race or group of persons of one

[r]

Inverse modeling of soil water content to estimate the hydraulic properties of a shallow soil and the associated weathered bedrock.. Ayral

Correspondence and orders for medicines written in English will facilitate  execution of orders.. MRP

Extensive reading often called “graded reading” is reading for pleasure in a second language, where the student learns reading by choose the material make them interest