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

正文內(nèi)容

目標程序運行時的存儲組織概論(ppt54頁)-wenkub

2023-03-12 13:07:58 本頁面
 

【正文】 B2:begin real d, e。 例:見 P238239 分程序結構 Procedure A(m,n)。 圖 運行棧 靜態(tài)鏈,指向靜態(tài)直接外層最新活動記錄的起始地址, 動態(tài)鏈 ,指向 調(diào)用 該過程前正在運行過程的數(shù)據(jù)段基地址。 圖 嵌套定義過程的活動記錄和存儲棧 (a) 局部變量 ┆ 存取鏈 控制鏈 TOP SP ┆ ┆ 存取鏈 控制鏈 (老 SP) ┆ ┆ TOP SP (b) quicksort的 AR sort的 AR 再回到圖 。 2. 用 DISPLAY表。 (19) begin?end{quicksort}。 (13) function partition(y,z:integer):integer。 a[j]∶=x。 (6) begin?a?end{readarray}。 //sort的過程頭 (2) var a: array [0..10] of integer。這里把控制鏈也稱作老 SP,即調(diào)用該過程的那個過程的最新活動記錄的起點。 指向調(diào)用該過程的那個過程的最新活動記錄的起始地址 用以存取非局部變量,這些變量存放于其他過程的活動記錄中。 例如圖 ,若主程序調(diào)用了過程Q, Q又調(diào)用了 R,在 R進入運行后的存儲結構如圖( a)所示。 簡單的棧式分配的實現(xiàn) 程序結構特點 :過程定義不嵌套,過程可遞歸調(diào)用,含可變數(shù)組;例: program main 全局變量的說明 proc R …… end R。當然在實際編譯程序中,也常常使用機器寄存器傳遞實參。 ④ 存取鏈 :用以存取非局部變量,這些變量存放于其它過程的活動記錄中。過程的活動記錄是一段連續(xù)的存儲區(qū),用以存放過程的一次執(zhí)行所需要的動態(tài)信息,這些信息可以如圖 。 ? 最差滿足法(時間優(yōu)先)。按照用戶的需要,分配時先是從一個整塊里分割出滿足需要的一小塊,以后,歸還時,如果新歸還的塊能和現(xiàn)有的空間能合并,則合并成一塊;如果不能和任何空閑塊合并,則可以把空閑塊鏈成一個鏈表。歸還時,把所歸還的塊插入鏈表。 但是,我們?nèi)绾沃滥男K運行時在使用或者目前很少使用呢?即便知道了,一經(jīng)收回后運行程序在某個時候又要用它時又應該怎么辦呢? 要使用廢品回收技術,除了在語言上要有明確的具體限制外,還需要有特別的硬件措施,否則回收幾乎不能實現(xiàn)。 解決辦法似乎很簡單,這就是,把所有空閑塊連接在一起,形成一片可分配的連續(xù)空間。但這種做法較麻煩。 此時 ,空間的使用未必服從“先申請后釋放,后申請先釋放”的原則,那么棧式的動態(tài)分配方案就不適用了。 過程所需的數(shù)據(jù)空間包括兩部分: ① 生存期在本過程這次活動中的數(shù)據(jù)對象; ② 用以管理過程活動的記錄信息 。 因為對于這種程序在編譯時無法知道它在運行時需要多大的存儲空間,它所需要的數(shù)據(jù)空間的大小需待程序運行時動態(tài)地確定。 ?源語言的結構特點、源語言的數(shù)據(jù)類型、源語言中決定名字作用域的規(guī)則等因素影響存儲空間的管理和組織的復雜程度,決定數(shù)據(jù)空間分配的基本策略。 因此運行時的存儲區(qū)常常劃分成:目標代碼區(qū)、靜態(tài)數(shù)據(jù)區(qū)、棧區(qū)和堆區(qū),如圖 。 數(shù)據(jù)空間 應包括: ? 用戶定義的各種類型的數(shù)據(jù)對象(變量和常數(shù))所 需的存儲空間; ? 作為保留中間結果和傳遞參數(shù)的臨時工作單元; ? 調(diào)用過程時所需的連接單元; ? 組織輸入 /輸出所需的緩沖區(qū)。 目標代碼所占用空間 的大小在編譯時能確定。 目標代碼區(qū) code 靜態(tài)數(shù)據(jù)區(qū) static 棧 Stack 堆 heap 圖 目標程序運行時存儲區(qū)的典型劃分 數(shù)據(jù)空間 ?所謂數(shù)據(jù)空間的分配,本質(zhì)上看,是將程序中的每個名字與一個存儲位置關聯(lián)起來,該存儲位置用以保存名字的值。 數(shù)據(jù)空間的三種不同使用方法和管理方法 數(shù)據(jù)空間的使用和管理方法 : 簡單的棧式分配方案 嵌套過程的棧式分配方案 分程序結構的存儲分配方案 靜態(tài)存儲分配、 動態(tài)存儲分配 —— 棧式 堆式 靜態(tài)存儲分配 如果在編譯時能確定目標程序運行中所需的全部的數(shù)據(jù)空間的大小,編譯時安排好目標程序運行時的全部數(shù)據(jù)空間,確定每個數(shù)據(jù)對象的存儲位置,稱這種分配策略為靜態(tài)存儲分配。 若一個數(shù)組所需的存儲空間的大小在編譯時就已知道,則稱它為確定(靜態(tài))數(shù)組,否則稱為可變(動態(tài))數(shù)組。 棧式動態(tài)存儲分配策略適用于 PASCAL, C,ALGOL之類具有遞歸結構的語言的實現(xiàn)。通常使用一種稱為堆式的動態(tài)存儲分配方案。 因此,常常仍采用“先碰上哪塊比 N大就從其中分出 N個單元”的原則。 這里主要問題是,我們必須調(diào)整運行程序對各占用塊的全部引用點。 堆式動態(tài)儲分配的實現(xiàn)通常有如下兩種途徑: 1)定長塊管理 堆式動態(tài)儲分配最簡單的實現(xiàn)是按定長塊進行??紤]插入方便,可以把所歸還的塊插在 available所指的塊之前,然后 available指向新歸還的塊。再進行分配時,從空閑塊鏈表中找出滿足需要的一塊,或者整塊分配出去,或者從該塊上分割一小塊分配出去。 上述三種分配策略各有所長。 圖 過程的活動記錄 返回地址 實參 控制鏈 存取鏈 機器狀態(tài)信息 局部變量 臨時工作單元 ① 臨時工作單元 :比如計算表達式過程中需存放中間結果用的臨時值單元。并不是所有語言需要該信息。 ⑦ 返回地址 :保存該被調(diào)過程返回后的地址。 proc Q …… end Q。 若主程序調(diào)用了過程 Q, Q遞歸調(diào)用自己,在 Q過程第二次進入運行后的存儲結構如圖 ( b)所示。 TOP? 臨時工作單元 局部簡單變量 局部數(shù)組的內(nèi)情
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1