operating systems: virtual memory

28
Memory Management: Virtual Memory Damian Gordon

Upload: damian-gordon

Post on 05-Apr-2017

215 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Operating Systems: Virtual Memory

Memory Management: Virtual Memory

Damian Gordon

Page 2: Operating Systems: Virtual Memory

Virtual Memory

HARD DISK

(MAIN MEMORY)

(SECONDARY MEMORY)

2

CACHE 1

Page 3: Operating Systems: Virtual Memory

Virtual Memory

HARD DISK

(MAIN MEMORY)

(SECONDARY MEMORY)

2

CACHE 1

Page 4: Operating Systems: Virtual Memory

Virtual Memory

HARD DISK

(MAIN MEMORY)

(SECONDARY MEMORY)

2

CACHE 1Computer programs are stored

here

Page 5: Operating Systems: Virtual Memory

Virtual Memory

HARD DISK

(MAIN MEMORY)

(SECONDARY MEMORY)

2

CACHE 1Computer programs are stored

hereUntil they need to

be executed

Page 6: Operating Systems: Virtual Memory

Virtual Memory

HARD DISK

(MAIN MEMORY)

(SECONDARY MEMORY)

2

CACHE 1Computer programs are stored

hereUntil they need to

be executed

Then they are

moved to here

Page 7: Operating Systems: Virtual Memory

In modern operating systems, before a program is loaded into main memory, it is divided into chunks, called PAGES.

Virtual Memory

Page 8: Operating Systems: Virtual Memory

In modern operating systems, before a program is loaded into main memory, it is divided into chunks, called PAGES.

Virtual Memory

Program 3

Page 9: Operating Systems: Virtual Memory

In modern operating systems, before a program is loaded into main memory, it is divided into chunks, called PAGES.

Virtual Memory

Program 3Page 2Page 3Page 4Page 5Page 6

Page 1

Page 7

Page 10: Operating Systems: Virtual Memory

Each PAGE is loaded into memory locations called PAGE FRAMES.

Virtual Memory

Page 11: Operating Systems: Virtual Memory

Each PAGE is loaded into memory locations called PAGE FRAMES.

Virtual Memory

200Kavailable

MAINMEMORY

Page 12: Operating Systems: Virtual Memory

Each PAGE is loaded into memory locations called PAGE FRAMES.

Virtual Memory

MAINMEMORY

Page Frame 1Page Frame 2Page Frame 3Page Frame 4Page Frame 5Page Frame 6Page Frame 7Page Frame 8Page Frame 9Page Frame 10

200Kavailable

Page 13: Operating Systems: Virtual Memory

If the PAGES are the exact same size as the PAGE FRAMES (and the same size as the disk sectors), this scheme works very well.

Virtual Memory

MAINMEMORY

Page Frame 1Page Frame 2Page Frame 3Page Frame 4Page Frame 5Page Frame 6Page Frame 7Page Frame 8Page Frame 9Page Frame 10

200Kavailable

Page 14: Operating Systems: Virtual Memory

The Memory Manager prepares a program for execution by doing the following:

1. Determine the number of pages in the program2. Locate enough empty page frames in main

memory3. Load all the program’s pages into them

The empty page frame does not have to be contagious.

Virtual Memory

Page 15: Operating Systems: Virtual Memory

Consider a program that 350 bytes, and the page size is 100 bytes.

Virtual Memory

Page 16: Operating Systems: Virtual Memory

Consider a program that 350 bytes, and the page size is 100 bytes.

Virtual Memory

Program 4:350 bytes

Page 17: Operating Systems: Virtual Memory

Consider a program that 350 bytes, and the page size is 100 bytes.

Virtual Memory

Program 4:350 bytes

Page 0

Page 18: Operating Systems: Virtual Memory

Program 4:350 bytes

Consider a program that 350 bytes, and the page size is 100 bytes.

Virtual Memory

Page 0

Page 1

Page 19: Operating Systems: Virtual Memory

Program 4:350 bytes

Consider a program that 350 bytes, and the page size is 100 bytes.

Virtual Memory

Page 0

Page 1

Page 2

Page 20: Operating Systems: Virtual Memory

Consider a program that 350 bytes, and the page size is 100 bytes.

Virtual Memory

Page 3

Program 4:350 bytes

Page 0

Page 1

Page 2

Page 21: Operating Systems: Virtual Memory

Consider a program that 350 bytes, and the page size is 100 bytes.

Virtual Memory

MainMemory

Page 3

Program 4:350 bytes

Page 0

Page 1

Page 2

Page 22: Operating Systems: Virtual Memory

Consider a program that 350 bytes, and the page size is 100 bytes.

Virtual Memory

MainMemory

OperatingSystem

Page 3

Program 4:350 bytes

Page 0

Page 1

Page 2

Page 23: Operating Systems: Virtual Memory

Consider a program that 350 bytes, and the page size is 100 bytes.

Virtual Memory

MainMemory

OperatingSystem

Page 2

Page 0

Page 1Page 3

Page 3

Program 4:350 bytes

Page 0

Page 1

Page 2

Page 24: Operating Systems: Virtual Memory

Consider a program that 350 bytes, and the page size is 100 bytes.

Virtual Memory

MainMemory

OperatingSystem

Page 2

Page 0

Page 1Page 3

A little bit of internal

fragmentation

Page 3

Program 4:350 bytes

Page 0

Page 1

Page 2

Page 25: Operating Systems: Virtual Memory

A useful extension to the notion of PAGING is DEMAND PAGING.

Demand Paging introduces the notion that you don’t have to load the whole program into memory, just part of it.

Because not all of the program needs to be in memory at the same time.

Demand Paging

Page 26: Operating Systems: Virtual Memory

This means that lots of programs can be run at the same time, and there is an illusion of a significantly larger amount of memory than with regular paging.

Demand Paging

Page 27: Operating Systems: Virtual Memory

To make this work, pages have to be moved very quickly from Secondary Storage to Main Memory and back again (this is called “swapping”).

Demand Paging

Page 28: Operating Systems: Virtual Memory

This leads to the concept of VIRTUAL MEMORY

The size of main memory appears much larger than the actual size, since many programs can appear to be fully loaded into main memory at the same time, when in actual fact, only part of many programs are loaded into main memory.

Virtual Memory