3. Serial No. Topics
1 Introduction to Memory & Memory hierarchy
2 Introduction to MMU & its working
3 Techniques of Memory Management( Paging and segmentation)
4 segmentation
5 Mono programming without Swapping or Paging (M. Fayyaz)
6 Multiprogramming with fixed partitions. (M.Bilal)
7 Swapping
8 Managing Free Memory (Hiba Abdul Rauf)
9 Memory Management with Bitmaps
10 Dynamic Partitioning Placement Algorithm (Imran Bin Ramzan)
4. Memory is the internal storage area of the computer. Memory identifies
the data storage. The physical memory usually referred to us main
memory or RAM.
5. Memory Management Unit of the operating system handles the
memory hierarchy.
1. Keep track of what parts of memory are in use.
2. Allocate memory to processes when needed.
3. Deallocate when processes are done.
4. Swapping, or paging, between main memory and disk, when disk is
too small to hold all current processes.
6. Itโs a term used to describe how operating systems handles the available RAM, it is
managed by multiple levels.
Techniques of M.M
7. In segmentation the virtual address space is divided into a number of variable-size
pieces called segments. One can view the designs we have studied so far as having
just one segment, the entire address space of the process.
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
local variables, global variables, common block
stack, arrays
Protect each entity independently
Allow each segment to grow independently
Share each segment independently
9. โ Logical address consists of a two tuple
<segment-number, offset>
โ Segment Table
โข Maps two-dimensional user-defined addresses into one-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 the number of
segments used by a program; segment number is legal if s < STLR.
10. Segmentation Architecture (cont.)
โ Relocation is dynamic - by segment table
โ Sharing
โข Code sharing occurs at the segment level.
โข Shared segments must have same segment number.
โ Allocation - dynamic storage allocation problem
โข use best fit/first fit, may cause external fragmentation.
โ Protection
โข protection bits associated with segments
โ read/write/execute privileges
โ array in a separate segment - hardware can check for illegal
array indexes.
11. Shared segments
Limit Base
editor 25286 43602
0 4425 68348
segment 0 1 43062
data 1 Segment Table editor
process P1 68348
data 1
segment 1 72773
Logical Memory
process P1
editor Limit Base
25286 43602 900
data 2 0 data 2
segment 0
1
8850 90003 03
985
Segment Table
53
Logical Memory process P2
process P2 segment 1
12. Segmented Paged Memory
โ Segment-table entry contains not the base address of
the segment, but the base address of a page table for
this segment.
โข Overcomes external fragmentation problem of segmented
memory.
โข Paging also makes allocation simpler; time to search for a
suitable segment (using best-fit etc.) reduced.
โข Introduces some internal fragmentation and table space
overhead.
โ Multics - single level page table
โ IBM OS/2 - OS on top of Intel 386
โข uses a two level paging scheme
13. Entire process remains in memory from start to finish.
The sum of the memory requirements of all jobs in the system
cannot exceed the size of physical memory.
These are three simple ways of organizing memory an
operating system with one user process
14.
15.
16. โขAllocating space for growing data segment
โขAllocating space for growing stack & data segment
17.
18. Managing Free Memory
When memory is assigned dynamically, the operating system must manage
it. In general terms, there are two ways to keep track of memory usage:
bitmaps and free lists. In this section and the next one we will look at these
two methods.
19.
20. Operating system must decide which free block to allocate to a process
Best-fit algorithm
Chooses the block that is closest in size to the request
Worst performer overall
Since smallest block is found for process, the smallest
amount of fragmentation is left
Memory compaction must be done more often
21. First-fit algorithm
Scans memory form the beginning and chooses
the first available block that is large enough
Fastest
May have many process loaded in the front end
of memory that must be searched over when
trying to find a free block
22. Next-fit-Algorithm
Scans memory from the location of the last
placement
More often allocate a block of memory at the
end of memory where the largest block is found
The largest block of memory is broken up into
smaller blocks
Compaction is required to obtain a large block
at the end of memory
23. Worst Fit Algorithm:
Search entire list.
Produces the largest left over hole.
Allocate the largest hole.