Top Banner
9.1 Operating System Concepts Paging Example
46

9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

Jan 17, 2016

Download

Documents

David Neal
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.1Operating System Concepts

Paging Example

Page 2: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.2Operating System Concepts

Page 3: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.3Operating System Concepts

Free Frames

Before allocation After allocation

Page 4: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.4Operating System Concepts

Implementation of Page Table

Page table is kept in main memory. Page-table base register (PTBR) points

to the page table. Page-table length register (PRLR)

indicates size of the page table.

Page 5: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.5Operating System Concepts

In this scheme every data/instruction access requires two memory accesses. One for the page table and one for the data/instruction.

The two memory access problem can be solved by the use of a special fast-lookup hardware cache called associative memory or translation look-aside buffers (TLBs)

Page 6: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.6Operating System Concepts

Associative Memory

Associative memory – parallel search

Page # Frame #

Page 7: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.7Operating System Concepts

Address translation (A´, A´´)If A´ is in associative register,

get frame # out. Otherwise get frame # from

page table in memory

Page 8: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.8Operating System Concepts

Paging Hardware With TLB

Page 9: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.9Operating System Concepts

Effective Access Time Associative Lookup = time unit Assume memory cycle time is 1

microsecond Hit ratio – percentage of times that a page

number is found in the associative registers; ration related to number of associative registers.

Page 10: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.10Operating System Concepts

Hit ratio = Effective Access Time (EAT)

EAT = (1 + ) + (2 + )(1 – )

= 2 + –

Page 11: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.11Operating System Concepts

Memory Protection Memory protection implemented by

associating protection bit with each frame.

Valid-invalid bit attached to each entry in the page table:

Page 12: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.12Operating System Concepts

“ valid” indicates that the associated page is in the process’ logical address space, and is thus a legal page.

“invalid” indicates that the page is not in the process’ logical address space.

Page 13: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.13Operating System Concepts

Valid (v) or Invalid (i) Bit In A Page Table

Page 14: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.14Operating System Concepts

Page Table Structure

Hierarchical Paging

Hashed Page Tables

Inverted Page Tables

Page 15: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.15Operating System Concepts

Hierarchical Page Tables

Break up the logical address space into multiple page tables.

A simple technique is a two-level page table.

Page 16: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.16Operating System Concepts

A logical address (on 32-bit machine with 4K page size) is divided into:a page number consisting of 20 bits.a page offset consisting of 12 bits.

Since the page table is paged, the page number is further divided into:a 10-bit page number. a 10-bit page offset.

Page 17: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.17Operating System Concepts

Two-Level Paging Example

page offset

pi d

10 10 12

page number

p2

Page 18: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.18Operating System Concepts

Two-Level Page-Table Scheme

Page 19: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.19Operating System Concepts

Address-Translation Scheme

Address-translation scheme for a two-level 32-bit paging architecture

Page 20: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.20Operating System Concepts

Hashed Page Tables

Common in address spaces > 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.

Page 21: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.21Operating System Concepts

Virtual page numbers are compared in this chain searching for a match. If a match is found, the corresponding physical frame is extracted.

Page 22: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.22Operating System Concepts

Hashed Page Table

Page 23: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.23Operating System Concepts

Inverted Page Table 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.

Page 24: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.24Operating System Concepts

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.

Page 25: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.25Operating System Concepts

Inverted Page Table Architecture

Page 26: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.26Operating System Concepts

Shared Pages Shared codeOne copy of read-only (reentrant) code

shared among processes (i.e., text editors, compilers, window systems).

Shared code must appear in same location in the logical address space of all processes.

Page 27: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.27Operating System Concepts

Private code and data Each process keeps a separate copy

of the code and data.The pages for the private code and

data can appear anywhere in the logical address space.

Page 28: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.28Operating System Concepts

Shared Pages Example

Page 29: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.29Operating System Concepts

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:

Page 30: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.30Operating System Concepts

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

Page 31: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.31Operating System Concepts

User’s View of a Program

Page 32: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.32Operating System Concepts

Logical View of Segmentation

1

3

2

4

1

4

2

3

user space physical memory space

Page 33: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.33Operating System Concepts

Segmentation Architecture Logical address consists of a two tuple:

<segment-number, offset>, 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.

Page 34: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.34Operating System Concepts

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.

Page 35: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.35Operating System Concepts

Segmentation Architecture (Cont.)

Relocation.dynamicby segment table

Page 36: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.36Operating System Concepts

Sharing.shared segmentssame segment number

Allocation.first fit/best fitexternal fragmentation

Page 37: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.37Operating System Concepts

Segmentation Architecture (Cont.) Protection. With each entry in

segment table associate:validation bit = 0 illegal segmentread/write/execute privileges

Protection bits associated with segments; code sharing occurs at segment level.

Page 38: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.38Operating System Concepts

Since segments vary in length, memory allocation is a dynamic storage-allocation problem.

A segmentation example is shown in the following diagram

Page 39: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.39Operating System Concepts

Segmentation Hardware

Page 40: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.40Operating System Concepts

Example of Segmentation

Page 41: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.41Operating System Concepts

Sharing of Segments

Page 42: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.42Operating System Concepts

Segmentation with Paging – MULTICS The MULTICS system solved problems of

external fragmentation and lengthy search times by paging the segments.

Solution differs from pure segmentation in that the segment-table entry contains not the base address of the segment, but rather the base address of a page table for this segment.

Page 43: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.43Operating System Concepts

MULTICS Address Translation Scheme

Page 44: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.44Operating System Concepts

Segmentation with Paging – Intel 386

As shown in the following diagram, the Intel 386 uses segmentation with paging for memory management with a two-level paging scheme.

Page 45: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.45Operating System Concepts

Intel 30386 Address Translation

Page 46: 9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.

9.46Operating System Concepts

9.2 9.5 9.10 9.14 9.17