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

正文內(nèi)容

目標(biāo)程序運(yùn)行時(shí)的存儲(chǔ)組織概論(ppt54頁)-免費(fèi)閱讀

2025-03-09 13:07 上一頁面

下一頁面
  

【正文】 ? (7) begin f:=m+n end{f}。 過程參數(shù) 一個(gè)嵌套過程(函數(shù))可以作為參數(shù)傳遞。 (3){ int temp。 x:=y; y:=temp end; 調(diào)用 swap(a,b) 過程將不會(huì)影響 a和 b的值。 例如:過程 swap(x,y:integer)。 (5) begin (6) temp:=x。 (3) begin。 這樣,每個(gè)過程的活動(dòng)記錄所含的內(nèi)容有: TOP值,它指向過程活動(dòng)記錄的棧頂位置。但這種辦法是很浪費(fèi)時(shí)間的。 L8:end。 B1:begin real z。 圖 exchange之后運(yùn)行棧的示意,我們僅把存取鏈和控制鏈的值標(biāo)明。 設(shè)法跟蹤每個(gè)外層過程的最新活動(dòng)記錄 AR的位置。 (11) procedure quicksort(m,n: integer)。 (4) procedure readarray。 SP總是指向現(xiàn)行過程活動(dòng)記錄的起點(diǎn), TOP則始終指向已占用的棧頂單元。 主程序執(zhí)行語句 end main 圖 過程定義不嵌套的程序結(jié)構(gòu) 這種情況下,采用棧式動(dòng)態(tài)分配策略,即,運(yùn)行時(shí),每當(dāng)進(jìn)入一個(gè)過程,則為該過程分配一段存儲(chǔ)區(qū),當(dāng)一個(gè)過程工作完畢返回時(shí),它所占用的存儲(chǔ)區(qū)可釋放。 ⑤ 控制鏈 :指向調(diào)用該過程的那個(gè)過程的活動(dòng)記錄。 棧式存儲(chǔ)分配的實(shí)現(xiàn) 前面提到,使用棧式存儲(chǔ)分配策略意味著,運(yùn)行時(shí)每當(dāng)進(jìn)入一個(gè)過程,就在棧頂為該過程的臨時(shí)工作單元,局部變量,機(jī)器狀態(tài)及返回地址等信息分配所需的數(shù)據(jù)空間,當(dāng)一個(gè)過程工作完畢返回時(shí),它在棧頂?shù)臄?shù)據(jù)空間也即釋放。 占用 占用 占用 空閑 空閑 空閑 available (a) 占用 占用 空閑 空閑 空閑 (b) 空閑 available 圖 定長(zhǎng)塊管理 2)變長(zhǎng)塊管理 除了按定長(zhǎng)塊進(jìn)行分配之外,還可以根據(jù)需要分配長(zhǎng)度不同的存儲(chǔ)塊,可以隨要求而變。 堆式的動(dòng)態(tài)存儲(chǔ)分配策略 : 另外,如果運(yùn)行程序要求一塊體積為 N的空間,但所有空閑塊的總和也不夠 N,那又應(yīng)怎么辦呢? 有的管理系統(tǒng)采用一種叫做廢品回收的辦法來對(duì)付這種局面。 這種分配方式的存儲(chǔ)管理技術(shù)甚為復(fù)雜,我們這里舉出這種分配方法必須考慮的幾個(gè)問題。 棧式動(dòng)態(tài)存儲(chǔ)分配 這種分配策略是將整個(gè)程序的數(shù)據(jù)空間設(shè)計(jì)為一個(gè)棧。 ?編譯程序分配目標(biāo)程序運(yùn)行時(shí)的數(shù)據(jù)空間的基本依據(jù)是程序語言設(shè)計(jì)時(shí)對(duì)程序運(yùn)行中存儲(chǔ)空間的使用和管理辦法的規(guī)定。第 10章 目標(biāo)程序 運(yùn)行時(shí)的存儲(chǔ)組織 數(shù)據(jù)空間的三種不同使用方法和管理方法 棧式存儲(chǔ)分配的實(shí)現(xiàn) 參數(shù)傳遞 從邏輯上看,在代碼生成前,編譯程序必須進(jìn)行目標(biāo)程序運(yùn)行環(huán)境的配置和數(shù)據(jù)空間的分配。 ?決定存儲(chǔ)管理復(fù)雜程度的因素 源語言本身,比如源語言允許的數(shù)據(jù)類型有多少?語言中允許的數(shù)據(jù)項(xiàng)是靜態(tài)確定還是動(dòng)態(tài)確定?程序結(jié)構(gòu)有什么特點(diǎn),是段結(jié)構(gòu)還是分程序結(jié)構(gòu)?過程定義是否允許嵌套?等等。 在具有遞歸結(jié)構(gòu)的語言程序中,每當(dāng)調(diào)用一個(gè)過程時(shí),它所需的數(shù)據(jù)空間就分配在棧頂,每當(dāng)過程工作結(jié)束時(shí)就釋放這部分空間。 堆式的動(dòng)態(tài)存儲(chǔ)分配策略 : 當(dāng)運(yùn)行程序要求一塊體積為 N的空間時(shí),我們應(yīng)該分配哪一塊給它呢? 理論上說,應(yīng)從比 N稍大一點(diǎn)的一個(gè)空閑塊中取出 N個(gè)單元,以便使大的空閑塊派更大的用場(chǎng)。即尋找那些運(yùn)行程序業(yè)己無用但尚未釋放在占用塊,或者那些行程序目前很少使用的占用塊,把這此占用塊收回來,重新分配。按這種方法,初始化時(shí)存儲(chǔ)空間是一個(gè)整塊。 為討論方便,首先引入一個(gè)術(shù)語 過程的活動(dòng)記錄AR(Activation Record)。 ⑥ 實(shí)參 :也稱形式單元,由調(diào)用過程向該被調(diào)過程提供實(shí)參的值(或地址)。程序運(yùn)行時(shí)的存儲(chǔ)空間 (棧 )中在某一時(shí)刻可能會(huì)包含某個(gè)過程的幾個(gè)活動(dòng)記錄(某個(gè)過程遞歸調(diào)用的情況);另外,同樣的一個(gè)存儲(chǔ)位置,在不同運(yùn)行時(shí)刻可能分配給不同的數(shù)據(jù)對(duì)象。 這種語言若含有可變數(shù)組,則其過程活動(dòng)記錄的內(nèi)容可如圖 。 //sort內(nèi)嵌套定義的 readarray的過程頭 (5) var i: integer。 //sort內(nèi)嵌套定義的 quicksort的過程頭 (12) var k,v: integer。 跟蹤辦法: 1. 用靜態(tài)鏈(如 PL/0的 SL)。 可以看出,過程 exchange由過程(函數(shù))partition調(diào)用,但 exchange的直接外層過程是 sort,所以過程 exchange的活動(dòng)記錄的存取鏈指向 sort的活動(dòng)記錄的始址。 array B[m:n]。 分程序結(jié)構(gòu)的存儲(chǔ)分配方案 處理分程序結(jié)構(gòu)存儲(chǔ)分配方案的一種簡(jiǎn)單辦法是,把分程序看成 “無名無參過 程”,它在哪里定義就在哪里被調(diào)用。 為了解決上述問題,可采取兩種措施。 ,共四項(xiàng): (1)老 SP值; (2)返回地址; (3)全局 DISPAY地址; (4)調(diào)用時(shí)的棧頂單元地址,老 TOP。 (4) x:=a[i]。 (7) x:=y。 swap(a,b); 其結(jié)果: a,b調(diào)用前的值不改變。 其結(jié)果等價(jià)于執(zhí)行下列運(yùn)算: x :=a;
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1