0% found this document useful (0 votes)
73 views90 pages

Ch8 Memory Management

This document discusses main memory management techniques. It begins by explaining primary and secondary memory, as well as different types of memory like RAM, ROM, PROM, EPROM, and EEPROM. It then describes background on memory management and challenges like fragmentation. The document introduces concepts like fixed and variable partitioning for contiguous memory allocation, and address binding for mapping logical to physical addresses. It provides details on advantages and disadvantages of different memory management techniques.

Uploaded by

Maddy Kushwaha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views90 pages

Ch8 Memory Management

This document discusses main memory management techniques. It begins by explaining primary and secondary memory, as well as different types of memory like RAM, ROM, PROM, EPROM, and EEPROM. It then describes background on memory management and challenges like fragmentation. The document introduces concepts like fixed and variable partitioning for contiguous memory allocation, and address binding for mapping logical to physical addresses. It provides details on advantages and disadvantages of different memory management techniques.

Uploaded by

Maddy Kushwaha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 90

Chapter 8: Main Memory

Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009
Chapter 8: Memory Management

 Background
 Swapping
 Contiguous Memory Allocation
 Paging
 Structure of the Page Table
 Segmentation

Operating System Concepts – 8th Edition 8.2 Silberschatz, Galvin and Gagne ©2009
Objectives

 To provide a detailed description of various ways of organizing memory


hardware

 To discuss various memory-management techniques, including paging and


segmentation

Operating System Concepts – 8th Edition 8.3 Silberschatz, Galvin and Gagne ©2009
Memory

 Computer memory is any physical device capable of storing

information temporarily or permanently.

 1. Primary Memory

2. Secondary Memory

Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009
 Random Access Memory(RAM) ,is a volatile memory that loses
its contents when the computer or hardware device losses
power.
 Read Only Memory(ROM), is a non-volatile memory, sometimes
abbreviated as NVRAM, is a memory that keeps its contents
even if the power is lost.
 Computer uses special ROM called BIOS(Basic Input Output
System) which stores the software needed to access computer
hardware such as hard disk and then load an operating system
into RAM and start to execute it.

Operating System Concepts – 8th Edition 8.5 Silberschatz, Galvin and Gagne ©2009
 PROM: In which you store a program. But once the PROM has
been used , you cannot wipe it clean and use it to store
something else. E.g. CD-R

 EPROM: that can be erased by exposing it to UV light.


E.g. CD-RW

 EEPROM: is a special type of ROM that can be erased by


exposing it to an electrical charge.
E.g. Pendrive

Operating System Concepts – 8th Edition 8.6 Silberschatz, Galvin and Gagne ©2009
Background
 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

 Memory unit only sees a stream of addresses + read requests, or address +


data and write requests

 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

Operating System Concepts – 8th Edition 8.7 Silberschatz, Galvin and Gagne ©2009
Base and Limit Registers
 A pair of base and limit registers define the logical address space

Operating System Concepts – 8th Edition 8.8 Silberschatz, Galvin and Gagne ©2009
Hardware Address Protection with Base and Limit Registers

Operating System Concepts – 8th Edition 8.9 Silberschatz, Galvin and Gagne ©2009
 Multiprogramming with fixed partitions (Jun 2016,Dec 2018)
 Multiprogramming with Variable Partitions (Jun 2016)
 Fragmentation (Dec 2018)

Operating System Concepts – 8th Edition 8.10 Silberschatz, Galvin and Gagne ©2009
Fixed Partitioning: 
This is the oldest and simplest
technique used to put more than one
process in the main memory.

In this partitioning, the number of


partitions (non-overlapping) in RAM
is fixed but the size of each partition
may or may not be the same.

As it is a contiguous allocation,
hence no spanning is allowed. Here
partitions are made before execution
or during system configure

Operating System Concepts – 8th Edition 8.11 Silberschatz, Galvin and Gagne ©2009
 Advantages of Fixed Partitioning –  
 Easy to implement: 
Algorithms needed to implement Fixed Partitioning are easy to
implement. It simply requires putting a process into a certain partition
without focusing on the emergence of Internal and External
Fragmentation. 
 
 Little OS overhead: 
Processing of Fixed Partitioning requires lesser excess and indirect
computational power. 

Operating System Concepts – 8th Edition 8.12 Silberschatz, Galvin and Gagne ©2009
 Disadvantages of Fixed Partitioning – 

 Internal Fragmentation: 
Main memory use is inefficient. Any program, no matter how small,
occupies an entire partition. This can cause internal fragmentation. 
 
 External Fragmentation: 
The total unused space (as stated above) of various partitions cannot be
used to load the processes even though there is space available but not
in the contiguous form (as spanning is not allowed). 
 

Operating System Concepts – 8th Edition 8.13 Silberschatz, Galvin and Gagne ©2009
 Disadvantages of Fixed Partitioning –

 Limit process size: 


Process of size greater than the size of the partition in Main Memory
cannot be accommodated. The partition size cannot be varied according
to the size of the incoming process size.
 
 Limitation on Degree of Multiprogramming: 
Main Memory is divided into a fixed number of partitions. Suppose if
there are partitions in RAM and are the number of processes,
then condition must be fulfilled. Number of processes greater than the
number of partitions in RAM is invalid in Fixed Partitioning.
 

Operating System Concepts – 8th Edition 8.14 Silberschatz, Galvin and Gagne ©2009
 Variable Partitioning –
It is a part of Contiguous allocation technique. It
is used to alleviate the problem faced by Fixed
Partitioning. In contrast with fixed partitioning,
partitions are not made before the execution or
during system configure.
Various features associated with variable
Partitioning-
 Initially RAM is empty and partitions are made
during the run-time according to process’s need
instead of partitioning during system configure.
 The size of partition will be equal to incoming
process.
 The partition size varies according to the need of
the process so that the internal fragmentation
can be avoided to ensure efficient utilization of
RAM.
 Number of partitions in RAM is not fixed and
depends on the number of incoming process and
Main Memory’s size.

Operating System Concepts – 8th Edition 8.15 Silberschatz, Galvin and Gagne ©2009
 Advantages of Variable Partitioning –
 No Internal Fragmentation:
In variable Partitioning, space in main memory is allocated strictly according to the
need of process, hence there is no case of internal fragmentation. There will be no
unused space left in the partition.
 No restriction on Degree of Multiprogramming:
More number of processes can be accommodated due to absence of internal
fragmentation. A process can be loaded until the memory is empty.
 No Limitation on the size of the process:
In Fixed partitioning, the process with the size greater than the size of the largest
partition could not be loaded and process can not be divided as it is invalid in
contiguous allocation technique. Here, In variable partitioning, the process size
can’t be restricted since the partition size is decided according to the process
size.

Operating System Concepts – 8th Edition 8.16 Silberschatz, Galvin and Gagne ©2009
 Disadvantages of Variable Partitioning –
 Difficult Implementation:
Implementing variable Partitioning is difficult as compared to Fixed Partitioning as it
involves allocation of memory during run-time rather than during system configure.
 External Fragmentation:
There will be external fragmentation inspite of absence of internal fragmentation.

Operating System Concepts – 8th Edition 8.17 Silberschatz, Galvin and Gagne ©2009
Address Binding(Dec 2022)
 Inconvenient to have first user process physical address always at 0000

 Further, addresses represented in different ways at different stages of a program’s life


 Source code addresses usually symbolic(such as count)
 Compiled code addresses bind to relocatable addresses
 i.e. “14 bytes from beginning of this module”
 Linker or loader will bind relocatable addresses to absolute addresses
 i.e. 74014
 Each binding maps one address space to another

Operating System Concepts – 8th Edition 8.18 Silberschatz, Galvin and Gagne ©2009
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 you know at compile time where the process will reside
in memory than absolute code can be generated; must recompile code
if starting location changes.(Railway Reservation)
 Load time: Must generate relocatable code if memory location is not
known at compile time.(Flight Booking)
 Execution time: If the process can be moved during its execution from
one memory segment to another, then binding must be delayed until run
time.(Seat Exchange in Flight)
Need hardware support for address maps (e.g., base and limit registers)

Operating System Concepts – 8th Edition 8.19 Silberschatz, Galvin and Gagne ©2009
Multistep Processing of a User Program

Operating System Concepts – 8th Edition 8.20 Silberschatz, Galvin and Gagne ©2009
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 – An address generated by the CPU is commonly referred
to as virtual address.
 Physical address – An address seen by the memory unit is commonly
referred to as Physical address.

 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
 Logical address space is the set of all logical addresses generated by a
program
 Physical address space is the set of all physical addresses generated by a
program

Operating System Concepts – 8th Edition 8.21 Silberschatz, Galvin and Gagne ©2009
Memory-Management Unit (MMU) Dec 2018

 The run time mapping from virtual to physical addresses is done by a hardware device
called the Memory management unit(MMU).

 Many methods possible, covered in the rest of this chapter

 To start, consider simple scheme where the value in the relocation register is added to
every address generated by a user process at the time it is sent to memory
 Base register now called relocation register
 MS-DOS on Intel 80x86 used 4 relocation registers

 The user program deals with logical addresses; it never sees the real physical
addresses
 Execution-time binding occurs when reference is made to location in memory
 Logical address bound to physical addresses

Operating System Concepts – 8th Edition 8.22 Silberschatz, Galvin and Gagne ©2009
Dynamic relocation using a
relocation register

Operating System Concepts – 8th Edition 8.23 Silberschatz, Galvin and Gagne ©2009
 So we have two different types of addresses: Logical addresses (in the range 0 to
max) and Physical addresses (in the range R + 0 to R + max for a base value R).

 The user generate only Logical addresses and thinks that the process runs in location
0 to max.

Operating System Concepts – 8th Edition 8.24 Silberschatz, Galvin and Gagne ©2009
Dynamic Loading

 Routine is not loaded until it is called

 Better memory-space utilization; unused routine is never loaded

 All routines kept on disk in relocatable load format

 Useful when large amounts of code are needed to handle infrequently occurring
cases

 No special support from the operating system is required


 Implemented through program design
 OS can help by providing libraries to implement dynamic loading

Operating System Concepts – 8th Edition 8.25 Silberschatz, Galvin and Gagne ©2009
Dynamic Linking

 Static linking – system libraries and program code combined by the loader into
the binary program image
 Dynamic linking –linking postponed until execution time
 Small piece of code, stub, used to locate the appropriate memory-resident
library routine
 Stub replaces itself with the address of the routine, and executes the routine
 Operating system checks if routine is in processes’ memory address
 If not in address space, add to address space
 Dynamic linking is particularly useful for libraries
 System also known as shared libraries

Operating System Concepts – 8th Edition 8.26 Silberschatz, Galvin and Gagne ©2009
Memory Allocation Preliminaries:
 Data structure used by Compiler and Operating System can be classified into the following categories.

 Linear Data Structures

1. One-dimensional Array
2. Linked List
3. Stack
4. Queue

 Non-Linear data Structures

1. Tree
2. Graph

Operating System Concepts – 8th Edition 8.27 Silberschatz, Galvin and Gagne ©2009
Swapping (Dec 2010, Dec 2012,Jun 2015,Jan 2016,Nov 2016, June 2017,
Nov 2017)

 Swapping is the method of preventing an active process from


executing for a temporary time period in which another process
takes the address space that was allocated to the former process.

 A process can be swapped temporarily out of memory to a backing


store, and then brought back into memory for continued execution
 Total physical memory space of processes can exceed physical
memory

Operating System Concepts – 8th Edition 8.28 Silberschatz, Galvin and Gagne ©2009
 Backing store – fast disk large enough to accommodate copies of all
memory images for all users; must provide direct access to these
memory images

 Backing store (2) is typically part of a hard disk that is used by a paging


or swapping system to store information not currently in main
memory. Backing store is slower and cheaper than main memory.

 The term backing storage refers to any non-volatile data storage that will


retain a computer's data, even after the computer is powered off.
Common types of backing storage devices are hard drives, SSD, external
hard disk drives, optical media such as CD or DVD, and flash media such
as thumb drives and memory sticks.

Operating System Concepts – 8th Edition 8.29 Silberschatz, Galvin and Gagne ©2009
 Roll out, roll in – swapping variant used for priority-based scheduling
algorithms; lower-priority process is swapped out so higher-priority
process can be loaded and executed

 Memory Compaction: When swapping creates multiple holes in


memory, it is possible to combine them all into a big one by moving all
running processes downwards. This technique is called Memory
Compaction , but its downside, that it requires lots of CPU time.

 Major part of swap time is transfer time; total transfer time is directly
proportional to the amount of memory swapped.

Operating System Concepts – 8th Edition 8.30 Silberschatz, Galvin and Gagne ©2009
 System maintains a ready queue of ready-to-run processes which have memory
images on disk

 Does the swapped out process need to swap back in to same physical addresses?
- Dynamic relocation of processes.
 Depends on address binding method
 Plus consider pending I/O to / from process memory space

 Modified versions of swapping are found on many systems (i.e., UNIX, Linux, and
Windows)
 Swapping normally disabled
 Started if more than threshold amount of memory allocated
 Disabled again once memory demand reduced below threshold

Operating System Concepts – 8th Edition 8.31 Silberschatz, Galvin and Gagne ©2009
Schematic View of Swapping

Operating System Concepts – 8th Edition 8.32 Silberschatz, Galvin and Gagne ©2009
Context Switch Time including Swapping
 If next processes to be put on CPU is not in memory, need to swap out a process and
swap in target process
 Context switch time can then be very high
 100MB process swapping to hard disk with transfer rate of 50MB/sec
 Swap out time of 2008 ms
 Plus swap in of same sized process
 Total context switch swapping component time of 4016ms (> 4 seconds)
 Can reduce if reduce size of memory swapped – by knowing how much memory
really being used
 System calls to inform OS of memory use via request memory and release
memory

Operating System Concepts – 8th Edition 8.33 Silberschatz, Galvin and Gagne ©2009
Memory Partitioning
 Main objective of memory management is to bring programs into memory
for execution by the processor.

 In all multiprogramming systems this job is executed by using virtual


memory.

 Two types of memory Partitioning


(1) Contiguous allocation
(2) Non- Contiguous allocation

Operating System Concepts – 8th Edition 8.34 Silberschatz, Galvin and Gagne ©2009
Contiguous Allocation

 Main memory usually into two partitions:


 Resident operating system, usually held in low memory with interrupt
vector
 User processes then held in high memory
 Each process contained in single contiguous section of memory

 Relocation registers used to protect user processes from each other, and from
changing operating-system code and data
 Base register contains value of smallest physical address
 Limit register contains range of logical addresses – each logical address
must be less than the limit register
 MMU maps logical address dynamically

Operating System Concepts – 8th Edition 8.35 Silberschatz, Galvin and Gagne ©2009
Hardware Support for Relocation
and Limit Registers

Operating System Concepts – 8th Edition 8.36 Silberschatz, Galvin and Gagne ©2009
Contiguous Allocation (Cont.) (Jan 16)

 Multiple-partition allocation
 Degree of multiprogramming limited by number of partitions
 Hole – block of available memory; holes of various size are scattered throughout memory
 When a process arrives, it is allocated memory from a hole large enough to accommodate it
 Process exiting frees its partition, adjacent free partitions combined
 Operating system maintains information about:
a) allocated partitions b) free partitions (hole)

OS OS OS OS

process 5 process 5 process 5 process 5


process 9 process 9
process 8 process 10

process 2 process 2 process 2 process 2

Operating System Concepts – 8th Edition 8.37 Silberschatz, Galvin and Gagne ©2009
Memory Partition:

230K 520K 400K 20K 360K

Processes:

300K 100K 400K 500K

Operating System Concepts – 8th Edition 8.38 Silberschatz, Galvin and Gagne ©2009
Dynamic Storage-Allocation Problem
 First-fit: Allocate the first hole that is big enough
 Scans the list until it finds a hole big enough to accommodate the
requesting process.
 It is fast as it searches as little as possible.
 It begins traversing the list from the beginning and allocates memory
from the first hole it encounters large enough to satisfy the request.

Example: Suppose a process requests 10KB of memory and the

memory manager currently has a list of unallocated blocks of


7KB, 13KB, 17KB, 11KB and 15KB Blocks.

The First-fit strategy will allocate the 13KB block to the process.

Operating System Concepts – 8th Edition 8.39 Silberschatz, Galvin and Gagne ©2009
 Best-fit: Refers to searching the list of free holes and then places a process
in the smallest block of free memory available in which it gets fit.

Allocate the smallest hole that is big enough; must search entire list, unless
ordered by size
 Produces the smallest leftover hole

Example: Suppose a process requests 10KB of memory and the memory


manager currently has a list of unallocated blocks of 7KB, 13KB, 17KB,
11KB and 15KB Blocks.

The best-fit strategy will allocate the 11KB block to the process.

Operating System Concepts – 8th Edition 8.40 Silberschatz, Galvin and Gagne ©2009
 Worst-fit: Refers to placing of process in the largest block of free
memory available.
- Allocate the largest hole; must also search entire list
 Produces the largest leftover hole
Example: Suppose a process requests 10KB of memory and the
memory
manager currently has a list of unallocated blocks of 7KB, 13KB, 17KB,
11KB and 15KB Blocks.

The Worst-fit strategy will allocate the 17KB block to the process.
Among it 10KB
block used by the process and 7KB left for future use.

 First-fit and best-fit better than worst-fit in terms of speed and


storage utilization

Operating System Concepts – 8th Edition 8.41 Silberschatz, Galvin and Gagne ©2009
 Next-fit : It is almost same as First fit. Unlike First fit , it keeps information
of the location where it has left off.
It coverts the list into a circular list with the last block pointing
to the pointer to the first free one.

Example: If the list of unallocated blocks consist of 7KB, 13KB, 17KB,


11KB and 15KB Blocks and the memory manager has last allocated a
block from the list between the 17KB and 11KB block, then when a
process requests a 10KB block, Next fit will allocate the 13KB block to
the process.

Operating System Concepts – 8th Edition 8.42 Silberschatz, Galvin and Gagne ©2009
Example
 Given five memory partitions of 100Kb, 500Kb, 200Kb, 300Kb,
600Kb (in order), how would the first-fit, best-fit, and worst-fit
algorithms place processes of 212 Kb, 417 Kb, 112 Kb, and 426
Kb (in order)? Which algorithm makes the most efficient use of
memory?

Operating System Concepts – 8th Edition 8.43 Silberschatz, Galvin and Gagne ©2009
 First-fit:

212K is put in 500K partition


417K is put in 600K partition
112K is put in 288K partition
(new partition 288K = 500K - 212K)
426K must wait

Operating System Concepts – 8th Edition 8.44 Silberschatz, Galvin and Gagne ©2009
 Best-fit:
212K is put in 300K partition
417K is put in 500K partition
112K is put in 200K partition
426K is put in 600K partition

Operating System Concepts – 8th Edition 8.45 Silberschatz, Galvin and Gagne ©2009
 Worst-fit:

212K is put in 600K partition


417K is put in 500K partition
112K is put in 388K partition
426K must wait

Operating System Concepts – 8th Edition 8.46 Silberschatz, Galvin and Gagne ©2009
Fragmentation(Nov 2017, May 2018, Dec 2018)
 External Fragmentation – total memory space exists to satisfy a request, but it
is not contiguous

 Internal Fragmentation – allocated memory may be slightly larger than


requested memory; this size difference is memory internal to a partition, but not
being used

Operating System Concepts – 8th Edition 8.47 Silberschatz, Galvin and Gagne ©2009
Fragmentation (Cont.)
 Reduce external fragmentation by compaction
 Shuffle memory contents to place all free memory together in one large block
 Compaction is possible only if relocation is dynamic, and is done at execution
time
 I/O problem
 Latch job in memory while it is involved in I/O
 Do I/O only into OS buffers

 Now consider that backing store has same fragmentation problems

Operating System Concepts – 8th Edition 8.48 Silberschatz, Galvin and Gagne ©2009
Paging
 Paging is a memory management scheme that permits the
physical address space of a process to be non contiguous.

 Paging avoids the considerable problem of fitting memory


chunks of varying sizes onto the backing store.

Operating System Concepts – 8th Edition 8.49 Silberschatz, Galvin and Gagne ©2009
Paging (June 2010,Dec 2010,May 2019,May 2018,Dec 2018)
 Physical address space of a process can be noncontiguous;
process is allocated physical memory whenever the later is
available
 Divide physical memory into fixed-sized blocks called frames
 Size is power of 2, between 512 bytes and 16 Mbytes
 Divide logical memory into blocks of same size called pages
 Keep track of all free frames
 To run a program of size N pages, need to find N free frames and
load program
 Set up a page table to translate logical to physical addresses
 Backing store likewise split into pages
 Still have Internal fragmentation

Operating System Concepts – 8th Edition 8.50 Silberschatz, Galvin and Gagne ©2009
Address Translation Scheme

 Every address generated by CPU is divided into:


 Page number (p) – used as an index into a page table which contains
base address of each page in physical memory
 Page offset (d) – combined with base address to define the physical
memory address that is sent to the memory unit
page number page offset

p d

m-n n

 For given logical address space 2m and page size 2n

Operating System Concepts – 8th Edition 8.51 Silberschatz, Galvin and Gagne ©2009
Paging Hardware

Operating System Concepts – 8th Edition 8.52 Silberschatz, Galvin and Gagne ©2009
Paging Model of Logical and Physical Memory

Operating System Concepts – 8th Edition 8.53 Silberschatz, Galvin and Gagne ©2009
Paging Example
Logical address 0 is page 0.

Indexing into page table, we find


that page 0 is in frame 5.

Thus Logical address 0 maps to


Physical address
20 =(5*4) + 0.
Logical address 3 (Page 0,offset3)
Maps to Physical address
23 = (5*4) + 3.
Logical address 4 is page 1, offset 0
Thus Logical address 4 maps to
Physical address
24 = (6*4) + 0.

n=2 and m=4 16-byte Logical Address Space and 4-byte size of pages

Operating System Concepts – 8th Edition 8.54 Silberschatz, Galvin and Gagne ©2009
Paging (Cont.)
 Calculating internal fragmentation
 Page size = 2,048 bytes
 Process size = 72,766 bytes
 35 pages + 1,086 bytes
 Internal fragmentation of 2,048 - 1,086 = 962 bytes
 Worst case fragmentation = 1 frame – 1 byte
 On average fragmentation = 1 / 2 frame size
 So small frame sizes desirable?
 But each page table entry takes memory to track
 Page sizes growing over time
 Solaris supports two page sizes – 8 KB and 4 MB
 Process view and physical memory now very different
 By implementation process can only access its own memory

Operating System Concepts – 8th Edition 8.55 Silberschatz, Galvin and Gagne ©2009
Free Frames

Before allocation After allocation

Operating System Concepts – 8th Edition 8.56 Silberschatz, Galvin and Gagne ©2009
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 (PTLR) indicates size of the page table

 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)
 The TLB is associative, high speed memory.

 Some TLBs store address-space identifiers (ASIDs) in each TLB entry – uniquely identifies
each process to provide address-space protection for that process
 Otherwise need to flush at every context switch

 TLBs typically small (64 to 1,024 entries)


 On a TLB miss, value is loaded into the TLB for faster access next time
 Replacement policies must be considered
 Some entries can be wired down for permanent fast access

Operating System Concepts – 8th Edition 8.57 Silberschatz, Galvin and Gagne ©2009
Associative Memory
 Associative memory – parallel search

Page # Frame #

 Address translation (p, d)


 If p is in associative register, get frame # out
 Otherwise get frame # from page table in memory

Operating System Concepts – 8th Edition 8.58 Silberschatz, Galvin and Gagne ©2009
Paging Hardware With TLB (Nov 2016,June 2017,Dec 2018)

Operating System Concepts – 8th Edition 8.59 Silberschatz, Galvin and Gagne ©2009
Effective Access Time
 Associative Lookup =  time unit

 Hit ratio = 
 Hit ratio – percentage of times that a page number is found in the
TLB is called the hit ratio.

 Consider  = 80%, An 80% hit ratio means that we find the desired
page number in the TLB 80% of the time. If it takes 20 nanoseconds
to search the TLB( = 20ns) and 100ns for memory access, than a
mapped-memory access takes 120 nanoseconds when the page
number is in the TLB.
 If we fail to find the page number in the TLB (20 nanoseconds), then
we must first access memory for the page table and frame number
(100 nanoseconds) and then access the desired byte in memory
(100ns), for total of 220ns.

Operating System Concepts – 8th Edition 8.60 Silberschatz, Galvin and Gagne ©2009
 Effective Access Time (EAT)

 Consider  = 80%,  = 20ns for TLB search, 100ns for memory access
 EAT = 0.80 x 120 + 0.20 x 220 = 140ns

 Consider slower memory but better hit ratio ->  = 98%,  = 20ns for TLB
search, 140ns for memory access
 EAT = 0.98 x 160 + 0.02 x 300 = 162.8ns

Operating System Concepts – 8th Edition 8.61 Silberschatz, Galvin and Gagne ©2009
Memory Protection
 Memory protection implemented by associating protection bit with each frame to indicate if
read-only or read-write access is allowed
 Can also add more bits to indicate page execute-only, and so on

 Memory Protection:
Memory protection in paged environment is accomplished by these protection bits.
For example , there might be three bits in protection bits in protected field.
Bit Position Information
0 Read only Page
1 Write-only Page
2 Execute-only

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


 “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
 Or use PTLR(Page table length register)

Operating System Concepts – 8th Edition 8.62 Silberschatz, Galvin and Gagne ©2009
Valid (v) or Invalid (i)
Bit In A Page Table

Operating System Concepts – 8th Edition 8.63 Silberschatz, Galvin and Gagne ©2009
Shared Pages
 An advantage of paging is the possibility of sharing common code. This
consideration is particularly important in time-sharing environment.

 Shared code
 One copy of read-only (reentrant code or Pure Code) code shared among
processes (i.e., text editors, compilers, window systems)
 Similar to multiple threads sharing the same process space
 Also useful for inter process communication if sharing of read-write pages is
allowed

 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

Operating System Concepts – 8th Edition 8.64 Silberschatz, Galvin and Gagne ©2009
Shared Pages(cont…)

 Consider a system that supports 40 users, each of whom execute a text editor. If the
text editor consists of 150KB of code and 50KB of data space, we need 8000KB to
support the 40 users.

 If the code is reentrant code (or pure code), however, it can be shared, as shown in
figure.

 Here we see a three-page editor –each page 50KB in size, being shared among three
processes.

 Each process has its own data page.

Operating System Concepts – 8th Edition 8.65 Silberschatz, Galvin and Gagne ©2009
Shared Pages Example

Operating System Concepts – 8th Edition 8.66 Silberschatz, Galvin and Gagne ©2009
Structure of the Page Table

 Memory structures for paging can get huge using straight-forward methods
 Consider a 32-bit logical address space as on modern computers
 Page size of 4 KB (4096 bytes =212 )
 Page table would have 1 million(10 lacs) entries (232 / 212)

 Hierarchical Paging

 Hashed Page Tables

 Inverted Page Tables

Operating System Concepts – 8th Edition 8.67 Silberschatz, Galvin and Gagne ©2009
Hierarchical Page Tables

 Break up the logical address space into multiple page tables

 A simple technique is a two-level page table

 We then page the page table

Operating System Concepts – 8th Edition 8.68 Silberschatz, Galvin and Gagne ©2009
Two-Level Page-Table Scheme

Operating System Concepts – 8th Edition 8.69 Silberschatz, Galvin and Gagne ©2009
Two-Level Paging Example
 A logical address (on 32-bit machine with 1K page size) is divided into:
 a page number consisting of 22 bits
 a page offset consisting of 10 bits

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

 Thus, a logical address is as follows:

page number page offset

p1 p2 d

12 10 10

 where p1 is an index into the outer page table, and p2 is the displacement within the page of the
inner page table
 Known as forward-mapped page table

Operating System Concepts – 8th Edition 8.70 Silberschatz, Galvin and Gagne ©2009
Address-Translation Scheme

Operating System Concepts – 8th Edition 8.71 Silberschatz, Galvin and Gagne ©2009
64-bit Logical Address Space
 Even two-level paging scheme not sufficient
 If page size is 4 KB (212)
 Then page table has 252 entries
 If two level scheme, inner page tables could be 210 4-byte entries
 Address would look like
outer page inner page page offset

p1 p2 d

42 10 12

 Outer page table has 242 entries or 244 bytes


 One solution is to add a 2nd outer page table
 But in the following example the 2nd outer page table is still 234 bytes in size
 And possibly 4 memory access to get to one physical memory location

Operating System Concepts – 8th Edition 8.72 Silberschatz, Galvin and Gagne ©2009
Three-level Paging Scheme

Operating System Concepts – 8th Edition 8.73 Silberschatz, Galvin and Gagne ©2009
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

 Each element contains (1) the virtual page number (2) the value of the
mapped page frame (3) a pointer to the next element

 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 – 8th Edition 8.74 Silberschatz, Galvin and Gagne ©2009
Hashed Page Table

Operating System Concepts – 8th Edition 8.75 Silberschatz, Galvin and Gagne ©2009
Inverted Page Table
 Rather than each process having a page table and keeping track of all possible logical
pages, track all physical pages

 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
 TLB can accelerate access

Operating System Concepts – 8th Edition 8.76 Silberschatz, Galvin and Gagne ©2009
Inverted Page Table Architecture

Operating System Concepts – 8th Edition 8.77 Silberschatz, Galvin and Gagne ©2009
Advantages of Paging:
Advantages:
1.Paging eliminates fragmentation.
2.Supports higher degree of multiprogramming.
3.Paging increase memory and processor utilization.
4.Compaction overhead required for the relocatable partition scheme
is also eliminated.

Disadvantages:
5.Page address mapping hardware usually increases the cost of
computer.
2.Memory must be used to store the various table like page table,
memory map table etc.
3.Some memory will still be unused if the number of available
block is not sufficient for the address space of the jobs to be run.

Operating System Concepts – 8th Edition 8.78 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 8.79 Silberschatz, Galvin and Gagne ©2009
User’s View of a Program

Operating System Concepts – 8th Edition 8.80 Silberschatz, Galvin and Gagne ©2009
Logical View of Segmentation
1

4
1

3 2
4

user space physical memory space

Operating System Concepts – 8th Edition 8.81 Silberschatz, Galvin and Gagne ©2009
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

 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 – 8th Edition 8.82 Silberschatz, Galvin and Gagne ©2009
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

Operating System Concepts – 8th Edition 8.83 Silberschatz, Galvin and Gagne ©2009
Segmentation Hardware

Operating System Concepts – 8th Edition 8.84 Silberschatz, Galvin and Gagne ©2009
Example of Segmentation

Operating System Concepts – 8th Edition 8.85 Silberschatz, Galvin and Gagne ©2009
Difference between Paging and
Segmentation

Operating System Concepts – 8th Edition 8.86 Silberschatz, Galvin and Gagne ©2009
Paging Vs Segmentation

Operating System Concepts – 8th Edition 8.87 Silberschatz, Galvin and Gagne ©2009
Segmentation- External Fragmentation

Operating System Concepts – 8th Edition 8.88 Silberschatz, Galvin and Gagne ©2009
Why is there internal fragmentation with paging?
Because a page has fixed size, but processes may request more
or less space. Say a page is 32 units, and a process requests 20
units. Then when a page is given to the requesting process, that
page is no longer useable despite having 12 units of free
"internal" space.

Why is there no external fragmentation with paging?


Because in paging, a process is allowed to be allocated spaces
that are non-contiguous in the physical memory. Meanwhile,
the logical representation of those blocks will be contiguous in
the virtual memory. 

Operating System Concepts – 8th Edition 8.89 Silberschatz, Galvin and Gagne ©2009
End of Chapter 7

Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy