Chapter 8: Main Memory Chapter 8: Memory Management

19 downloads 145 Views 647KB Size Report
1. Chapter 8: Main Memory. 8.2. Silberschatz, Galvin and Gagne ©2005. Operating System Concepts – 7th Edition, Feb 22, 2005. Chapter 8: Memory ...
Chapter 8: Main Memory

Chapter 8: Memory Management  Background  Swapping  Contiguous Memory Allocation  Paging  Structure of the Page Table  Segmentation  Example: The Intel Pentium

Operating System Concepts – 7th Edition, Feb 22, 2005

8.2

Silberschatz, Galvin and Gagne ©2005

1

Objectives  To provide a detailed description of various ways of

organizing memory hardware  To discuss various memory-management techniques,

including paging and segmentation  To provide a detailed description of the Intel Pentium, which

supports both pure segmentation and segmentation with paging

Operating System Concepts – 7th Edition, Feb 22, 2005

8.3

Silberschatz, Galvin and Gagne ©2005

Background  Typical instruction/execution cycle 

Fetches an instruction from memory



Decode



Operand fetched from memory



Result stored back in memory

 Memory units see ONLY a stream of memory addresses 

Does not know  how

they are generated (PC, indirection, indexing, literal adress…)

 What

they are for (data, instruction)

 Accordingly, we can ignore HOW a program generates a memory

address 

We are interested only in the sequence of memory addresses generated by the running program

Operating System Concepts – 7th Edition, Feb 22, 2005

8.4

Silberschatz, Galvin and Gagne ©2005

2

Background (cont)  Program must be brought (from disk) into memory and placed

within a process for it to be run  Main memory and registers are only storage CPU can access

directly  Register access in one CPU clock (or less)  Main memory can take many cycles  Cache sits between main memory and CPU registers  Protection of memory required to ensure correct operation 

Each process has a separate memory space

Operating System Concepts – 7th Edition, Feb 22, 2005

8.5

Silberschatz, Galvin and Gagne ©2005

Base and Limit Registers  A pair of base and limit registers define the logical address space

Loaded only by the OS special privilege instruction  Unrestricted access to the OS

 The CPU hardware compare EVERY address generated in user

mode with the register

Operating System Concepts – 7th Edition, Feb 22, 2005

8.6

Silberschatz, Galvin and Gagne ©2005

3

Binding of Instructions and Data to Memory  Address binding of instructions and data to memory addresses

can happen at three different stages 

Compile time: If memory location known a priori, absolute code can be generated; must recompile code if starting location changes



Load time: Must generate relocatable code if memory location is not known at compile time



Execution time: Binding delayed until run time if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., base and limit registers)

Operating System Concepts – 7th Edition, Feb 22, 2005

8.7

Silberschatz, Galvin and Gagne ©2005

Multistep Processing of a User Program

Operating System Concepts – 7th Edition, Feb 22, 2005

8.8

Silberschatz, Galvin and Gagne ©2005

4

Logical vs. Physical Address Space  The concept of a logical address space that is bound to a

separate physical address space is central to proper memory management 

Logical address – generated by the CPU; also referred to as virtual address



Physical address – address seen by the memory unit / loaded into the memory address-register

 Logical and physical addresses are the same in compile-time

and load-time address-binding schemes; logical (virtual) and physical addresses differ in execution-time address-binding scheme

Operating System Concepts – 7th Edition, Feb 22, 2005

8.9

Silberschatz, Galvin and Gagne ©2005

Memory-Management Unit (MMU)  Hardware device that maps virtual to physical address  In MMU scheme, the value in the relocation register is added to

every address generated by a user process at the time it is sent to memory  The user program deals with logical addresses; it never sees the

real physical addresses 

Could set (a=346)/ inc (a++) / compute / compare…



But when use as an address *a  relocated relative to the base



Final location not know until the reference is made (exec time binding)

Operating System Concepts – 7th Edition, Feb 22, 2005

8.10

Silberschatz, Galvin and Gagne ©2005

5

Dynamic relocation using a relocation register

 The user program deals with logical addresses; it never sees the

real physical addresses 

Could set (a=346)/ inc (a++) / compute / compare…



But when use as an address *a  relocated relative to the base



Final location not known until the reference is made (exec time binding)

Operating System Concepts – 7th Edition, Feb 22, 2005

8.11

Silberschatz, Galvin and Gagne ©2005

Dynamic Loading  Entire program and all data must be in physical memory 

Size of a process 32 bits  The virtual page number is hashed into a page table. This page

table contains a chain of elements hashing to the same location.  Virtual page numbers are compared in this chain searching for a

match. If a match is found, the corresponding physical frame is extracted.

Operating System Concepts – 7th Edition, Feb 22, 2005

8.41

Silberschatz, Galvin and Gagne ©2005

Hashed Page Table

Operating System Concepts – 7th Edition, Feb 22, 2005

8.42

Silberschatz, Galvin and Gagne ©2005

21

Inverted Page Table  One associated page table per process  large amount

 One entry for each real page of memory  Entry consists of the virtual address of the page stored in that real

memory location, with information about the process that owns that page  Decreases memory needed to store each page table, but

increases time needed to search the table when a page reference occurs  Use hash table to limit the search to one — or at most a few —

page-table entries

Operating System Concepts – 7th Edition, Feb 22, 2005

8.43

Silberschatz, Galvin and Gagne ©2005

Inverted Page Table Architecture

Operating System Concepts – 7th Edition, Feb 22, 2005

8.44

Silberschatz, Galvin and Gagne ©2005

22

Segmentation  Memory-management scheme that supports user view of memory  A program is a collection of segments. A segment is a logical unit

such as: main program, procedure, function, method, object, local variables, global variables, common block, stack, symbol table, arrays

Operating System Concepts – 7th Edition, Feb 22, 2005

8.45

Silberschatz, Galvin and Gagne ©2005

User’s View of a Program

Operating System Concepts – 7th Edition, Feb 22, 2005

8.46

Silberschatz, Galvin and Gagne ©2005

23

Logical View of Segmentation 1 4

1 2

3

2

4

3

user space

Operating System Concepts – 7th Edition, Feb 22, 2005

physical memory space

8.47

Silberschatz, Galvin and Gagne ©2005

Segmentation Architecture  Logical address consists of a two tuple:

,  Segment table – maps two-dimensional physical addresses;

each table entry has: 

base – contains the starting physical address where the segments reside in memory



limit – specifies the length of the segment

 Segment-table base register (STBR) points to the segment

table’s location in memory  Segment-table length register (STLR) indicates number of

segments used by a program; segment number s is legal if s < STLR

Operating System Concepts – 7th Edition, Feb 22, 2005

8.48

Silberschatz, Galvin and Gagne ©2005

24

Segmentation Architecture (Cont.)  Protection 

With each entry in segment table associate:  validation

bit = 0 ⇒ illegal segment

 read/write/execute

privileges

 Protection bits associated with segments; code sharing

occurs at segment level  Since segments vary in length, memory allocation is a

dynamic storage-allocation problem  A segmentation example is shown in the following diagram   map two dimensional user-defined address into one

dimensional physical address == segment table

Operating System Concepts – 7th Edition, Feb 22, 2005

8.49

Silberschatz, Galvin and Gagne ©2005

Segmentation Hardware

Operating System Concepts – 7th Edition, Feb 22, 2005

8.50

Silberschatz, Galvin and Gagne ©2005

25

Example of Segmentation

Operating System Concepts – 7th Edition, Feb 22, 2005

8.51

Silberschatz, Galvin and Gagne ©2005

Example: The Intel Pentium  Supports both segmentation and segmentation with paging  CPU generates logical address 

Given to segmentation unit  Which



produces linear addresses

Linear address given to paging unit  Which

generates physical address in main memory

 Paging

units form equivalent of MMU

Operating System Concepts – 7th Edition, Feb 22, 2005

8.52

Silberschatz, Galvin and Gagne ©2005

26

Logical to Physical Address Translation in Pentium

Page size: 4KB or 4MB Operating System Concepts – 7th Edition, Feb 22, 2005

8.53

Silberschatz, Galvin and Gagne ©2005

Intel Pentium Segmentation

Segment as large as 4KB Maximum number of segments per process: 16K Logical space of a process divided into 2 partitions: (8KB) segments private + (8KB) segments shared Selector = S(13) g(1)Local Description Table / Global Descriptor Table p(2)protection

Operating System Concepts – 7th Edition, Feb 22, 2005

8.54

Silberschatz, Galvin and Gagne ©2005

27

Pentium Paging Architecture

Operating System Concepts – 7th Edition, Feb 22, 2005

8.55

Silberschatz, Galvin and Gagne ©2005

Linear Address in Linux Broken into four parts:

Operating System Concepts – 7th Edition, Feb 22, 2005

8.56

Silberschatz, Galvin and Gagne ©2005

28

Three-level Paging in Linux

Operating System Concepts – 7th Edition, Feb 22, 2005

8.57

Silberschatz, Galvin and Gagne ©2005

End of Chapter 8

29