段式存儲管理
段式管理(segmentation),是指把一個程式分成若干個段(segment)進行存儲,每個段都是一個邏輯實體(logical entity),程式設計師需要知道並使用它。它的產生是與程式的模組化直接有關的。段式管理是通過段表進行的,它包括段號或段名、段起點、裝入位、段的長度等。此外還需要主存占用區域表、主存可用區域表。
基本介紹
中文名:段式存儲管理外文名:segmentation進行手段:段表產生:與程式的模組化直接有關優點:可以充分實現共享和保護
原理,執行命令,進行管理,優缺點,
原理為了進行段式管理,每道程式在系統中都有一個段(映象)表來存放該道程式各段裝入主存的狀況信息。段表中的每一項(對應表中的每一行)描述該道程式一個段的基本狀況,由若干個欄位提供。段名欄位用於存放段的名稱,段名一般是有其邏輯意義的,也可以轉換成用段號指明。由於段號從0開始順序編號,正好與段表中的行號對應,如2段必是段表中的第3行,這樣,段表中就可不設段號(名)欄位。裝入位欄位用來指示該段是否已經調入主存,“1”表示已裝入,“0”表示未裝入。在程式的執行過程中,各段的裝入位隨該段是否活躍而動態變化。當裝入位為“1”時,地址欄位用於表示該段裝入主存中起始(絕對)地址,當裝入位為“0”時,則無效(有時機器用它表示該段在輔存中的起始地址)。段長欄位指明該段的大小,一般以字數或位元組數為單位,取決於所用的編址方式。段長欄位是用來判斷所訪問的地址是否越出段界的界限保護檢查用的。訪問方式欄位用來標記該段允許的訪問方式,如唯讀、可寫、只能執行等,以提供段的訪問方式保護。除此之外,段表中還可以根據需要設定其它的欄位。段表本身也是一個段,一般常駐在主存中,也可以存在輔存中,需要時再調入主存。假設系統在主存中最多可同時有N道程式,可設N個段表基址暫存器。對應於每道程式,由基號(程式號)指明使用哪個段表基址暫存器。段表基址暫存器中的段表基址欄位指向該道程式的段表在主存中的起始地址。段表長度欄位指明該道程式所用段表的行數,即程式的段數。執行命令由系統賦給某道程式(用戶、進程)一個基號,並在調入調出過程中對有關段表基址暫存器和段表的內容進行記錄和修改,所以這些都不用用戶程式設計師來管。某道活躍的程式在執行過程中產生的指令或運算元地址只要與基號組合成系統的程式地址,即可通過查表自動轉換成主存的物理地址。下圖示意性地表示了這一地址變換的過程。分段方法能使大程式分模組編制,從而可以多個程式設計師並行編程,縮短編程時間,在執行或編譯過程中對不斷變化的可變長段也便於處理。各個段的修改、增添並不影響其它各段的編制,各用戶以段的連線形成的程式空間可以與主存的實際容量無關。分段還便於幾道程式共用已在主存內的程式和數據,如編譯程式、各種子程式、各種數據和裝入程式等。不必在主存中重複存儲,只需把它們按段存儲,並在幾道程式的段表中有公用段的名稱及同樣的基址值即可。由於各段是按其邏輯特點組合的,容易以段為單位實現存儲保護。例如,可以安排成常數段只能讀不能寫;運算元段只能讀或寫,不能作為指令執行;子程式段只能執行,不能修改;有的過程段只能執行,不能讀也不能寫,如此等等。一旦違反規定就中斷,這對發現程式設計錯誤和非法使用是很有用的。段式管理的虛擬存儲器由於各個段的長度完全取決於段自身,當然不會恰好如下圖那樣是1K的整數倍,段在主存中的起點也會是隨意的,這就給高效地調入段分配主存區域帶來困難。進行管理為了進行段式管理,除了系統需要為每道程式分別設定段映象表外,還得由作業系統為整個主存系統建立一個實主存管理表,它包括占用區域表和可用區域表兩部分。占用區域表的每一項(行)用來指明主存中哪些區域已被占用,被哪道程式的哪個段占用以及該段在主存的起點和長度。此外,還可以設定諸如該段是否進入主存後被改寫過的欄位,以便該段由主存中釋放時,決定是否還要將其寫回到輔存中原先的位置來減少輔助操作。可用區域表的每一項(行)則指明每一個未被占用的基地址和區域大小。當一個段從輔存裝入主存時,作業系統就在占用區域表中增加一項,並修改可用區域表。而當一個段從主存中退出時,就將其在占用區域表的項(行)移入可用區域表中,並進行有關它是否可與其它可用區歸併的處理,修改可用區域表。當某道程式全部執行結束或者是被優先權更高的程式所取代時,也應將該道程式的全部段的項從占用區域表移入可用區域表並作相應的處理。優缺點在段式存儲管理中,每個段地址的說明為兩個量:一個段名和一個位移。在段內,是連續完整存放的。而在段與段之間是不一定連續編址的。段名和位移構成了一種二維編址。 段式管理是不連續分配記憶體技術中的一種。其最大特點在於他按照用戶觀點,即按程式段、數據段等有明確邏輯含義的“段”,分配記憶體空間。克服了頁式的、硬性的、非邏輯劃分給保護和共享與支態伸縮帶來的不自然性。 段的最大好處是可以充分實現共享和保護,便於動態申請記憶體,管理和使用統一化,便於動態連結;其缺點是有碎片問題。
相關詞條
段式存儲管理段式管理(segmentation),是指把一個程式分成若干個段(segment)進行存儲,每個段都是一個邏輯實體(logical entity),程式設計師需要知道並使用它。它的產生是與程式的模組...
段頁式存儲管理方式段頁式存儲管理方式即先將用戶程式分成若干個段,再把每個段分成若干個頁,並為每一個段賦予一個段名。右圖示出了一個作業的地址空間和地址結構。...
存儲管理存儲器管理的對象是主存,也稱記憶體。它的主要功能包括分配和回收主存空間、提高主存利用率、擴充主存、對主存信息實現有效保護。...
基本分頁存儲管理方式基本分頁存儲管理方式分段式存儲管理方式 如果說推動存儲管理方式是從固定分區到...先將用戶程式分成若干個段,再把每個段分成若干個頁,並為每一個段賦予一個段...
分段存儲模式計算機的存儲模式,是一種內模式,在該模式中,PC存儲器被看做是段的集合,每個段64KB。...
主存管理▪ 存儲保護 2 分區管理 3 分區分配 4 頁式管理 ▪ 分頁定義 ▪ 頁表定義 ▪ 虛地址 ▪ 頁式地址 ▪ 請調頁面 5 段氏管理 ▪...
虛擬記憶體管理經常運行與某一局部存儲空間的指令和數據(稱為空間局部性),有些程式段不能同時...虛擬頁式存儲管理和一般的頁式管理有相同之處,只不過各進程頁表要增加指明每個...
段表在分段式存儲管理系統中,每個進程或程式都有一個或多個邏輯段,為使程式或稱進程能正常運行,亦即,能從物理記憶體中找出每個邏輯段所對應的位置,在系統中為每個進程...
查段表在分段式存儲管理系統中,每個進程或程式都有一個或多個邏輯段,為使程式或稱進程能正常運行,亦即,能從物理記憶體中找出每個邏輯段所對應的位置,在系統中為每個進程...
段表長度在分段式存儲管理系統中,每個進程或程式都有一個或多個邏輯段,為使程式或稱進程能正常運行,亦即,能從物理記憶體中找出每個邏輯段所對應的位置,在系統中為每個進程...
段界在分段式存儲管理系統中,每個進程或程式都有一個或多個邏輯段,為使程式或稱進程能正常運行,亦即,能從物理記憶體中找出每個邏輯段所對應的位置,在系統中為每個進程...
段表地址在分段存儲管理方式中,作業的地址空間被劃分為若干個段。用段號表示程式各段的編號,各段的長度不等。為使程式能正常運行,亦即,能從物理記憶體中找出每個邏輯段所...
段表起始地址在分段式存儲管理系統中,則是為每個分段分配一個連續的分區,而進程中的各個段可以離散地移入記憶體中不同的分區中。為使程式能正常運行,亦即,能從物理記憶體中找出...
虛擬記憶體而虛存管理由軟體(作業系統)和硬體共同完成,由於軟體的介入,虛存對實現存儲管理的系統程式設計師不透明,而只對應用程式員透明(段式和段頁式管理對應用程式員“半透明...
熱門詞條
三國一統天下
謝怡芬
中小企業貸款
親民技術學院
撥撥
毫米
spao
青年創業貸款
banner
維果·莫特森
cuisine
diploma
女體盛
飼料
西施犬
銀纖維襪子
pms
台中民俗公園
星蘋果樂園
斐濟
海芋
姜世花
自我感覺良好
糖果屋消消看
西田敏行
戚風蛋糕
對講機
HD