0% found this document useful (0 votes)
76 views21 pages

Chapter 8: Main Memory: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition

Uploaded by

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

Chapter 8: Main Memory: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition

Uploaded by

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

Chapter 8: Main Memory

Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Contiguous Allocation
● Main memory must support both OS and user processes
● Limited resource, must allocate efficiently
● Contiguous allocation is one early method
● 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

Operating System Concepts – 9th Edition 8.2 Silberschatz, Galvin and Gagne ©2013
Contiguous Allocation (Cont.)
● 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
● Can then allow actions such as kernel code being transient
and kernel changing size

Operating System Concepts – 9th Edition 8.3 Silberschatz, Galvin and Gagne ©2013
Hardware Support for Relocation and Limit Registers

Operating System Concepts – 9th Edition 8.4 Silberschatz, Galvin and Gagne ©2013
Multiple-partition allocation
● Multiple-partition allocation
● Degree of multiprogramming limited by number of partitions
● Variable-partition sizes for efficiency (sized to a given process’ needs)
● 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)

Operating System Concepts – 9th Edition 8.5 Silberschatz, Galvin and Gagne ©2013
Dynamic Storage-Allocation Problem
How to satisfy a request of size n from a list of free holes?

● First-fit: Allocate the first hole that is big enough

● Best-fit: Allocate the smallest hole that is big enough; must


search entire list, unless ordered by size
● Produces the smallest leftover hole

● Worst-fit: Allocate the largest hole; must also search entire list
● Produces the largest leftover hole

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

Operating System Concepts – 9th Edition 8.6 Silberschatz, Galvin and Gagne ©2013
Fragmentation
● 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
● First fit analysis reveals that given N blocks allocated, 0.5 N
blocks lost to fragmentation
● 1/3 may be unusable -> 50-percent rule

Operating System Concepts – 9th Edition 8.7 Silberschatz, Galvin and Gagne ©2013
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
4 Latch job in memory while it is involved in I/O
4 Do I/O only into OS buffers
● Now consider that backing store has same fragmentation
problems

Operating System Concepts – 9th Edition 8.8 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 8.9 Silberschatz, Galvin and Gagne ©2013
User’s View of a Program

Operating System Concepts – 9th Edition 8.10 Silberschatz, Galvin and Gagne ©2013
Logical View of Segmentation

4
1

3 2
4

user space physical memory space

Operating System Concepts – 9th Edition 8.11 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 8.12 Silberschatz, Galvin and Gagne ©2013
Segmentation Architecture (Cont.)
● Protection
● With each entry in segment table associate:
4 validation bit = 0 ⇒ illegal segment
4 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 – 9th Edition 8.13 Silberschatz, Galvin and Gagne ©2013
Segmentation Hardware

Operating System Concepts – 9th Edition 8.14 Silberschatz, Galvin and Gagne ©2013
Paging
● Physical address space of a process can be noncontiguous;
process is allocated physical memory whenever the latter is
available
● Avoids external fragmentation
● Avoids problem of varying sized memory chunks
● 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 – 9th Edition 8.15 Silberschatz, Galvin and Gagne ©2013
Address Translation Scheme
● 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

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

Operating System Concepts – 9th Edition 8.16 Silberschatz, Galvin and Gagne ©2013
Paging Hardware

Operating System Concepts – 9th Edition 8.17 Silberschatz, Galvin and Gagne ©2013
Paging Model of Logical and Physical Memory

Operating System Concepts – 9th Edition 8.18 Silberschatz, Galvin and Gagne ©2013
Paging Example

n=2 and m=4 32-byte memory and 4-byte pages

Operating System Concepts – 9th Edition 8.19 Silberschatz, Galvin and Gagne ©2013
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
4 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 – 9th Edition 8.20 Silberschatz, Galvin and Gagne ©2013
Free Frames

Before allocation After allocation

Operating System Concepts – 9th Edition 8.21 Silberschatz, Galvin and Gagne ©2013

You might also like