Presentation is loading. Please wait.

Presentation is loading. Please wait.

Operating Systems: A Modern Perspective, Chapter 12

Similar presentations


Presentation on theme: "Operating Systems: A Modern Perspective, Chapter 12"— Presentation transcript:

1 Operating Systems: A Modern Perspective, Chapter 12

2 Operating Systems: A Modern Perspective, Chapter 12
Virtual Memory Operating Systems: A Modern Perspective, Chapter 12

3 Virtual Memory Organization
Primary Memory Secondary Memory Memory Image for pi Operating Systems: A Modern Perspective, Chapter 12

4 Names, Virtual Addresses & Physical Addresses
Dynamically Executable Image Physical Address Space Bt: Virtual Address Space  Physical Address Space Source Program Absolute Module Name Space Pi’s Virtual Address Space Operating Systems: A Modern Perspective, Chapter 12

5 Operating Systems: A Modern Perspective, Chapter 12
Locality Address Space for pi Address space is logically partitioned Text, data, stack Initialization, main, error handle Different parts have different reference patterns: 30% 20% 35% 15% <1% Execution time Initialization code (used once) Code for 1 Code for 2 Code for 3 Code for error 1 Code for error 2 Code for error 3 Data & stack Operating Systems: A Modern Perspective, Chapter 12

6 Operating Systems: A Modern Perspective, Chapter 12
Virtual Memory Every process has code and data locality Code tends to execute in a few fragments at one time Tend to reference same set of data structures Dynamically load/unload currently-used address space fragments as the process executes Uses dynamic address relocation/binding Generalization of base-limit registers Physical address corresponding to a compile-time address is not bound until run time Operating Systems: A Modern Perspective, Chapter 12

7 Operating Systems: A Modern Perspective, Chapter 12
Virtual Memory (cont) Since binding changes with time, use a dynamic virtual address map, Bt Virtual Address Space Bt Operating Systems: A Modern Perspective, Chapter 12

8 Operating Systems: A Modern Perspective, Chapter 12
Virtual Memory Primary Memory n-1 Physical Address Space Fragments of the virtual address space are dynamically loaded into primary memory at any given time Secondary Memory Each address space is fragmented Virtual Address Space for pi Virtual Address Space for pj Virtual Address Space for pk Complete virtual address space is stored in secondary memory Operating Systems: A Modern Perspective, Chapter 12

9 Operating Systems: A Modern Perspective, Chapter 12
Address Formation Translation system creates an address space, but its address are virtual instead of physical A virtual address, x: Is mapped to physical address y = Bt(x) if x is loaded at physical address y Is mapped to W if x is not loaded The map, Bt, changes as the process executes -- it is “time varying” Bt: Virtual Address  Physical Address  {W} Operating Systems: A Modern Perspective, Chapter 12

10 Size of Blocks of Memory
Virtual memory system transfers “blocks” of the address space to/from primary memory Fixed size blocks: System-defined pages are moved back and forth between primary and secondary memory Variable size blocks: Programmer-defined segments – corresponding to logical fragments – are the unit of movement Paging is the commercially dominant form of virtual memory today Operating Systems: A Modern Perspective, Chapter 12

11 Operating Systems: A Modern Perspective, Chapter 12
Paging A page is a fixed size, 2h, block of virtual addresses A page frame is a fixed size, 2h, block of physical memory (the same size as a page) When a virtual address, x, in page i is referenced by the CPU If page i is loaded at page frame j, the virtual address is relocated to page frame j If page is not loaded, the OS interrupts the process and loads the page into a page frame Operating Systems: A Modern Perspective, Chapter 12

12 Operating Systems: A Modern Perspective, Chapter 12
Addresses Suppose there are G= 2g2h=2g+h virtual addresses and H=2j+h physical addresses assigned to a process Each page/page frame is 2h addresses There are 2g pages in the virtual address space 2j page frames are allocated to the process Rather than map individual addresses Bt maps the 2g pages to the 2j page frames That is, page_framej = Bt(pagei) Address k in pagei corresponds to address k in page_framej Operating Systems: A Modern Perspective, Chapter 12

13 Page-Based Address Translation
Let N = {d0, d1, … dn-1} be the pages Let M = {b0, b1, …, bm-1} be page frames Virtual address, i, satisfies 0i<G= 2g+h Physical address, k = U2h+V (0V<G= 2h ) U is page frame number V is the line number within the page Bt:[0:G-1]  <U, V>  {W} Since every page is size c=2h page number = U = i/c line number = V = i mod c Operating Systems: A Modern Perspective, Chapter 12

14 Demand Paging Algorithm
Page fault occurs Process with missing page is interrupted Memory manager locates the missing page Page frame is unloaded (replacement policy) Page is loaded in the vacated page frame Page table is updated Process is restarted Operating Systems: A Modern Perspective, Chapter 12

15 Modeling Page Behavior
Let R = r1, r2, r3, …, ri, … be a page reference stream ri is the ith page # referenced by the process The subscript is the virtual time for the process Given a page frame allocation of m, the memory state at time t, St(m), is set of pages loaded St(m) = St-1(m)  Xt - Yt Xt is the set of fetched pages at time t Yt is the set of replaced pages at time t Operating Systems: A Modern Perspective, Chapter 12

16 Operating Systems: A Modern Perspective, Chapter 12
More on Demand Paging If rt was loaded at time t-1, St(m) = St-1(m) If rt was not loaded at time t-1 and there were empty page frames St(m) = St-1(m)  {rt} If rt was not loaded at time t-1 and there were no empty page frames St(m) = St-1(m)  {rt} - {y} The alternative is prefetch paging Operating Systems: A Modern Perspective, Chapter 12

17 Static Allocation, Demand Paging
Number of page frames is static over the life of the process Fetch policy is demand Since St(m) = St-1(m)  {rt} - {y}, the replacement policy must choose y -- which uniquely identifies the paging policy Operating Systems: A Modern Perspective, Chapter 12

18 Address Translation with Paging
g bits h bits Virtual Address Page # Line # “page table” Missing Page Bt j bits h bits Physical Address Frame # Line # CPU Memory MAR Operating Systems: A Modern Perspective, Chapter 12

19 Operating Systems: A Modern Perspective, Chapter 12
Random Replacement Replaced page, y, is chosen from the m loaded page frames with probability 1/m Let page reference stream, R = Frame 1 2 2 2 2 3 2 1 3 2 1 3 2 1 3 1 3 1 3 1 2 1 2 3 2 3 2 6 2 4 6 2 4 5 2 7 5 2 No knowledge of R  not perform well Easy to implement 13 page faults Operating Systems: A Modern Perspective, Chapter 12

20 Belady’s Optimal Algorithm
Replace page with maximal forward distance: yt = max xeS t-1(m)FWDt(x) Let page reference stream, R = Frame Operating Systems: A Modern Perspective, Chapter 12

21 Belady’s Optimal Algorithm
Replace page with maximal forward distance: yt = max xeS t-1(m)FWDt(x) Let page reference stream, R = Frame FWD4(2) = 1 FWD4(0) = 2 FWD4(3) = 3 Operating Systems: A Modern Perspective, Chapter 12

22 Belady’s Optimal Algorithm
Replace page with maximal forward distance: yt = max xeS t-1(m)FWDt(x) Let page reference stream, R = Frame FWD4(2) = 1 FWD4(0) = 2 FWD4(3) = 3 Operating Systems: A Modern Perspective, Chapter 12

23 Belady’s Optimal Algorithm
Replace page with maximal forward distance: yt = max xeS t-1(m)FWDt(x) Let page reference stream, R = Frame Operating Systems: A Modern Perspective, Chapter 12

24 Belady’s Optimal Algorithm
Replace page with maximal forward distance: yt = max xeS t-1(m)FWDt(x) Let page reference stream, R = Frame FWD7(2) = 2 FWD7(0) = 3 FWD7(1) = 1 Operating Systems: A Modern Perspective, Chapter 12

25 Belady’s Optimal Algorithm
Replace page with maximal forward distance: yt = max xeS t-1(m)FWDt(x) Let page reference stream, R = Frame FWD10(2) =  FWD10(3) = 2 FWD10(1) = 3 Operating Systems: A Modern Perspective, Chapter 12

26 Belady’s Optimal Algorithm
Replace page with maximal forward distance: yt = max xeS t-1(m)FWDt(x) Let page reference stream, R = Frame FWD13(0) =  FWD13(3) =  FWD13(1) =  Operating Systems: A Modern Perspective, Chapter 12

27 Belady’s Optimal Algorithm
Replace page with maximal forward distance: yt = max xeS t-1(m)FWDt(x) Let page reference stream, R = Frame 10 page faults Perfect knowledge of R  perfect performance Impossible to implement Operating Systems: A Modern Perspective, Chapter 12

28 Least Recently Used (LRU)
Replace page with maximal forward distance: yt = max xeS t-1(m)BKWDt(x) Let page reference stream, R = Frame BKWD4(2) = 3 BKWD4(0) = 2 BKWD4(3) = 1 Operating Systems: A Modern Perspective, Chapter 12

29 Least Recently Used (LRU)
Replace page with maximal forward distance: yt = max xeS t-1(m)BKWDt(x) Let page reference stream, R = Frame BKWD4(2) = 3 BKWD4(0) = 2 BKWD4(3) = 1 Operating Systems: A Modern Perspective, Chapter 12

30 Least Recently Used (LRU)
Replace page with maximal forward distance: yt = max xeS t-1(m)BKWDt(x) Let page reference stream, R = Frame BKWD5(1) = 1 BKWD5(0) = 3 BKWD5(3) = 2 Operating Systems: A Modern Perspective, Chapter 12

31 Least Recently Used (LRU)
Replace page with maximal forward distance: yt = max xeS t-1(m)BKWDt(x) Let page reference stream, R = Frame BKWD6(1) = 2 BKWD6(2) = 1 BKWD6(3) = 3 Operating Systems: A Modern Perspective, Chapter 12

32 Least Recently Used (LRU)
Replace page with maximal forward distance: yt = max xeS t-1(m)BKWDt(x) Let page reference stream, R = Frame Operating Systems: A Modern Perspective, Chapter 12

33 Least Recently Used (LRU)
Replace page with maximal forward distance: yt = max xeS t-1(m)BKWDt(x) Let page reference stream, R = Frame Backward distance is a good predictor of forward distance -- locality Operating Systems: A Modern Perspective, Chapter 12

34 Least Frequently Used (LFU)
Replace page with minimum use: yt = min xeS t-1(m)FREQ(x) Let page reference stream, R = Frame FREQ4(2) = 1 FREQ4(0) = 1 FREQ4(3) = 1 Operating Systems: A Modern Perspective, Chapter 12

35 Least Frequently Used (LFU)
Replace page with minimum use: yt = min xeS t-1(m)FREQ(x) Let page reference stream, R = Frame FREQ4(2) = 1 FREQ4(0) = 1 FREQ4(3) = 1 Operating Systems: A Modern Perspective, Chapter 12

36 Least Frequently Used (LFU)
Replace page with minimum use: yt = min xeS t-1(m)FREQ(x) Let page reference stream, R = Frame FREQ6(2) = 2 FREQ6(1) = 1 FREQ6(3) = 1 Operating Systems: A Modern Perspective, Chapter 12

37 Least Frequently Used (LFU)
Replace page with minimum use: yt = min xeS t-1(m)FREQ(x) Let page reference stream, R = Frame FREQ7(2) = ? FREQ7(1) = ? FREQ7(0) = ? Operating Systems: A Modern Perspective, Chapter 12

38 First In First Out (FIFO)
Replace page that has been in memory the longest: yt = max xeS t-1(m)AGE(x) Let page reference stream, R = Frame Operating Systems: A Modern Perspective, Chapter 12

39 First In First Out (FIFO)
Replace page that has been in memory the longest: yt = max xeS t-1(m)AGE(x) Let page reference stream, R = Frame AGE4(2) = 3 AGE4(0) = 2 AGE4(3) = 1 Operating Systems: A Modern Perspective, Chapter 12

40 First In First Out (FIFO)
Replace page that has been in memory the longest: yt = max xeS t-1(m)AGE(x) Let page reference stream, R = Frame AGE4(2) = 3 AGE4(0) = 2 AGE4(3) = 1 Operating Systems: A Modern Perspective, Chapter 12

41 First In First Out (FIFO)
Replace page that has been in memory the longest: yt = max xeS t-1(m)AGE(x) Let page reference stream, R = Frame AGE5(1) = ? AGE5(0) = ? AGE5(3) = ? Operating Systems: A Modern Perspective, Chapter 12

42 Operating Systems: A Modern Perspective, Chapter 12
Belady’s Anomaly Let page reference stream, R = Frame Frame FIFO with m = 3 has 9 faults FIFO with m = 4 has 10 faults Operating Systems: A Modern Perspective, Chapter 12

43 Operating Systems: A Modern Perspective, Chapter 12
Stack Algorithms Some algorithms are well-behaved Inclusion Property: Pages loaded at time t with m is also loaded at time t with m+1 Frame LRU Frame Operating Systems: A Modern Perspective, Chapter 12

44 Operating Systems: A Modern Perspective, Chapter 12
Stack Algorithms Some algorithms are well-behaved Inclusion Property: Pages loaded at time t with m is also loaded at time t with m+1 Frame LRU Frame Operating Systems: A Modern Perspective, Chapter 12

45 Operating Systems: A Modern Perspective, Chapter 12
Stack Algorithms Some algorithms are well-behaved Inclusion Property: Pages loaded at time t with m is also loaded at time t with m+1 Frame LRU Frame Operating Systems: A Modern Perspective, Chapter 12

46 Operating Systems: A Modern Perspective, Chapter 12
Stack Algorithms Some algorithms are well-behaved Inclusion Property: Pages loaded at time t with m is also loaded at time t with m+1 Frame LRU Frame Operating Systems: A Modern Perspective, Chapter 12

47 Operating Systems: A Modern Perspective, Chapter 12
Stack Algorithms Some algorithms are well-behaved Inclusion Property: Pages loaded at time t with m is also loaded at time t with m+1 Frame LRU Frame Operating Systems: A Modern Perspective, Chapter 12

48 Operating Systems: A Modern Perspective, Chapter 12
Stack Algorithms Some algorithms are well-behaved Inclusion Property: Pages loaded at time t with m is also loaded at time t with m+1 Frame FIFO Frame Operating Systems: A Modern Perspective, Chapter 12

49 Operating Systems: A Modern Perspective, Chapter 12
Implementation LRU has become preferred algorithm Difficult to implement Must record when each page was referenced Difficult to do in hardware Approximate LRU with a reference bit Periodically reset Set for a page when it is referenced Dirty bit Operating Systems: A Modern Perspective, Chapter 12

50 Dynamic Paging Algorithms
The amount of physical memory -- the number of page frames -- varies as the process executes How much memory should be allocated? Fault rate must be “tolerable” Will change according to the phase of process Need to define a placement & replacement policy Contemporary models based on working set Operating Systems: A Modern Perspective, Chapter 12

51 Operating Systems: A Modern Perspective, Chapter 12
Working Set Intuitively, the working set is the set of pages in the process’s locality Somewhat imprecise Time varying Given k processes in memory, let mi(t) be # of pages frames allocated to pi at time t mi(0) = 0 i=1k mi(t)  |primary memory| Also have St(mi(t)) = St(mi(t-1))  Xt - Yt Or, more simply S(mi(t)) = S(mi(t-1))  Xt - Yt Operating Systems: A Modern Perspective, Chapter 12

52 Placed/Replaced Pages
S(mi(t)) = S(mi(t-1))  Xt - Yt For the missing page Allocate a new page frame Xt = {rt} in the new page frame How should Yt be defined? Consider a parameter, w, called the window size Determine BKWDt(y) for every yS(mi(t-1)) if BKWDt(y)  w, unload y and deallocate frame if BKWDt(y) < w do not disturb y Operating Systems: A Modern Perspective, Chapter 12

53 Figure 12‑11: The Working Set Window
ri R = … … W=3 The “Window” At virtual time i-1: working set = {0, 1} At virtual time i: working set = {0, 1, 3} Operating Systems: A Modern Perspective, Chapter 12

54 Operating Systems: A Modern Perspective, Chapter 12
Working Set Principle Process pi should only be loaded and active if it can be allocated enough page frames to hold its entire working set The size of the working set is estimated using w Unfortunately, a “good” value of w depends on the size of the locality Empirically this works with a fixed w Operating Systems: A Modern Perspective, Chapter 12

55 Operating Systems: A Modern Perspective, Chapter 12
Example (w = 3) Frame 0 0 # 1 Operating Systems: A Modern Perspective, Chapter 12

56 Operating Systems: A Modern Perspective, Chapter 12
Example (w = 4) Frame 0 0 # 1 Operating Systems: A Modern Perspective, Chapter 12

57 Implementing the Working Set
Global LRU will behave similarly to a working set algorithm Page fault Add a page frame to one process Take away a page frame from another process Use LRU implementation idea Reference bit for every page frame Cleared periodically, set with each reference Change allocation of some page frame with a clear reference bit Clock algorithms use this technique by searching for cleared ref bits in a circular fashion Operating Systems: A Modern Perspective, Chapter 12

58 Windows NT Paging System
Reference to Address k in Page i (User space) Virtual Address Space Lookup (Page i, Addr k) Reference (Page Frame j, Addr k) Primary Memory Translate (Page i, Addr k) to (Page Frame j, Addr k) Paging Disk (Secondary Memory) Supv space User space Operating Systems: A Modern Perspective, Chapter 12

59 Windows Address Translation
Virtual page number Line number Page Directory Page Table Byte Index a b A Page Directory c B Page Tables C Target Page Target Byte Operating Systems: A Modern Perspective, Chapter 12

60 Linux Virtual Address Translation
Operating Systems: A Modern Perspective, Chapter 12

61 Operating Systems: A Modern Perspective, Chapter 12
Segmentation Unit of memory movement is: Variably sized Defined by the programmer Two component addresses, <Seg#, offset> Address translation is more complex than paging Bt: segments x offsets  Physical Address  {W} Bt(i, j) = k Operating Systems: A Modern Perspective, Chapter 12

62 Inter Segment References
using segmentA call lab1 call [segmentC, lab20] lab1: … using segmentB using segmentC lab20: … Operating Systems: A Modern Perspective, Chapter 12

63 Segment Address Translation
Bt: segments x offsets  physical address  {W} Bt(i, j) = k S: segments  segment addresses Bt(S(segName), j) = k N: offset names  offset addresses Bt(S(segName), N(offsetName)) = k Read implementation in Section 12.6 Operating Systems: A Modern Perspective, Chapter 12

64 Address Translation in Segmentation
<segmentName, offsetName> S N segment # offset ? Limit Bt Relocation Missing segment + Limit Base P To Memory Address Register Operating Systems: A Modern Perspective, Chapter 12

65 Operating Systems: A Modern Perspective, Chapter 12
Implementation Segmentation requires special hardware Segment descriptor support Segment base registers (segment, code, stack) Translation hardware Some of translation can be static No dynamic offset name binding Limited protection Operating Systems: A Modern Perspective, Chapter 12

66 Operating Systems: A Modern Perspective, Chapter 12
Multics Old, but still state-of-the-art segmentation Uses linkage segments to support sharing Uses dynamic offset name binding Requires sophisticated memory management unit See Section 12.6 Operating Systems: A Modern Perspective, Chapter 12

67 NT Memory-mapped Files
Secondary memory Ordinary file Open the file Create a section object (that maps file) Identify point in address space to place the file Executable memory Memory mapped files Section object Operating Systems: A Modern Perspective, Chapter 12

68 NT Memory-mapped Files(2)
Operating Systems: A Modern Perspective, Chapter 12


Download ppt "Operating Systems: A Modern Perspective, Chapter 12"

Similar presentations


Ads by Google