不分頁程式段

不分頁程式段

程式段(Program segment)就是一段程式,可以是一個子過程SUB,一個函式FUNCTION,或者是面向對象程式設計中的一個方法。不分頁程式段是指系統程式段記憶體分配沒有採用分頁存儲管理方式,而是採用其他記憶體存儲管理方式,如分段程式段和連續程式段。

程式

程式是計算任務的處理對象和處理規則的描述。任何以計算機為處理工具的任務都是計算任務。處理對象是數據(如數字、文字、圖形、圖象、聲音等,它們只是表示,而無含義)或信息(數據及有關的含義)。處理規則一般指處理動作和步驟。在低級語言中, 程式是一組指令和有關的數據或信息。在高級語言中,程式一般是一組說明和語句。程式是程式設計中最基本的概念, 也是軟體中最基本的概念。程式是軟體的本體,又是軟體的研究對象。程式的質量決定軟體的質量。以上是在實現級語言中程式的含義。在設計級語言中,程式即設計規約在功能級語言中,程式即功能規約,在需求級語言中,程式即需求定義。但習慣上,程式均指實現級語言中的程式。程式要能實際起作用,必須裝入到機器內部。程式的實際工作過程稱為程式的執行。衡量程式質量,除對程式結構進行靜態考察外,還必須考察其執行過程。與執行過程無關的特性稱為程式的靜態特性;與執行過程有關的特性稱為程式的動態特性。為了降低程式的複雜性,在程式設計中,經常將一個程式分割成不同的程式段來完成程式某一種功能。

存儲管理

存儲管理由作業系統提供的一種功能。它能分配和回收存儲單元。一道程式在啟動執行前必須裝入存儲器內;程式在執行中可能還要申請存儲單元;程式執行完畢後要將所占用的全部存儲單元歸還給系統。這些存儲單元的分配和回收工作,都由作業系統來完成。具有多道程式設計功能的作業系統,還必須採取有效的策略,分配各用戶程式所需的存儲資源,以提高系統效率。在採用頁式存儲或虛似存儲的系統中,作業系統還要配合硬體做頁面調度工作,即將所需的頁面調入存儲器,將暫時不用的頁面調出以騰出空間。頁面調動工作完成的好壞,對系統效率有很大的影響。

分頁程式段

分頁程式段是指系統對記憶體中的程式採用分頁存儲管理方式,分頁存儲管理方式是很多作業系統中使用的一種記憶體管理方式。它的基本思想是:把記憶體空間分成若干個大小相等的固定的物理塊或稱之為頁框,並且從0開始進行編號,相應地,進程邏輯地址空間也按照物理塊的大小劃分成大小相等的頁面或稱之為頁,並且每一個進程的頁面也從0開始進行編號。頁面大小是作業系統可以選擇的一個參數,為了確定最佳的頁面大小,需要在幾個互相矛盾的因素之間進行權衡。在為進程分配記憶體時,以塊為單位進行分配,即每頁獲得一個物理塊。將進程中的每一個頁面映射到記憶體中的一個物理塊,這樣就得到進程的頁表。頁表的作用是實現從頁號到物理塊號的地址映射。根據程式運行時是必須裝入所有頁面還是可以僅裝入部分頁面,又可以將分頁存儲管理方式分為基本分頁存儲管理方式和請求分頁存儲管理方式。相對於連續分配方式,分頁存儲管理系統中程式的運行過程發生了變化。記憶體有效訪問時間的計算問題,根據系統的實現方式(基本的還是虛擬的)、有無快表、程式運行的具體情況而有所不同 。

不分頁程式段管理方式

分段程式段

分段地址 分段地址

在分段存儲管理方式中,作業的地址空間被劃分為若干個段,每個段定義了一組邏輯信息。即將程式分成不同的程式段,例如,有主程式段MAIN、子程式段X、數據段D及棧段S等,如圖所示。每個段都有自己的名字。為了實現簡單起見,通常可用一個段號來代替段名,每個段都從0開始編址,並採用一段連續的地址空間。段的長度由相應的邏輯信息組的長度決定,因而各段長度不等。整個作業的地址空間由於是分成多個段,因而是二維的,亦即,其邏輯地址由段號(段名)和段內地址所組成。

連續程式段

連續程式段是指程式沒有將程式分割成不同功能的子程式,即沒將程式分為主程式和子程式,而是通過一個程式完成,在程式進入記憶體運行時,記憶體存儲管理方式分配給程式一塊連續的地址存儲空間,直到程式運行完畢,系統才回收地址空間。這是最簡單的一種存儲管理方式,但只能用於單用戶、單任務的作業系統中。採用這種存儲管理方式時,可把記憶體分為系統區和用戶區兩部分,系統區僅提供給 OS 使用,通常是放在記憶體的低址部分;用戶區是指除系統區以外的全部記憶體空間,提供給用戶使用。

固定分區程式段

固定分區式分配是最簡單的一種可運行多道程式的存儲管理方式。這是將記憶體用戶空間劃分為若干個固定大小的區域,在每個分區中只裝入一道作業,這樣,把用戶空間劃分為幾個分區,便允許有幾道作業並發運行。當有一空閒分區時,便可以再從外存的後備作業佇列中選擇一個適當大小的作業裝入該分區,當該作業結束時,又可再從後備作業佇列中找出另一作業調入該分區。可用下述兩種方法將記憶體的用戶空間劃分為若干個固定大小的分區:

(1) 分區大小相等,即使所有的記憶體分區大小相等。其缺點是缺乏靈活性,即當程式太小時,會造成記憶體空間的浪費;當程式太大時,一個分區又不足以裝入該程式,致使該程式無法運行。儘管如此,這種劃分方式仍被用於利用一台計算機去控制多個相同對象的場合,因為這些對象所需的記憶體空間是大小相等的。例如,爐溫群控系統,就是利用一台計算機去控制多台相同的冶煉爐。

(2) 分區大小不等。為了克服分區大小相等而缺乏靈活性的這個缺點,可把記憶體區劃分成含有多個較小的分區、適量的中等分區及少量的大分區。這樣,便可根據程式的大小為之分配適當的分區。

相關詞條

熱門詞條

聯絡我們