operating systems memory management (ch 9). overview provide services (done) –processes(done)...
Post on 22-Dec-2015
227 views
TRANSCRIPT
![Page 1: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/1.jpg)
Operating Systems
Memory Management
(Ch 9)
![Page 2: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/2.jpg)
Overview
• Provide Services (done)– processes (done)– files (done in cs4513)
• Manage Devices– processor (done)– memory (next!)– disk (done after files)
![Page 3: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/3.jpg)
Simple Memory Management
• One process in memory, using it all– each program needs I/O drivers– until 1960
RAM UserProg
I/O drivers
![Page 4: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/4.jpg)
Simple Memory Management• Small, protected OS, drivers
– DOS
OS
OS
RAM
ROM DeviceDrivers ROM
OS
RAM RAM
UserProg User
Prog
UserProg
• “Mono-programming” -- No multiprocessing!
- Early efforts used “Swapping”, but slooooow
![Page 5: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/5.jpg)
Multiprocessing w/Fixed Partitions
OS
Partion 1
Partion 2
Partion 3
Partion 4
200k300k
500k
900k
OS
Partion 1
Partion 2
Partion 3
Partion 4
(a) (b)
• Unequal queues • Waste large partition• Skip small jobs
Simple!
Hey, processes can be in different memory locations!
![Page 6: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/6.jpg)
Address Binding• Compile Time
– maybe absolute binding (.com)
• Link Time– dynamic or static libraries
• Load Time– relocatable code
• Run Time– relocatable memory segments
– overlays
– paging
Source
Object
RAMBinary
Compile
Load
LoadModule
Link
Run
![Page 7: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/7.jpg)
Logical vs. Physical Addresses• Compile-Time + Load Time addresses same
• Run time addresses different
CPU
RelocationRegister
+
14000
MMU
LogicalAddress
346
PhysicalAddress
Memory14346
• User goes from 0 to max
• Physical goes from R+0 to R+max
![Page 8: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/8.jpg)
Relocatable Code Basics• Allow logical addresses
• Protect other processes
CPU
Limit Reg
<
error
no
Reloc Reg
+yes
physicaladdress
Memory
• Addresses must be contiguous!
![Page 9: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/9.jpg)
Design Technique: Static vs. Dynamic
• Static solutions– compute ahead of time– for predictable situations
• Dynamic solutions – compute when needed– for unpredictable situations
• Some situations use dynamic because static too restrictive (malloc)
• ex: memory allocation, type checking
![Page 10: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/10.jpg)
Variable-Sized Partitions
• Idea: want to remove “wasted” memory that is not needed in each partition
• Definition:– Hole - a block of available memory– scattered throughout physical memory
• New process allocated memory from hole large enough to fit it
![Page 11: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/11.jpg)
Variable-Sized PartitionsOS
process 5
process 8
process 2
OSprocess 5
process 2
8 done
OSprocess 5
process 2
process 99 arrv
OS
process 2
process 910 arrv
process 105 done
• OS keeps track of:– allocated partitions– free partitions (holes)– queues!
![Page 12: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/12.jpg)
Variable-Sized Partitions
• How do you satisfy a request of sizes?– 20k, 130k, 70k
• Given a list of free holes:
100k 75k110k 25k140k
![Page 13: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/13.jpg)
Variable-Sized Partitions
• Requests: 20k, 130k, 70k– First-fit: allocate first hole that is big enough– Best-fit: allocate smallest hole that is big enough– Worst-fit: allocate largest hole (say, 120k)
100k 75k110k 25k140k
![Page 14: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/14.jpg)
Variable-Sized Partitions
• First-fit: might not search the entire list
• Best-fit: must search the entire list
• Worst-fit: must search the entire list
• First-fit and Best-ft better than Worst-fit in terms of speed and storage utilization
![Page 15: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/15.jpg)
Memory Request?
• What if a request for additional memory?
OS
process 2
process 3
process 8
malloc(20k)?
![Page 16: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/16.jpg)
Internal Fragmentation• Have some “empty” space for each
processes
• Internal Fragmentation - allocated memory may be slightly larger than requested memory and not being used.
OS
A program
A data
A stack
Room for growthAllocated to A
![Page 17: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/17.jpg)
External Fragmentation
• External Fragmentation - total memory space exists to satisfy request but it is not contiguous OS
process 2
process 3
process 8
50k
100k
Process 9125k ?
![Page 18: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/18.jpg)
Analysis of External Fragmentation
• Assume:– system at equilibrium– process in middle– if N processes, 1/2 time process, 1/2 hole
+ ==> 1/2 N holes!
– Fifty-percent rule– Fundamental:
+ adjacent holes combined+ adjacent processes not combined
![Page 19: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/19.jpg)
Compaction• Shuffle memory contents to place all free
memory together in one large block
• Only if relocation dynamic!
• Same I/O DMA problem
Process 9125k
OS
process 2
process 3
process 8
OS
process 2
process 3
process 8
50k
100k
OS
process 2
process 3
process 8
90k
60k
(a) (b)
![Page 20: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/20.jpg)
Cost of Compaction
process 2
process 3
process 8
50k
100k
90k
60k
process 1 process 1
process 2
process 3
process 8
• 128 MB RAM, 100 nsec/access
1.5 seconds to compact!
• Disk much slower!
![Page 21: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/21.jpg)
Solution?
• Want to minimize external fragmentation– Large Blocks– But internal fragmentation!
• Tradeoff– Sacrifice some internal fragmentation for
reduced external fragmentation– Paging
![Page 22: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/22.jpg)
Analysis of External Fragmentation
• Assume:– system at equilibrium– process in middle– if N processes, 1/2 time process, 1/2 hole
+ ==> 1/2 N holes!
– Fifty-percent rule– Fundamental:
+ adjacent holes combined+ adjacent processes not combined
![Page 23: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/23.jpg)
Compaction• Shuffle memory contents to place all free
memory together in one large block
• Only if relocation dynamic!
• Same I/O DMA problem
Process 9125k
OS
process 2
process 3
process 8
OS
process 2
process 3
process 8
50k
100k
OS
process 2
process 3
process 8
90k
60k
(a) (b)
![Page 24: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/24.jpg)
Cost of Compaction
process 2
process 3
process 8
50k
100k
90k
60k
process 1 process 1
process 2
process 3
process 8
128 MB RAM, 100 nsec/access
1.5 seconds to compact! Disk much slower!
![Page 25: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/25.jpg)
Solution?
• Want to minimize external fragmentation– Large Blocks– But internal fragmentation!
• Tradeoff– Sacrifice some internal fragmentation for
reduced external fragmentation– Paging
![Page 26: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/26.jpg)
Where Are We?• Memory Management
– fixed partitions (done)– linking and loading (done)– variable partitions (done)
• Paging • Misc
![Page 27: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/27.jpg)
Paging
• Logical address space noncontiguous; process gets memory wherever available– Divide physical memory into fixed-size blocks
+ size is a power of 2, between 512 and 8192 bytes+ called Frames
– Divide logical memory into bocks of same size+ called Pages
![Page 28: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/28.jpg)
Paging• Address generated by CPU divided into:
– Page number (p) - index to page table+ page table contains base address of each page in
physical memory (frame)
– Page offset (d) - offset into page/frame
CPU p d
page table
f
f d
physicalmemory
![Page 29: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/29.jpg)
Paging Example
Page 0
• Page size 4 bytes• Memory size 32 bytes (8 pages)
Page 1
Page 2
Page 3
1
4
3
7
0
1
2
3
Page TableLogicalMemory
Page 1
Page 3
PhysicalMemory
Page 0
Page 2
0
1
2
3
4
5
6
7
![Page 30: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/30.jpg)
Paging ExampleP
age
0P
age
1P
age
2P
age
3
01
11
00
10
00
01
10
11
Page Table
LogicalMemory
000
001
010
011
100
101
110
111
PhysicalMemory
000
001
010
011
100
101
110
111
0 0 1 0 1 1
Page
Offset
Frame
![Page 31: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/31.jpg)
Paging Hardware
page numberp
page offsetd
• address space 2m
• page offset 2n
• page number 2m-n
m-n n
• note: not losing any bytes!
phsicalmemory2m bytes
![Page 32: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/32.jpg)
Paging Example
• Consider:– Physical memory = 128 bytes– Physical address space = 8 frames
• How many bits in an address?• How many bits for page number?• How many bits for page offset?• Can a logical address space have only 2
pages? How big would the page table be?
![Page 33: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/33.jpg)
Another Paging Example
• Consider:– 8 bits in an address– 3 bits for the frame/page number
• How many bytes (words) of physical memory?• How many frames are there?• How many bytes is a page?• How many bits for page offset?• If a process’ page table is 12 bits, how many
logical pages does it have?
![Page 34: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/34.jpg)
Page Table Example
1
4
0
1
Page Table
Page 0
Page 1
Process A
Page 1A
Page 1B
PhysicalMemory
Page 0A
Page 0B
0
1
2
3
4
5
6
7
Page 0
Page 1
Process B
3
7
0
1
Page Table
page numberp
page offsetd
m-n=3 n=4
b=7
![Page 35: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/35.jpg)
Paging Tradeoffs• Advantages
– no external fragmentation (no compaction)– relocation (now pages, before were processes)
• Disadvantages– internal fragmentation
+ consider: 2048 byte pages, 72,766 byte proc – 35 pages + 1086 bytes = 962 bytes
+ avg: 1/2 page per process+ small pages!
– overhead + page table / process (context switch + space)+ lookup (especially if page to disk)
![Page 36: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/36.jpg)
Implementation of Page Table
• Page table kept in registers• Fast!• Only good when number of frames is small• Expensive!
Registers
Memory
Disk
![Page 37: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/37.jpg)
Implementation of Page Table
• Page table kept in main memory
• Page Table Base Register (PTBR)
Page 0
Page 1
1
4
0
1
Page TableLogicalMemory
Page 1
PhysicalMemory
Page 0
0
1
2
3
1 4
PTBR
• Page Table Length
• Two memory accesses per data/inst access. – Solution? Associative Registers
![Page 38: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/38.jpg)
Associative Registers
CPU
p d
page table
f
f d
physicalmemory
page number
framenumber
associativeregisters
miss
hit
logicaladdress
physicaladdress
10-20% mem time
![Page 39: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/39.jpg)
Associative Register Performance• Hit Ratio - percentage of times that a page
number is found in associative registersEffective access time = Effective access time = hit ratio hit ratio xx hit time + miss ratio hit time + miss ratio xx miss time miss time• hit time = reg time + mem time• miss time = reg time + mem time * 2• Example:
– 80% hit ratio, reg time = 20 nanosec, mem time = 100 nanosec
– .80 * 120 + .20 * 220 = 140 nanoseconds
![Page 40: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/40.jpg)
Protection• Protection bits with each frame• Store in page table• Expand to more perms
Page 0
Page 1
Page 2
1
0
3
0
0
1
2
3
Page TableLogicalMemory Physical
Memory
Page 0
Page 2
0
1
2
3
v
v
v
i
Page 1
ProtectionBit
![Page 41: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/41.jpg)
Large Address Spaces• Typical logical address spaces:
– 4 Gbytes => 232 address bits (4-byte address)
• Typical page size: – 4 Kbytes = 212 bits
• Page table may have: – 232 / 212 = 220 = 1million entries
• Each entry 3 bytes => 3MB per process!• Do not want that all in RAM• Solution? Page the page table
– Multilevel paging
![Page 42: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/42.jpg)
Multilevel Paging
Page 0
...
......
Outer PageTable
LogicalMemory
...
...
Page Table
...
page numberp1
page offsetd
10 12
p2
10
![Page 43: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/43.jpg)
Multilevel Paging Translation
page numberp1
page offsetdp2
outer page table inner page
table
desiredpage
dp2
p1
![Page 44: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/44.jpg)
Inverted Page Table• Page table maps to physical addresses
CPU pid dpse
arch
pid p
i
i d
PhysicalMemory
• Still need page per process --> backing store
• Memory accesses longer! (search + swap)
![Page 45: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/45.jpg)
Memory View• Paging lost users’ view of memory• Need “logical” memory units that grow and contract
subroutine
stack
symbol table
main
• Solution? • Segmentation!
ex: stack,shared library
![Page 46: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/46.jpg)
Segmentation• Logical address: <segment, offset>
• Segment table - maps two-dimensional user defined address into one-dimensional physical address– base - starting physical location– limit - length of segment
• Hardware support– Segment Table Base Register– Segment Table Length Register
![Page 47: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/47.jpg)
Segmentation
CPU
s dlogicaladdress
limit base
<
error
no
+
yesphysicaladdress
physicalmemory
main
stack
(“Er, what have we gained?”) Paged segments!
![Page 48: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/48.jpg)
Memory Management Outline
• Basic (done)– Fixed Partitions (done)– Variable Partitions (done)
• Paging (done)– Basic (done)– Enhanced (done)
• Specific – WinNT– Linux
• Linking and Loading
![Page 49: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/49.jpg)
Memory Management in WinNT
• 32 bit addresses (232 = 4 GB address space)– Upper 2GB shared by all processes (kernel mode)– Lower 2GB private per process
• Page size is 4 KB (212, so offset is 12 bits)• Multilevel paging (2 levels)
– 10 bits for outer page table (page directory)– 10 bits for inner page table– 12 bits for offset
![Page 50: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/50.jpg)
Memory Management in WinNT
• Each page-table entry has 32 bits– only 20 needed for address translation– 12 bits “left-over”
• Characteristics– Access: read only, read-write– States: valid, zeroed, free …
• Inverted page table– points to page table entries– list of free frames
![Page 51: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/51.jpg)
Memory Management in Linux
• Page size:– Alpha AXP has 8 Kbyte page– Intel x86 has 4 Kbyte page
• Multilevel paging (3 levels)– Makes code more portable– Even though no hardware support on x86!
+ “middle-layer” defined to be 1
![Page 52: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/52.jpg)
Normal Linking and LoadingPrintf.c
Printf.o
StaticLibrary
gcc
ar
a.out
Linker
Memory
Main.c
gcc
Main.o
Loader
X Window code:- 500K minimum- 450K libraries
![Page 53: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/53.jpg)
Load Time Dynamic Linking
Printf.c
Printf.o
DynamicLibrary
gcc
ar
a.out
Linker
Memory
Main.c
gcc
Main.o
Loader
• Save disk space.• Libraries move?• Moving code?• Library versions?• Load time still the same.
![Page 54: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/54.jpg)
Run-Time Dynamic Linking
Printf.c
Printf.o
DynamicLibrary
gcc
ar
a.out
Linker
Memory
Main.c
gcc
Main.o
Loader
Save disk space.Startup fast.Might not need all.
Run-timeLoader
![Page 55: Operating Systems Memory Management (Ch 9). Overview Provide Services (done) –processes(done) –files(done in cs4513) Manage Devices –processor (done)](https://reader034.vdocument.in/reader034/viewer/2022042821/56649d795503460f94a5d26d/html5/thumbnails/55.jpg)
Memory Linking Performance Comparisons
LinkingMethod
DiskSpace
LoadTime
RunTime
(4 used)
RunTime
(2 used)
Run Time(0 used)
Static 3Mb 3.1s 0 0 0
LoadTime
1Mb 3.1s 0 0 0
RunTime
1Mb 1.1s 2.4s 1.2s 0