求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

可變分區檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
可變分區

可變分區存儲 管理 不是預先把內存中的用戶區域劃分成若干固定分區,而是在作業要求裝入內存時,根據用戶作業的大小和當時內存空間使用情況決定是否為該作業分配一個分區。

因此分區大小不是預先固定的,而是按作業需求量來劃分的;分區的個數和位置也不是預先確定的。它有效地克服了固定分區方式中,由於分區內部剩餘內存空置造成浪費問題

基本信息

屬於 存儲管理 [1]

可變分區1.jpg

存儲管理

基本思想

在作業要求裝入內存時,若當時內存中有足夠的存儲空間滿足該作業的需求,那就劃分出一個與作業相對地址空間同樣大小的分區分配給它使用。

內、外部碎片

內部碎片 外部碎片 [2] 存儲管理中,把分配給了用戶而用戶未用的存儲區稱為"內部碎片" 存儲管理中,把那些無法分配出去滿足作業存儲請求的空閒區稱為"外部碎片"

可變狀態2.jpg

解決的問題

採用地址動態重定位技術,使程序能在內存中移動,為空閒區合併提供保證。

記住各分區的使用情況,當一個分區被釋放時,要能判定它的前、後分區是否為空閒區。若是空閒區,就進行合併,形成一個大的空閒區 給出分區分配算法,在有多個空閒區都滿足作業的存儲請求時,決定分配哪一個

空閒區的合併

前後相鄰接分區的四種關係

釋放分區的前、後鄰接分區都是已分配區,沒有合併的問題存在。

可變狀態3.jpg

釋放分區的前鄰接分區是空閒區,後鄰接分區是已分配區。釋放區應該和前鄰接的空閒區合併成一個新的空閒區。

釋放區的前鄰接分區是已分配區,後鄰接分區是空閒區。因此,釋放分區應該和後鄰接的空閒區合併成一個新的空閒區。

釋放區的前、後鄰接分區都是空閒區。因此,釋放區應該和前、後兩個鄰接的空閒區合併成一個新的空閒區。

空閒分區合併的時機

一是調度到某作業時,若系統的每個空閒區尺寸都小於它的需要,但空閒區總存儲量大於它的存儲請求,於是進行空閒區合併,得到一個大的空閒區,滿足該作業的需要。

一是只要有作業運行完歸還所占用的存儲區,系統就進行空閒區的合併。

分區的管理

可變狀態4.jpg

表格法

設置兩張表:"已分配表"和"空閒區表"。其中"序號"是表目項的順序號,"起始地址"、"尺寸"、"狀態" 都是該分區的相應屬性。由於系統中分區的數目是變化的,因此每張表格中的表目項數要足夠的多,暫時不用的表目項的狀態被設為"空"。

作業提出存儲需求時,查空閒區表里狀態為"空閒"的表目項。若該項的尺寸能滿足所求,就將它一分為二:分配出去的那部分在已分配表里找一個狀態為"空" 的表目項進行登記,剩下的部分仍在空閒區表里占據一個表目項。

若有作業運行結束,則根據作業名到已分配表里找到它的表目項,將該項的 "狀態"改為"空",隨之在空閒區表里尋找一個狀態為"空"的表目項,把釋放分區的信息填入,並將表目項狀態改為"空閒"。


單鍊表法

可變狀態5.jpg

基本思想把內存中每個空閒分區視為一個整體,在它裡面開闢出兩個單元,一個存放該分區的長度(size),一個存放它下一個空閒分區的起址(next),操作系統開闢一個單元,存放第1個空閒分區的起址,這個單元稱為"鏈首指針"。最後一個空閒分區的next里存放標誌"NULL" 。這樣一來,

系統里所有空閒分區被next連接成一個鍊表。從鏈首指針出發,順着各個空閒分區的next往下走,就能到達每一個空閒分區。 存儲分配對提出的任何一個存儲請求,從空閒區鍊表首指針開始查看一個個空閒區。若有滿足要求的,按尺寸分配,調整next指針;若到達NULL未見滿足要求,則分配失敗。

存儲釋放作業完成任務後,將占用的存儲區釋放,鏈入空閒區鍊表(要調整指針和空閒區合併)。

什麼是戰時狀態

它是指當國家安全受到嚴重威脅時,將軍隊處於最高級的備戰準備,並向全國發布戰爭動員令的一種戰鬥緊張形勢。

交戰國之間的敵對狀態。一旦進入戰爭狀態,交戰國之間的外交關係、經濟貿易等關係即告斷絕,原簽訂的協議也告中止。雙方將撤外交人員和僑民。戰爭狀態通常以簽訂停戰或和平協定而告結束,也有戰勝國單方面宣布結束戰爭狀態的。

可變狀態6.jpg

通常需要國家間宣戰,表示正式進入戰爭狀態,但也有例外。例如,德國突襲波蘭,日本偷襲珍珠港。

擴展資料

戰時狀態開始後,交戰國之間的關係由和平關係轉變為戰時關係,所產生的法律後果是:

①外交和領事關係斷絕

②關於戰爭和中立的條約和習慣法開始實施

③商務關係一般斷絕;交戰國人民之間的契約廢止或停止執行。

④處在敵國領土上或敵國占領區內的交戰國人民,過去往往被拘禁,18世紀以後逐漸形成允許在適當期限內撤退的慣例

參考來源