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

正文內(nèi)容

第六章運(yùn)行時(shí)存儲(chǔ)空間的組織和管理(已改無(wú)錯(cuò)字)

2022-08-29 13:21:12 本頁(yè)面
  

【正文】 begin (綠色表示已執(zhí)行部分 ) r := 。 show。 small。 writeln。 show。 small。 writeln end. dynamic show small small show show show ? r 靜態(tài)區(qū) 使用值的地方 棧區(qū) 暫存值的地方 dynamic r ? 非局部名字的訪問(wèn) program dynamic(input, output)。 var r: real。 procedure show。 begin write(r: 5: 3) end。 procedure small。 var r: real。 begin r := 。 show end。 begin (綠色表示已執(zhí)行部分 ) r := 。 show。 small。 writeln。 show。 small。 writeln end. dynamic show small small show show show r dynamic r ? 靜態(tài)區(qū) 使用值的地方 棧區(qū) 暫存值的地方 非局部名字的訪問(wèn) program dynamic(input, output)。 var r: real。 procedure show。 begin write(r: 5: 3) end。 procedure small。 var r: real。 begin r := 。 show end。 begin (綠色表示已執(zhí)行部分 ) r := 。 show。 small。 writeln。 show。 small。 writeln end. dynamic show small small show show show r dynamic r ? show 靜態(tài)區(qū) 使用值的地方 棧區(qū) 暫存值的地方 非局部名字的訪問(wèn) program dynamic(input, output)。 var r: real。 procedure show。 begin write(r: 5: 3) end。 procedure small。 var r: real。 begin r := 。 show end。 begin (綠色表示已執(zhí)行部分 ) r := 。 show。 small。 writeln。 show。 small。 writeln end. dynamic show small small show show show r dynamic r ? small r 靜態(tài)區(qū) 使用值的地方 棧區(qū) 暫存值的地方 非局部名字的訪問(wèn) program dynamic(input, output)。 var r: real。 procedure show。 begin write(r: 5: 3) end。 procedure small。 var r: real。 begin r := 。 show end。 begin (綠色表示已執(zhí)行部分 ) r := 。 show。 small。 writeln。 show。 small。 writeln end. dynamic show small small show show show r dynamic r ? small r 靜態(tài)區(qū) 使用值的地方 棧區(qū) 暫存值的地方 非局部名字的訪問(wèn) program dynamic(input, output)。 var r: real。 procedure show。 begin write(r: 5: 3) end。 procedure small。 var r: real。 begin r := 。 show end。 begin (綠色表示已執(zhí)行部分 ) r := 。 show。 small。 writeln。 show。 small。 writeln end. dynamic show small small show show show r dynamic r ? 靜態(tài)區(qū) 使用值的地方 棧區(qū) 暫存值的地方 參 數(shù) 傳 遞 值調(diào)用 ? 實(shí)參的右值傳給被調(diào)用過(guò)程 ? 值調(diào)用可以如下實(shí)現(xiàn) – 把形參當(dāng)作所在過(guò)程的局部名看待 , 形參的存儲(chǔ)單元在該過(guò)程的活動(dòng)記錄中 – 調(diào)用過(guò)程 計(jì)算實(shí)參 , 并把其右值放入 被調(diào)用過(guò)程形參的存儲(chǔ)單元中 參 數(shù) 傳 遞 引用調(diào)用 ? 實(shí)參的左值傳給被調(diào)用過(guò)程 ? 引用調(diào)用可以如下實(shí)現(xiàn): – 把形參當(dāng)作所在過(guò)程的局部名看待 , 形參的存儲(chǔ)單元在該過(guò)程的活動(dòng)記錄中 – 調(diào)用過(guò) 程計(jì)算實(shí)參 , 把實(shí)參的左值放入被調(diào)用過(guò)程形參的存儲(chǔ)單元 – 在被調(diào)用過(guò)程的目標(biāo)代碼中 , 任何對(duì)形參的引用都是通過(guò)傳給該過(guò)程的指針來(lái)間接引用實(shí)參 參 數(shù) 傳 遞 換名調(diào)用 從概念上說(shuō) , 每次調(diào)用時(shí) , 用實(shí)參表達(dá)式對(duì) 形參進(jìn)行正文替換 , 然后再執(zhí)行 procedure swap(var x, y: integer)。 var temp: integer。 begin temp := x。 x := y。 y := temp end 參 數(shù) 傳 遞 換名調(diào)用 從概念上說(shuō) , 每次調(diào)用時(shí) , 用實(shí)參表達(dá)式對(duì) 形參進(jìn)行正文替換 , 然后再執(zhí)行 procedure swap(var x, y: integer)。 var temp: integer。 例如: 調(diào)用 swap(i, a[i]) begin temp := x。 x := y。 y := temp end 參 數(shù) 傳 遞 換名調(diào)用 從概念上說(shuō) , 每次調(diào)用時(shí) , 用實(shí)參表達(dá)式對(duì) 形參進(jìn)行正文替換 , 然后再執(zhí)行 procedure swap(var x, y: integer)。 var temp: integer。 例如: 調(diào)用 swap(i, a[i]) begin 替換結(jié)果: temp := i。 temp := x。 i := a[i]。 x := y。 a[i] := temp y := temp end 參 數(shù) 傳 遞 換名調(diào)用 從概念上說(shuō) , 每次調(diào)用時(shí) , 用實(shí)參表達(dá)式對(duì) 形參進(jìn)行正文替換 , 然后再執(zhí)行 procedure swap(var x, y: integer)。 var temp: integer。 例如: 調(diào)用 swap(i, a[i]) begin 替換結(jié)果: temp := i。 temp := x。 i := a[i]。 x := y。 a[i] := temp y := temp 交換兩個(gè)數(shù)據(jù)的程序 end 并非總是正確 堆 管 理 堆式分配 ? 堆用來(lái)存放生存期不確定的數(shù)據(jù) – C++和 Java允許程序員用 new創(chuàng)建對(duì)象 , 它們的生存期沒有被約束在創(chuàng)建它們的過(guò)程活動(dòng)的生成期之內(nèi) – 實(shí)現(xiàn)內(nèi)存回收是內(nèi)存管理器的責(zé)任 ? 堆空間的回收有兩種不同方式 – 程序顯式釋放空間: free( C) 或 delete( C++) – 垃圾收集器自動(dòng)收集 ( Java) 。 收集算法 , 本課程不做介紹 堆 管 理 內(nèi)存管理器 ? 內(nèi)存管理器把握的基本信息是堆中空閑空間 – 分配函數(shù) – 回收函數(shù) ? 內(nèi)存管理器應(yīng)具有下列性質(zhì) – 空間有效性:極小化程序需要的堆空間總量 – 程序有效性:較好地利用內(nèi)存子系統(tǒng) , 使得程序能運(yùn)行得快一些 – 低開銷 : 分配和回收操作所花時(shí)間在整個(gè)程序執(zhí)行時(shí)間中的比例盡量小 堆 管 理 計(jì)算機(jī)內(nèi)存分層 虛擬內(nèi)存 (磁盤 ) 物理內(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é)就可以寫出正確的程序 – 程序的效率不僅取決于被執(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í)行 , 最快的緩存也可能沒有大到足以把它們同時(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]。 int num。 char name[10000][20]。 char name[20]。 … … … … } struct student st[10000]。 ? 若是順序處理每個(gè)結(jié)構(gòu)體的多個(gè)域 , 左邊方式的數(shù)據(jù)局部性較好 ? 若是先順序處理每個(gè)結(jié)構(gòu)的 num域 , 再處理每個(gè)結(jié)構(gòu)的 name域 , … , 則右邊方式的數(shù)據(jù)局部性較好 ? 最好是按左邊方式編程 , 由編譯器決定是否需要將數(shù)據(jù)按右邊方式布局 堆 管 理 手工回收請(qǐng)求 ? 程序員在程序中顯式釋放堆塊來(lái)達(dá)到回收堆塊的目的 – 內(nèi)存泄漏:沒有釋放程序已經(jīng)引用不到的堆塊 只要內(nèi)存沒有用盡 , 它就不影響程序的正確性 自動(dòng)無(wú)用單元收集通過(guò)回收所有無(wú)用單元來(lái)擺脫內(nèi)存泄漏 – 懸空引用:引用已經(jīng)被釋放的堆塊 過(guò)分熱心地釋放數(shù)據(jù)對(duì)象而引起 懸空引用容易導(dǎo)致不會(huì)被捕獲的錯(cuò)誤 本 章 要 點(diǎn) ? 影響存儲(chǔ)分配策略的語(yǔ)言特征 ? 各種存儲(chǔ)分配策略 , 主要了解靜態(tài)分配和動(dòng)態(tài)棧式分配 ? 活動(dòng)記錄中各種數(shù)據(jù)域的作用和布局 ? 非局部數(shù)據(jù)訪問(wèn)的實(shí)現(xiàn)方法 ? 各種參數(shù)傳遞方式及其實(shí)現(xiàn) ? 堆管理 例 題 1 一個(gè) C語(yǔ)言程序及其在 X86/Linux操作系統(tǒng)上的編譯結(jié) 果如下 。 根據(jù)所生成的匯編程序來(lái)解釋程序中四個(gè)變 量的存儲(chǔ)分配 、 生存期 、 作用域和置初值方式等方面 的區(qū)別 static long aa = 10。 short bb = 20。 func( ) { static long cc = 30。 short dd = 40。 } 例 題 1 .data | .align 4 .align 4 | .type ,@object .type aa,@object | .size ,4 .size aa,4 | : aa: | .long 30 .long 10 | .text .globl bb | .align 4 .align 2 | .gl
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1