頁式存儲管理段式存儲管理
㈠ 分頁和分段存儲管理相同點是什麼
基本分段存儲管理方式和基本分頁存儲管理方式二者的理論基礎都是相對差不多的,二者都是建立在內存分區管理思想和程序局缺逗部性原理的基礎之上。
基本分頁存儲管理方式在存儲器管理中,連續分配方式會形成許多「碎片」,雖然可通過「緊湊」方法將許多碎租扮此片拼接成可用的大塊空間,但須為之付出很大開銷。
在分段存儲管理方式中,作業的地址空間被劃分為若干個段,每個段定義了一組邏輯信息。例如,有主程序段MAIN、子程序段X、數據段D及棧段S等。
(1)頁式存儲管理段式存儲管理擴展閱讀:
基本分段存儲管理方式和基本分頁存儲管弊迅理方式原理的結合就是段頁式系統的基本原理,即先將用戶程序分成若干個段,再把每個段分成若干個頁,並為每一個段賦予一個段名。
在段頁式系統中,為了便於實現地址變換,須配置一個段表寄存器,其中存放段表始址和段表長TL。進行地址變換時,首先利用段號S,將它與段表長TL進行比較。
㈡ 在無快表的段頁式存儲管理系統中,為獲得一條指令需要訪問內存多少次每次取出什麼內容
在無快表的段頁式存儲管理系統中,為獲得一條指令需要訪問內存三次。每次取出的內容分別是內存中的段表、內存中的頁表、指令或數據所在的內存頁面。
快表的命中率對訪存時間影響非常大。當命中率從85%降低亂埋到50%時,有效存取時間增加一倍。因此在頁式存儲系統中,應盡可能地提高快表的命中率,從而提高系統效率。
在有快表的分頁存儲系統中,計算有效存取時間時,需注意訪問快表與訪問內存的時間關系。通常的系統中,先訪問快表,未命中時再訪問內存;在有些系統中,快表與內存的訪問同時進行,當快表命中時就停止對內存的訪問。
(2)頁式存儲管理段式存儲管理擴展閱讀
段頁式存儲管理嘩辯螞系統的管理方式:
1、因為作業地址空間進行段式管理,灶模也就是說將作業地址空間分成若干個邏輯分段,並且每個段都有自己的段名(和段式存儲管理一樣)。
2、對於內存空間的管理仍然和分頁存儲管理一樣,將其分成若干個與頁面大小相同的物理塊,並對內存空間的分配都是以物理塊為單位的。
㈢ 內存為程序分配空間的四種分配方式
存儲器是個寶貴但卻有限的資源。一流的操作系統,需要能夠有效地管理及利用存儲器。
內存為程序分配空間有四種分配方式:
1、連續分配方式
2、基本分頁存儲管理方式
3、基本分段存儲管理方式
4、段頁式存儲管理方式
首先講連續分配方式。 連續分配方式 出現的時間比較早,曾廣泛應用於20世紀60~70年代的OS中,但是它至今仍然在內存管理方式中佔有一席之地,原因在於它 實現起來比較方便,所需的硬體支持最少 。連續分配方式又可細分為四種: 單一連續分配、固定分區分配、動態分區分配和動態重定位分區分配 。
其中固定分區的分配方式,因為分區固定,所以缺乏靈活性,即 當程序太小時,會造成內存空間的浪費( 內部碎片 ) ; 程序太大時,一個分區又不足以容納,致使程序無法運行( 外部碎片 ) 。但盡管如此,當一台計算機去控制多個相同對象的時候,由於這些對象內存大小相同,所以完全可以採用這種內存管理方式,而且是最高效的。這里我們可以看出存儲器管理機制的多面性:沒有那種存儲器管理機制是完全沒有用的,在適合的場合下,一種被認為最不合理的分配方案卻可能稱為最高效的分配方案。 一切都要從實際問題出發,進行設計。
為了解決固定分區分配方式的缺乏靈活性,出現了 動態分配方式 。動態分配方式採用一些 尋表(Eg: 空閑鏈表 ) 的方式,查找能符合程序需要的空閑內存分區。但代價是增加了系統運行的開銷,而且內存空閑表本身是一個文件,必然會佔用一部分寶貴的內存資源,而且有些演算法還會增加內存碎片。
可重定位分區分配通過對程序實現成定位,從而可以將內存塊進行搬移,將小塊拼成大塊,將小空閑「緊湊」成大空閑,騰出較大的內存以容納新的程序進程。
連續分配方式 會形成許多「碎片」,雖然可以通過「緊湊」方式將許多碎片拼接成可用的大塊空間,但須為之付出很大開銷。所以提出了「 離散分配方式 」的想法。如果 離散分配的基本單位是頁 ,則稱為 分頁管理方式 ;如果離散分配的基本單位是段,則稱為 分段管理方式 。
分頁存儲管理是將一個進程的邏輯地址空間分成若干個大小相等的片,稱為頁面或頁,並為各頁加以編號,從0開始,如第0頁、第1頁等。相應地,也把內存空間分成與頁面相同大小的若干個存儲塊,稱為(物理)塊或頁框(frame),也同樣為它們加以編號,如0#塊、1#塊等等。在為進程分配內存時,以塊為單位將進程中的若干個頁分別裝入到多個可以不相鄰接的物理塊中。由於進程的最後一頁經常裝不滿一塊而形成了不可利用的碎片,稱之為「 頁內碎片 」。
在分頁系統中,允許將進程的各個頁離散地存儲在內存不同的物理塊中(所以能實現離散分配方式) ,但系統應能保證進程的正確運行,即能在內存中找到每個頁面所對應的物理塊。為此,系統又為每個進程建立了一張頁面映像表,簡稱 頁表 。在進程地址空間內的所有頁,依次在頁表中有一頁表項,其中記錄了相應頁在內存中對應的物理塊號。在配置了頁表後,進程執行時,通過查找該表,即可找到每頁在內存中的物理塊號。可見, 頁表的作用是實現從頁號到物理塊號的地址映射 。
為了能夠將用戶地址空間中的 邏輯地址,變換為內存空間中的物理地址 ,在系統中必須設置 地址變換機構 。地址變換任務是藉助於頁表來完成的。
頁表 的功能可由一組專門的寄存器來實現。由於寄存器成本較高,且大多數現代計算機的頁表又很大,使頁表項總數可達幾千甚至幾十萬個,顯然這些頁表項不可能都用寄存器來實現,因此,頁表大多駐留在內存中。因為一個進程可以通過它的PCB來時時保存自己的狀態,等到CPU要處理它的時候才將PCB交給寄存器,所以,系統中雖然可以運行多個進程,但也只需要一個頁表寄存器就可以了。
由於 頁表是存放在內存中 的,這使得 CPU在每存取一個數據時,都要兩次訪問內存 。為了提高地址變換速度,在地址變化機構中增設了一個 具有並行查詢能力的高速緩沖寄存器 ,又稱為「聯想寄存器」(Associative Lookaside Buffer)。
在單級頁表的基礎上,為了適應非常大的邏輯空間,出現了兩級和多級頁表,但是,他們的原理和單級頁表是一樣的,只不過為了適應地址變換層次的增加,需要在地址變換機構中增設外層的頁表寄存器。
分段存儲管理方式 的目的,主要是為了滿足用戶(程序員)在編程和使用上多方面的要求,其中有些要求是其他幾種存儲管理方式所難以滿足的。因此,這種存儲管理方式已成為當今所有存儲管理方式的基礎。
分段管理方式和分頁管理方式在實現思路上是很相似的,只不過他們的基本單位不同。分段有 段表 ,也有 地址變換機構 ,為了提高檢索速度,同樣增設 聯想寄存器(具有並行查詢能力的高速緩沖寄存器) 。所以有些具體細節在這個不再贅述。
分頁和分段的主要區別:
1、兩者相似之處:兩者 都採用離散分配方式,且都要通過地址映射機構來實現地址變換 。
2、兩者的不同之處:
(1)頁是信息的 物理單位 ,分頁是為實現離散分配方式,以消減內存的外零頭,提高內存的利用率。或者說,分頁僅僅是由於 系統管理的需要 而不是用戶的需要。段則是信息的 邏輯單位 ,它含有一組其意義相對完整的信息。 分段的目的是為了能更好地滿足用戶的需要 。
(2) 頁的大小固定 且由系統決定,而 段的長度卻不固定 。
(3)分頁的作業地址空間是 一維 的,即單一的線性地址空間;而分段的作業地址空間則是 二維 的。
前面所介紹的分頁和分段存儲管理方式都各有優缺點。 分頁系統能有效地 提高內存利用率 ,而分段系統則能很好地 滿足用戶需求 。 我們希望能夠把兩者的優點結合,於是出現了段頁式存儲管理方式。
段頁式系統的基本原理,是分段和分頁原理的結合,即 先將用戶程序分成若干個段,再把每個段分成若干個頁 ,並為每一個段賦予一個段名。在段頁式系統中,地址結構由段號、段內頁號和頁內地址三部分組成。
和前兩種存儲管理方式相同,段頁式存儲管理方式同樣需要增設聯想寄存器。
離散分配方式 基於將一個進程直接分散地分配到許多不相鄰的分區中的思想,分為分頁式存儲管理,分段式存儲管理和段頁式存儲管理. 分頁式存儲管理旨在提高內存利用率,滿足系統管理的需要,分段式存儲管理則旨在滿足用戶(程序員)的需要,在實現共享和保護方面優於分頁式存儲管理,而段頁式存儲管理則是將兩者結合起來,取長補短,即具有分段系統便於實現,可共享,易於保護,可動態鏈接等優點,又能像分頁系統那樣很好的解決外部碎片的問題,以及為各個分段可離散分配內存等問題,顯然是一種比較有效的存儲管理方式。
更多Linux內核視頻教程文檔資料免費領取【 內核 】自行獲取。
內核學習網站:
Linux內核源碼/內存調優/文件系統/進程管理/設備驅動/網路協議棧-學習視頻教程-騰訊課堂
㈣ 在頁式存儲管理系統中,當訪問主存中的一條指令或數據時,需要訪問多少次主存段式存儲呢
1)頁式存儲管理中,訪問指令或數據時,首先要訪問內存中的頁表,查找到指令或數據所在頁面對應的頁表項,然後再根據頁表項查找訪問指令或數據所在的內存頁面。需要訪問內存兩次。
段式存儲管理同理,需要訪問內存兩次。
段頁式存儲管理,首先要訪問內存中的段表,然後再訪問內存中的頁表,最後訪問指令或數據所在的內存頁面。需要訪問內存三次。
對於比較復雜的情況,如多級頁表,若頁表劃分為N級,則需要訪問內存N+1次。若系統中有快表,則在快表命中時,只需要一次訪問內存即可。
㈤ 頁式存儲管理和段式存儲管理的區別
段式與頁式存儲管理的比較如下表所示。
段式
頁式
分段由用戶設計劃分,每段對應一個相應的的程序模塊,有完整的邏輯意義。
分頁用戶看不見,由操作系統為內存管理劃分。
段面是信息的邏輯單位
頁面是信息的物理單位
便於段的共享,執行時按需動態鏈接裝入。
頁一般不能共享
段長不等,可動態增長,有利於新數據增長。
頁面大小相同,位置不能動態增長。
二維地址空間:段名、段中地址;段號、段內單元號
一維地址空間
管理形式上象頁式,但概念不同
往往需要多次缺頁中斷才能把所需信息完整地調入內存
實現頁(段)的共享是指某些作業的邏輯頁號(段號)對應同一物理頁號(內存中該段的起始地址)。頁(段)的保護往往需要對共享的頁面(段)加上某種訪問許可權的限制,如不能修改等;或設置地址越界檢查,對於頁內地址(段內地址)大於頁長(段長)的存取,產生保護中斷。
㈥ 什麼是段式管理它與頁式管理有何區別
段式管理是指把一個程序分成若干個段進行存儲,每個段都是一個邏輯實體,程序員需要知道並使用它。它的產生是與程序的模塊化直接有關的。段式管理是通過段表進行的,它包括段號或段名、段起點、裝入位、段的長度等。此外還需要主存佔用區域表、主存可用區域表。
頁式管理是將各進程的虛擬空間劃分成若干個長度相等的頁,頁式管理把內頁的劃分
存空間按頁的大小劃分成片或者頁面,然後把頁式虛擬地址與內存地址建立一一對應頁表,並用相應的硬體地址變換機構,來解決離散地址變換問題。頁式管理採用請求調頁或預調頁技術實現了內外存存儲器的統一管理。
㈦ 操作系統-04-操作系統的存儲管理和設備管理
早期的計算機由於結構較為簡單,存儲容量小,並不需要過多的的存儲管理。
隨著計算機和程序越來越復雜,使得存儲管理成為必要。
單一連續分配是最簡單的內存分配方式
只能在單用戶、單進程的操作系統中使用
固定分區分配是支持多道程序的最簡單存儲分配方式
內存空間被劃分為若干固定大小的區域
每個分區只提供給一個程序使用,互不幹擾
根據進程實際需要,動態分配內存空間
不需要新建空閑鏈表節點
只需要把空閑區的容量增大為包括回收區的容量即可
將回收區和空閑區合並
新的空閑區使用原來回收區的地址
將兩個空閑區和中間的回收區合並
新的空閑區使用空閑區1的地址
為回收區創建新的空閑節點
將該節點插入到相應的空閑區鏈表中
上面的部分主要是從物理的角度講解內存管理,這部分主要是講解操作系統是怎麼管理進程的內存空間。
字塊 是相對於物理設備的定義, 頁面 是相對邏輯空間的定義。
頁式存儲管理主要是將進程邏輯空間等分成若干大小的頁面,相應的把物理內存空間分成與頁面大小的物理塊,以頁面為單位把進程空間裝進物理內存中分散的物理塊。
頁面大小應該適中,過大難以分配,過小內存碎片過多,通常是512B~8K。
頁表 記錄進程邏輯空間於物理空間的映射
在頁式存儲管理, 頁地址 = 頁號 + 頁內偏移
現代計算機系統中,可以支持非常大的邏輯 地址空間(2 32~2 64),這樣,頁表就 變得非常大,要佔用非常大的內存空間,如, 具有32位邏輯地址空間的分頁系統,規定頁 面大小為4KB,則在每個進程頁表中的頁表 項可達1M(2^20)個,如果每個頁表項佔用 1Byte,故每個進程僅僅頁表就要佔用1MB 的內存空間。
為了解決這個問題,引入了多級頁表。
多級頁表有一個根頁表,每一個字塊指向了內存中的一片空間,這塊空間存儲的是二級頁表。以此類推,最後一級頁表指向的字塊才是進程實際使用的內存。通過這種分級機制,大大減少了進程中頁表數佔用的空間。
段式存儲管理將進程邏輯空間劃分成若干段(非等分),段的長度由連續邏輯的長度決定。
例如一個程序有主函數MAIN、子程序段X、子函數Y等,這個時候會根據每一個函數的邏輯長度來分配邏輯空間。
頁表由 頁號 和 基址 組成,但在段式存儲管理中由於每一段的長度是不固定的,段表由 段號 、 基址 以及 段長 組成。
在段式存儲管理, 段地址 = 段號 + 段內偏移
分頁可以有效提高內存利用率(雖然說存在頁內碎片)
分段可以更好滿足用戶需求
兩者結合,形成段頁式存儲管理
先將邏輯空間按段式管理分成若干段,再把段內空間按頁式管理等分成若干頁。
在段頁式存儲管理中, 段頁地址 = 段號 + 段內頁號 + 頁內地址
有些進程實際需要的內存很大,超過物理內存的容量。
由於操作系統的多道程序設計,使得每個進程可用物理內存更加稀缺。
不可能無限增加物理內存,物理內存總有不夠的時候,於是便有了虛擬內存的概念。
虛擬內存是操作系統內存管理的關鍵技術,使得多道程序運行和大程序運行成為現實,她通過將進程所使用的內存進行劃分,將部分暫時不使用的內存放置在輔存。
根據局部性原理,程序運行時,無需全部裝入內存,裝載部分即可。如果訪問頁不在內存,則發出缺頁中斷,發起頁面置換。
從用戶層面看,程序擁有很大的空間,即是虛擬內存。
虛擬內存實際是對物理內存的補充,速度接近於內存,成本接近於輔存。
置換演算法一般有先進先出演算法(FIFO)、最不經常使用演算法(LFU)、最近最少使用演算法(LRU)。
從計算機組成原理篇章中,我們可以知道,CPU的高速緩存沒有數據時,需要從主存中載入數據。此時若主存中也沒有數據,則需要從輔存中載入頁面數據。
內存替換策略發生在Cache-主存層次、主存-輔存層次。Cache-主存層次的替換策略主要是為了解決 速度問題 ,
主存-輔存層次則。主要是為了解決 容量問題 。
順序文件是指按順序存放在存儲介質中的文件,例如磁帶的存儲特性使得磁帶文件只能存儲順序文件。
順序文件是所有邏輯文件當中存儲效率最高的。
可變長文件不適合使用順序文件格式存儲,索引文件是為了解決可變長文件存儲而發明的一種文件格式,索引文件需要配合索引表完成存儲的操作。
目錄的層級結構是樹狀的,成為目錄樹。
目錄樹中任何文件或目錄都只有唯一路徑。
對CPU而言,凡是對CPU進行數據輸入的都是輸入設備,凡是CPU進行數據輸出的都是輸出設備。
緩沖區主要是解決CPU與IO設備的速率不匹配的問題,減少CPU處理IO請求的頻率,提高CPU與IO設備之間的並行性。
專用緩沖區只適用於特定的IO進程,當這樣的IO進程比較多時,對內存的消耗也很大,所以操作系統劃出可供多個進程使用的公共緩沖區,稱之為緩沖池。
SPOOLing技術是關於慢速字元設備如何與計算機主機交換信息的一種技術,利用高速共享設備將低速的獨享設備模擬為高速的共享設備,邏輯上,系統為每一個用戶都分配了一台獨立的高速獨享設備,是一種虛擬設備技術。
SPOOLing技術把同步調用低速設備改為非同步調用。在輸入、輸出之間增加了排隊轉儲環節(輸入井、輸出井),SPOOLing負責輸入(出)井與低速設備之間的調度,邏輯上,進程直接與高速設備交互,減少了進程的等待時間。
㈧ 段頁式存儲管理方式
段頁式存儲管理方式即先將用戶程序分成若干個段,再把每個段分成若干個頁,並為每一個段賦予一個段名。
該作業有三個段,頁面大小為4 KB。在段頁式系統中,其地址結構由段號、段內頁號及頁內地址三部分所組成,如下圖所示。在段頁式系統中,為了便於實現地址變換,須配置一個段表寄存器,其中存放段表始址和段表長TL。
進行地址變換時,首先利用段號S,將它與段表長TL進行比較。若S<TL,表示未越界,於是利用段表始址和段號來求出該段所對應的段表項在段表中的位置,從中得到該段的頁表始址,並利用邏輯地址中的段內頁號P來獲得對應頁的頁表項位置。
從中讀弊州鬧出該頁所在的物理塊號b,再利用塊號b和頁內地址來構成物理地址。右圖示出了段頁式系統中的地址變換機構。在段頁式系統中,為了獲得一條指令或數據,須三次訪問內存。第一次跡沒訪問是訪問內存中的段表,從中取得頁表始址。
第二次訪問是訪問內存中的頁表,從中取出該頁所在的物理塊號,並將該塊號與頁內地址一起形成指令或數據的物理地址;第三次訪問才是真正從第二次訪問所得的地址中,取出指令或數據。顯然,這使訪問內存的次數增加了近兩倍。
為了提高執行速度,在地址變換機構中增設一個高速緩沖寄存器。每次訪問它時,都須同時租罩利用段號和頁號去檢索高速緩存,若找到匹配的表項,便可從中得到相應頁的物理塊號,用來與頁內地址一起形成物理地址;若未找到匹配表項,則仍須再三次訪問內存。
存儲管理
存儲器管理的對象是主存,也稱內存。它的主要功能包括分配和回收主存空間、提高主存利用率、擴充主存、對主存信息實現有效保護。
㈨ 頁式存儲管理和段式存儲管理的區別是什麼
內存管理主要包括內存分配和回收、地址變換、內存擴充、內存共享和保護等功能。
下面主要介紹連續分配存儲管理、覆蓋與交換技術以及頁式與段式存儲管理等基本概念和原理。
1.連續分配存儲管理方式
連續分配是指為一個用戶程序分配連續的內存空間。連續分配有單一連續存儲管理和分區式儲管理兩種方式。
(1)單一連續存儲管理
在這種管理方式 中,內存被分為兩個區域:系統區和用戶區。應用程序裝入到用戶區,可使用用戶區全部空間。其特點是,最簡單,適用於單用戶、單任務的操作系統。CP/M和 DOS 2.0以下就是採用此種方式。這種方式的最
㈩ 頁式存儲管理和段式存儲管理的區別是什麼
分頁是用來從虛擬內存到物理內存映射的,每頁是最小的內存管理單元。
分段這個是用來區別代碼,數據之類的,舉例來講代碼段、數據段,比如因為代碼和數據可以用不同的緩存策略,還有多盯爛族進程可以共享歷宏代碼段,但是數據不同,凱弊所以分開來管理。