freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第六章運(yùn)行時(shí)存儲(chǔ)空間的組織和管理-免費(fèi)閱讀

  

【正文】 pushl %ebp 老的基地址指針壓棧 { movl %esp,%ebp修改 基地址指針 long j。 movl 8(%ebp),%edx 取 i到 寄存器 func(j)。 pop ebp ret 即 pop eip(下條指令地址 ) . . . . . . ebp esp 例 題 2 func(i) func: long i。 subl $4,%esp 為 j分配空間 j= i 1。 func( ) { static long cc = 30。 func( ) { static long cc = 30。 func( ) { static long cc = 30。 func( ) { static long cc = 30。 收集算法 , 本課程不做介紹 堆 管 理 內(nèi)存管理器 ? 內(nèi)存管理器把握的基本信息是堆中空閑空間 – 分配函數(shù) – 回收函數(shù) ? 內(nèi)存管理器應(yīng)具有下列性質(zhì) – 空間有效性:極小化程序需要的堆空間總量 – 程序有效性:較好地利用內(nèi)存子系統(tǒng) , 使得程序能運(yùn)行得快一些 – 低開(kāi)銷(xiāo) : 分配和回收操作所花時(shí)間在整個(gè)程序執(zhí)行時(shí)間中的比例盡量小 堆 管 理 計(jì)算機(jī)內(nèi)存分層 虛擬內(nèi)存 (磁盤(pán) ) 物理內(nèi)存 2級(jí)緩存 1級(jí)緩存 寄存器 (處理器 ) 典型大小 2千兆字節(jié) 256兆 ?2千兆字節(jié) 128千 ?4兆字節(jié) 16?64千字節(jié) 32字 典型訪問(wèn)時(shí)間 3?15微秒 100?150納秒 40?60納秒 5?10納秒 1納秒 堆 管 理 計(jì)算機(jī)內(nèi)存分層 – 現(xiàn)代計(jì)算機(jī)都設(shè)計(jì)成程序員不用關(guān)心內(nèi)存子系統(tǒng)的細(xì)節(jié)就可以寫(xiě)出正確的程序 – 程序的效率不僅取決于被執(zhí)行的指令數(shù) , 還取決于執(zhí)行每條指令需要多長(zhǎng)時(shí)間 – 執(zhí)行一條指令的時(shí)間區(qū)別非??捎^ – 差異源于硬件技術(shù)的基本局限:構(gòu)造不了大容量的高速存儲(chǔ)器 – 數(shù)據(jù)以塊 ( 緩存行 、 頁(yè) ) 為單位在相鄰層次之間進(jìn)行傳送 – 數(shù)據(jù)密集型程序可從恰當(dāng)利用內(nèi)存子系統(tǒng)中獲益 堆 管 理 程序局部性 ? 大多數(shù)程序的大部分時(shí)間在執(zhí)行一小部分代碼 , 并且僅涉及一小部分?jǐn)?shù)據(jù) ? 時(shí)間局部性 – 程序訪問(wèn)的內(nèi)存單元在很短的時(shí)間內(nèi)可能再次被程序訪問(wèn) ? 空間局部性 – 毗鄰被訪問(wèn)單元的內(nèi)存單元在很短的時(shí)間內(nèi)可能被訪問(wèn) 堆 管 理 程序局部性 – 即使知道哪些指令會(huì)被頻繁執(zhí)行 , 最快的緩存也可能沒(méi)有大到足以把它們同時(shí)放在其中 , 因此必須動(dòng)態(tài)調(diào)整最快緩存的內(nèi)容 – 把最近使用的指令保存在緩存是一種較好的最優(yōu)化利用內(nèi)存分層的策略 – 改變數(shù)據(jù)布局或計(jì)算次序也可以改進(jìn)程序數(shù)據(jù)訪問(wèn)的時(shí)間和空間局部性 堆 管 理 例: 一個(gè)結(jié)構(gòu)體大數(shù)組 分拆成若干個(gè)數(shù)組 struct student { int num[10000]。 x := y。 var temp: integer。 writeln。 begin write(r: 5: 3) end。 show。 var r: real。 show end。 small。 var r: real。 writeln。 begin write(r: 5: 3) end。 show。 var r: real。 begin 動(dòng) 態(tài)作用域 r := 。 writeln end. dynamic show small small show show show 非局部名字的訪問(wèn) program dynamic(input, output)。 begin r := 。 show。 procedure small。 return addm end。 begin f := a。 function a: function (integer): integer。( 過(guò)程作為參數(shù) ) procedure b(function h(… begin writeln(h(2)) end 。 begin c end. 從 b的訪問(wèn)鏈難以建立 f的訪問(wèn)鏈 訪 問(wèn) 鏈 訪 問(wèn) 鏈 param c m b f 非局部名字的訪問(wèn) program param(input, output)。 b(f) end {c}。 } | } 非局部名字的訪問(wèn) 本節(jié)介紹 ? 無(wú)過(guò)程嵌套的靜態(tài)作用域 ( C語(yǔ)言 ) ? 有過(guò)程嵌套的靜態(tài)作用域 ( Pascal語(yǔ)言 ) ? 動(dòng)態(tài)作用域 ( Lisp語(yǔ)言 ) 非局部名字的訪問(wèn) 無(wú)過(guò)程嵌套的靜態(tài)作用域 ? 過(guò)程體中的非局部引用可以直接使用靜態(tài)確定的地址 ( 非局部數(shù)據(jù)此時(shí)就是全局?jǐn)?shù)據(jù) ) ? 局部變量在棧頂?shù)幕顒?dòng)記錄中 , 可以通過(guò)base_sp指針來(lái)訪問(wèn) ? 無(wú)須深入棧中取數(shù)據(jù) , 無(wú)須訪問(wèn)鏈 ? 過(guò)程可以作為參數(shù)來(lái)傳遞 , 也可以作為結(jié)果來(lái)返回 非局部名字的訪問(wèn) 有過(guò)程嵌套的靜態(tài)作用域 sort readarray exchange quicksort partition 非局部名字的訪問(wèn) 有過(guò)程嵌套的靜態(tài)作用域 ? 過(guò)程 嵌套深度 sort 1 readarray 2 exchange 2 quicksort 2 partition 3 ? 變量的嵌套深度:它的聲明所在過(guò)程的嵌套 深度作為該名字的嵌套深度 ? 訪問(wèn)鏈 – 用來(lái)尋找非局部 名字的存儲(chǔ)單元 s a, x q (1, 9) k, v 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 p (1, 3) i, j 訪問(wèn)鏈 e (1, 3) 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 p (1, 3) i, j 訪問(wèn)鏈 非局部名字的訪問(wèn) 非局部名字的訪問(wèn) ? 訪問(wèn)非局部名字的存儲(chǔ)單元 假定過(guò)程 p的嵌套深度為 np, 它引用嵌套深度為 na 的變量 a, na ? np, 如何訪問(wèn) a的存儲(chǔ)單元 sort 1 readarray 2 exchange 2 quicksort 2 partition 3 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 非局部名字的訪問(wèn) ? 訪問(wèn)非局部名字的存儲(chǔ)單元 假定過(guò)程 p的嵌套深度為 np, 它引用嵌套深度為 na 的變量 a, na ? np, 如何訪問(wèn) a的存儲(chǔ)單元 – 從棧頂?shù)幕顒?dòng)記錄開(kāi)始 , 追蹤訪問(wèn)鏈 np ? na次 – 到達(dá) a的聲明所在過(guò)程的活動(dòng)記錄 – 訪問(wèn)鏈的追蹤用間接操作就可完成 sort 1 readarray 2 exchange 2 quicksort 2 partition 3 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 ? 訪問(wèn)非局部名字的存儲(chǔ)單元 sort readarray exchange quicksort partition s a, x q (1, 9) k, v 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 p (1, 3) i, j 訪問(wèn)鏈 e (1, 3) 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 p (1, 3) i, j 訪問(wèn)鏈 非局部名字的訪問(wèn) 非局部名字的訪問(wèn) ? 過(guò)程 p對(duì)變量 a訪問(wèn)時(shí) , a的地址由下面的二元組表示: ( np ? na, a在活動(dòng)記錄中的偏移 ) 非局部名字的訪問(wèn) ? 建立訪問(wèn)鏈 – 假定嵌套深度為 np的過(guò)程 p調(diào)用嵌套深度為 nx的過(guò)程 x (1) np nx的情況 sort 1 readarray 2 exchange 2 quicksort 2 partition 3 這時(shí) x肯定就聲明在 p中 非局部名字的訪問(wèn) ? 建立訪問(wèn)鏈 – 假定嵌套深度為 np的過(guò)程 p調(diào)用嵌套深度為 nx的過(guò)程 x (1) np nx的情況 – 被調(diào)用過(guò)程的訪問(wèn)鏈必須指向調(diào)用過(guò)程的活動(dòng)記錄的訪問(wèn)鏈 ? 訪問(wèn)非局部名字的存儲(chǔ)單元 sort readarray exchange quicksort partition s a, x q (1, 9) k, v 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 p (1, 3) i, j 訪問(wèn)鏈 e (1, 3) 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 p (1, 3) i, j 訪問(wèn)鏈 非局部名字的訪問(wèn) 非局部名字的訪問(wèn) ? 建立訪問(wèn)鏈 – 假定嵌套深度為 np的過(guò)程 p調(diào)用嵌套深度為 nx的過(guò)程 x (2) np ? nx的情況 sort 1 readarray 2 exchange 2 quicksort 2 partition 3 這時(shí) p和 x的嵌套深度分別為 1, 2, … ,nx? 1的外圍過(guò)程肯定相同 非局部名字的訪問(wèn) ? 建立訪問(wèn)鏈 – 假定嵌套深度為 np的過(guò)程 p調(diào)用嵌套深度為 nx的過(guò)程 x (2) np ? nx的情況 – 追蹤訪問(wèn)鏈 np ? nx + 1次 , 到達(dá)了靜態(tài)包圍 x和 p的且離它們最近的那個(gè)過(guò)程的最新活動(dòng)記錄 – 所到達(dá)的活動(dòng)記錄就是 x的活動(dòng)記錄中的訪問(wèn)鏈應(yīng)該指向的那個(gè)活動(dòng)記錄 ? 訪問(wèn)非局部名字的存儲(chǔ)單元 sort readarray exchange quicksort partition s a, x q (1, 9) k, v 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 p (1, 3) i, j 訪問(wèn)鏈 e (1, 3) 訪問(wèn)鏈 s a, x q (1, 3) k, v 訪問(wèn)鏈 q (1, 9) k, v 訪問(wèn)鏈 p (1, 3) i, j 訪問(wèn)鏈 非局部名字的訪問(wèn) 非局部名字的訪問(wèn) program param(input, output)。 B2 int b = 3。 int b = 0。 8 }a。 typedef struct _a{ typedef struct _b{ char c1。 4 char c2。 long i。 long i。 對(duì)齊: char : 1, long : 4, double : 8 局部存儲(chǔ)分配 ? 例 在 SPARC/Solaris工作站上下面兩個(gè)結(jié)構(gòu)體的 size分別是 24和 16, 為什么不一樣 ? typedef struct _a{ typedef struct _b{ char c1。 8 }a。 8 long i。 {
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1