slide 11-1 copyright © 2004 pearson education, inc. operating systems: a modern perspective,...
TRANSCRIPT
![Page 1: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/1.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-1
Copyright © 2004 Pearson Education, Inc.
![Page 2: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/2.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-2
Copyright © 2004 Pearson Education, Inc.
11MemoryManagement
![Page 3: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/3.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-3
Copyright © 2004 Pearson Education, Inc.
The External View of the Memory Manager
Hardware
ApplicationProgram
ApplicationProgram
Fil
e M
gr
Dev
ice
Mgr
Mem
ory
Mgr
Pro
cess
Mgr
UNIXF
ile
Mgr
Dev
ice
Mgr
Mem
ory
Mgr
Pro
cess
Mgr
Windows
VMQuery()VirtualFree()VirtualLock()
ZeroMemory()
VirtualAlloc()
sbrk()exec()
getrlimit()
shmalloc()
![Page 4: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/4.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-4
Copyright © 2004 Pearson Education, Inc.
Memory Manager
• Requirements– Minimize executable memory access time– Maximize executable memory size– Executable memory must be cost-effective
• Today’s memory manager:– Allocates primary memory to processes– Maps process address space to primary memory– Minimizes access time using cost-effective
memory configuration– May use static or dynamic techniques
![Page 5: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/5.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-5
Copyright © 2004 Pearson Education, Inc.
Storage Hierarchies
Less Frequently
Used Information
More Frequently
Used Information
![Page 6: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/6.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-6
Copyright © 2004 Pearson Education, Inc.
The Basic Memory Hierarchy
CPU Registers
Primary Memory(Executable Memory)
e.g. RAM
Secondary Memorye.g. Disk or Tape
More Frequently
Used Information
Less Frequently
Used Information
![Page 7: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/7.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-7
Copyright © 2004 Pearson Education, Inc.
Contemporary Memory Hierarchy &Dynamic Loading
CPU Registers
“Main” Memory
Rotating Magnetic Memory
Optical Memory
Sequentially Accessed Memory
L1 Cache MemoryL2 Cache Memory
Sec
onda
ryP
rim
ary
(Exe
cuta
ble)
Lar
ger
stor
age
Fas
ter
acce
ss
![Page 8: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/8.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-8
Copyright © 2004 Pearson Education, Inc.
Exploiting the Hierarchy• Upward moves are (usually) copy operations
– Require allocation in upper memory
– Image exists in both higher & lower memories
• Updates are first applied to upper memory• Downward move is (usually) destructive
– Destroy image in upper memory
– Update image in lower memory
• Place frequently-used info high, infrequently-used info low in the hierarchy
• Reconfigure as process changes phases
![Page 9: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/9.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-9
Copyright © 2004 Pearson Education, Inc.
Address Space vs Primary Memory
Mapped to objectother than memory
Process Address Space Hardware Primary Memory
![Page 10: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/10.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-10
Copyright © 2004 Pearson Education, Inc.
Creating an Executable Program
Sourcecode
Sourcecode
•Compile time: Translate elements
•Load time:•Allocate primary memory•Adjust addresses in address space•Copy address space from secondary to primary memory
LoaderLoader Processaddressspace
Primarymemory
C
RelocObjectcode
RelocObjectcode
LinkEdit
LinkEdit
Librarycode
Librarycode
Otherobjects
Otherobjects
Secondary memory
•Link time: Combine elements
![Page 11: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/11.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-11
Copyright © 2004 Pearson Education, Inc.
A Sample Code Segment
...static int gVar;...int proc_a(int arg){ ... gVar = 7; put_record(gVar); ...}
![Page 12: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/12.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-12
Copyright © 2004 Pearson Education, Inc.
The Relocatable Object moduleCode SegmentRelativeAddress Generated Code0000 ......0008 entry proc_a...0220 load =7, R10224 store R1, 00360228 push 00360232 call ‘put_record’...0400 External reference table...0404 ‘put_record’ 0232...0500 External definition table...0540 ‘proc_a’ 0008...0600 (symbol table)...0799 (last location in the code segment)
Data SegmentRelativeAddress Generated variable space...0036 [Space for gVar variable]...0049 (last location in the data segment)
![Page 13: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/13.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-13
Copyright © 2004 Pearson Education, Inc.
The Absolute ProgramCode SegmentRelativeAddress Generated Code0000 (Other modules)...1008 entry proc_a...1220 load =7, R11224 store R1, 01361228 push 10361232 call 2334...1399 (End of proc_a)... (Other modules)2334 entry put_record...2670 (optional symbol table)...2999 (last location in the code segment)
Data SegmentRelativeAddress Generated variable space...0136 [Space for gVar variable]...1000 (last location in the data segment)
![Page 14: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/14.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-14
Copyright © 2004 Pearson Education, Inc.
The Program Loaded at Location 4000RelativeAddress Generated Code0000 (Other process’s programs)4000 (Other modules)...5008 entry proc_a...5036 [Space for gVar variable]...5220 load =7, R15224 store R1, 71365228 push 50365232 call 6334...5399 (End of proc_a)... (Other modules)6334 entry put_record...6670 (optional symbol table)...6999 (last location in the code segment)7000 (first location in the data segment)...7136 [Space for gVar variable]...8000 (Other process’s programs)
![Page 15: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/15.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-15
Copyright © 2004 Pearson Education, Inc.
Static Memory Allocation
OperatingSystem
Process 3
Process 0
Process 2
Process 1
Unused
In Use
Issue: Need a mechanism/policy for loading pi’s address space into primary memory
pi
![Page 16: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/16.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-16
Copyright © 2004 Pearson Education, Inc.
Fixed-Partition Memory Mechanism
OperatingSystem
Region 3
Region 2
Region 1
Region 0 N0
N1
N2
N3
pi
pi needs ni units
ni
![Page 17: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/17.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-17
Copyright © 2004 Pearson Education, Inc.
Fixed-Partition MemoryBest-Fit
OperatingSystem
Region 3
Region 2
Region 1
Region 0 N0
N1
N2
N3
pi
InternalFragmentation
•Loader must adjust every address in the absolute module when placed in memory
![Page 18: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/18.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-18
Copyright © 2004 Pearson Education, Inc.
Fixed-Partition MemoryWorst-Fit
OperatingSystem
Region 3
Region 2
Region 1
Region 0 N0
N1
N2
N3
pi
![Page 19: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/19.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-19
Copyright © 2004 Pearson Education, Inc.
Fixed-Partition MemoryFirst-Fit
OperatingSystem
Region 3
Region 2
Region 1
Region 0 N0
N1
N2
N3
pi
![Page 20: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/20.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-20
Copyright © 2004 Pearson Education, Inc.
Fixed-Partition MemoryNext-Fit
OperatingSystem
Region 3
Region 2
Region 1
Region 0 N0
N1
N2
N3
pi
Pi+1
![Page 21: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/21.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-21
Copyright © 2004 Pearson Education, Inc.
Variable Partition Memory
OperatingSystem
OperatingSystem
Process 0
Process 6
Process 2
Process 5Process 4
•Compaction moves program in memory
OperatingSystem
Process 0
Process 6
Process 2
Process 5
Process 4
•External fragmentation
OperatingSystem
Process 0
Process 1
Process 2
Process 3
Process 4
Loader adjusts every address in every absolute module when placed in memory
![Page 22: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/22.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-22
Copyright © 2004 Pearson Education, Inc.
Cost of Moving Programs
load R1, 0x02010
3F013010
Program loaded at 0x01000 3F016010
Program loaded at 0x04000
•Must run loader over program again!
Consider dynamic techniques
![Page 23: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/23.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-23
Copyright © 2004 Pearson Education, Inc.
C-Style Memory Layout
Text SegmentText Segment
Initialized Part Data Segment
Initialized Part Data Segment
Uninitialized Part Data Segment
Uninitialized Part Data Segment
Heap StorageHeap Storage
Stack SegmentStack Segment
EnvironmentVariables, …
EnvironmentVariables, …
![Page 24: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/24.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-24
Copyright © 2004 Pearson Education, Inc.
Program and Process Address Spaces
AbsoluteProgramAddressSpace
0
4GB
3GB
ProcessAddressSpace
SupervisorProcessAddressSpace
UserProcessAddressSpace
PrimaryMemory
![Page 25: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/25.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-25
Copyright © 2004 Pearson Education, Inc.
Multiprogramming Memory Support
OperatingSystem
Process 1
Process 3
Process 0
Process 1
Unused
In Use
0
AB
C
DE
F
G
H
R0
R1
R2
R3
R4
![Page 26: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/26.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-26
Copyright © 2004 Pearson Education, Inc.
Dynamic Memory Allocation
• Could use dynamically allocated memory
• Process wants to change the size of its address space– Smaller Creates an external fragment– Larger May have to move/relocate the
program
• Allocate “holes” in memory according to– Best- /Worst- / First- /Next-fit
![Page 27: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/27.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-27
Copyright © 2004 Pearson Education, Inc.
Memory Mgmt Strategies• Fixed-Partition used only in batch systems• Variable-Partition used everywhere (except
in virtual memory)• Swapping systems
– Popularized in timesharing– Relies on dynamic address relocation– Now dated
• Dynamic Loading (Virtual Memory)– Exploit the memory hierarchy– Paging -- mainstream in contemporary systems– Segmentation -- the future
![Page 28: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/28.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-28
Copyright © 2004 Pearson Education, Inc.
Moving an Executable Image
ExecutableProgram
ExecutableProgram
LoaderLoader
LoaderLoader
ExecutableImage
ExecutableImage
ExecutableImage
ExecutableImage
02000
06000
![Page 29: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/29.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-29
Copyright © 2004 Pearson Education, Inc.
Dynamic Address Relocation
CPU
0x02010
0x10000+
MARload R1, 0x02010
0x12010
•Program loaded at 0x10000 Relocation Register = 0x10000•Program loaded at 0x04000 Relocation Register = 0x04000
Relocation Register
Relative Address
We never have to change the load module addresses!
![Page 30: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/30.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-30
Copyright © 2004 Pearson Education, Inc.
Multiple Segment Relocation Registers
CPU
Relative Address
Code Register
+
MAR
0x12010
Stack Register
Data Register
![Page 31: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/31.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-31
Copyright © 2004 Pearson Education, Inc.
Runtime Bound Checking
CPU
Relative Address
Relocation Register
+
MAR
Limit Register <
Interrupt
•Bound checking is inexpensive to add•Provides excellent memory protection
![Page 32: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/32.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-32
Copyright © 2004 Pearson Education, Inc.
Special Case: Swapping
• Special case of dynamic memory allocation
• Suppose there is high demand for executable memory
• Equitable policy might be to time-multiplex processes into the memory (also space-mux)
• Means that process can have its address space unloaded when it still needs memory– Usually only happens when it is blocked
![Page 33: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/33.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-33
Copyright © 2004 Pearson Education, Inc.
Swapping
Image for pj
Image for pi
Swap pi outSwap pi out
Swap pj in
![Page 34: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/34.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-34
Copyright © 2004 Pearson Education, Inc.
Sharing a Portion of the Address Space
Process 1Process 1
Process 2Process 2
Address Space for Process 2
Address Space for Process 1
Primary Memory
![Page 35: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11](https://reader036.vdocuments.net/reader036/viewer/2022062318/551c2a53550346b24f8b606a/html5/thumbnails/35.jpg)
Operating Systems: A Modern Perspective, Chapter 11
Slide 11-35
Copyright © 2004 Pearson Education, Inc.
Figure 11‑26: Multiple Segments
Relocation
RelocationLimit
Limit
Relocation
RelocationLimit
Limit
CPU Executing Process 1
CPU Executing Process 2
Primary Memory
Shared
Pri
vate
toP
roce
ss 1
Pri
vate
toP
roce
ss 2