當前位置:首頁 » 密碼管理 » 頁表訪問磁碟

頁表訪問磁碟

發布時間: 2022-05-10 00:27:11

『壹』 虛擬內存的調度介紹

1、頁式虛存地址映射頁式虛擬存儲系統中,虛地址空間被分成等長大小的頁,稱為邏輯頁;主存空間也被分成同樣大小的頁,稱為物理頁。相應地,虛地址分為兩個欄位:高欄位為邏輯頁號,低欄位為頁內地址(偏移量);實存地址也分兩個欄位:高欄位為物理頁號,低欄位為頁內地址。通過頁表可以把虛地址(邏輯地址)轉換成物理地址。
在大多數系統中,每個進程對應一個頁表。頁表中對應每一個虛存頁面有一個表項,表項的內容包含該虛存頁面所在的主存頁面的地址(物理頁號),以及指示該邏輯頁是否已調入主存的有效位。地址變換時,用邏輯頁號作為頁表內的偏移地址索引頁表(將虛頁號看作頁表數組下標)並找到相應物理頁號,用物理頁號作為實存地址的高欄位,再與虛地址的頁內偏移量拼接,就構成完整的物理地址。現代的中央處理機通常有專門的硬體支持地址變換。
2、轉換後援緩沖器由於頁表通常在主存中,因而即使邏輯頁已經在主存中,也至少要訪問兩次物理存儲器才能實現一次訪存,這將使虛擬存儲器的存取時間加倍。為了避免對主存訪問次數的增多,可以對頁表本身實行二級緩存,把頁表中的最活躍的部分存放在高速存儲器中,組成快表。這個專用於頁表緩存的高速存儲部件通常稱為轉換後援緩沖器(TLB)。保存在主存中的完整頁表則稱為慢表。
3、內頁表是虛地址到主存物理地址的變換表,通常稱為內頁表。與內頁表對應的還有外頁表,用於虛地址與輔存地址之間的變換。當主存缺頁時,調頁操作首先要定位輔存,而外頁表的結構與輔存的定址機制密切相關。例如對磁碟而言,輔存地址包括磁碟機號、磁頭號、磁軌號和扇區號等。 段是按照程序的自然分界劃分的長度可以動態改變的區域。通常,程序員把子程序、操作數和常數等不同類型的數據劃分到不同的段中,並且每個程序可以有多個相同類型的段。在段式虛擬存儲系統中,虛地址由段號和段內地址(偏移量)組成。虛地址到實主存地址的變換通過段表實現。每個程序設置一個段表,段表的每一個表項對應一個段。每個表項至少包含下面三個欄位:
(1)有效位:指明該段是否已經調入實存。
(2)段起址:指明在該段已經調入實存的情況下,該段在實存中的首地址。
(3)段長:記錄該段的實際長度。設置段長欄位的目的是為了保證訪問某段的地址空間時,段內地址不會超出該段長度導致地址越界而破壞其他段。段表本身也是一個段,可以存在輔存中,但一般駐留在主存中。
段式虛擬存儲器有許多優點:
①段的邏輯獨立性使其易於編譯、管理、修改和保護,也便於多道程序共享。②段長可以根據需要動態改變,允許自由調度,以便有效利用主存空間。段式虛擬存儲器也有一些缺點:
①因為段的長度不固定,主存空間分配比較麻煩。②容易在段間留下許多外碎片,造成存儲空間利用率降低。
③由於段長不一定是2的整數次冪,因而不能簡單地像分頁方式那樣用虛地址和實地址的最低若干二進制位作為段內偏移量,並與段號進行直接拼接,必須用加法操作通過段起址與段內偏移量的求和運算求得物理地址。因此,段式存儲管理比頁式存儲管理方式需要更多的硬體支持。 段頁式虛擬存儲器是段式虛擬存儲器和頁式虛擬存儲器的結合。實存被等分成頁。每個程序則先按邏輯結構分段,每段再按照實存的頁大小分頁,程序按頁進行調入和調出操作,但可按段進行編程、保護和共享。它把程序按邏輯單位分段以後,再把每段分成固定大小的頁。程序對主存的調入調出是按頁面進行的,但它又可以按段實現共享和保護,兼備頁式和段式的優點。缺點是在映象過程中需要多次查表。在段頁式虛擬存儲系統中,每道程序是通過一個段表和一組頁表來進行定位的。段表中的每個表目對應一個段,每個表目有一個指向該段的頁表起始地址及該段的控制保護信息。由頁表指明該段各頁在主存中的位置以及是否已裝入、已修改等狀態信息。如果有多個用戶在機器上運行,多道程序的每一道需要一個基號,由它指明該道程序的段表起始地址。虛擬地址格式如下: 基號 段號 頁號 頁內地址

『貳』 頁式虛擬存儲系統的有效訪問時間怎麼計算

缺頁時進行的操作有三項,首先將所缺頁從磁碟傳入主存(20ms),其次訪問主存讀入所缺頁(1微秒),最後更新
快表
(這里相當於訪問主存的時間,1微秒),所以這里應該有2個1微秒,答案的第二項是不是應該是20%*90%*1微秒*2?

『叄』 為什麼linux kernel默認的頁面大小是4K,而不是4M或8M

太多了,我就做一次搬運工了。

相信很多人在看內核內存管理部分的時候,都有這樣一個疑問,為什麼物理頁面的大小選擇4K,而不是大一些或者小一些呢?

這個問題沒有固定的答案,仁者見仁智者見智,每個人的關注點不一樣。所以這篇文章不是說給出一個固定的答案,更多的只是一篇討論性的文章。

內核的頁面大小首先跟CPU有關,不同的架構支持的頁面大小也不相同,但有一個共同點,那就是肯定支持4K的頁面大小。為什麼處理器在設計
的時候會選擇4K,而不是其他,這個只有熟悉CPU歷史的人才能給出答案,本人才疏學淺,回答不上來,有興趣的自己找一找。當然處理器的設計者在考慮頁面
大小的時候,也不是憑空就選擇了這個大小,除了歷史因素,肯定綜合了考慮了大頁面、小頁面的優缺點,所以這里主要列出這些優缺點,通過這些比較來發現內核
為什麼將默認的頁面大小選擇為4K。

現在更多爭論的是大頁面還是維持現在的頁面4K大小,所以小頁面的情況我們就不考慮了,通過比較前兩者也可以得出小頁面的情況。支持大頁面的人通常認為大頁面有以下好處:

1、減小page table佔用的內存。

假設內存一定的話,頁面大小越大,管理頁面佔用的內存也越小。現在內核中每個頁面假設是4K的話,這4K不是全都可用,還有一部分用作
struct
page(大約是64bytes),如果是2.6.32的話,每個頁還有一個page_cgroup(32bytes),也就是說內存大小的2.3%
(96/4096)會被內核固定使用。如果頁面大小是4M的話,這個比率大約是0.0006%。假設內存時64G的話,頁面大小是4K,管理頁佔用的內存
為1.472G,而頁面大小是4M,管理頁面佔用的內存為0.393M。所以頁面比較大時,節省的內存比較多。

2、提高TLB的命中率

每次訪問內存的時候,都要將虛擬地址轉換為物理地址,如果每次都訪問頁表的話,消耗比較大。因此,通常使用TLB來加速這個過程。但是
TLB的可以直接轉換的地址范圍是有限的(具體就是項數乘以頁面大小),一旦出現TLB
miss,這時就必須去頁表中查找。所以,如果是大頁面的話,同樣TLB項數的情況下,可以跟蹤更大的內存。

3、提高磁碟I/O

我們知道在訪問磁碟時,最耗時的操作就是查找寫入盤區的起始位置,也就是在磁碟碟片上將讀寫頭置於正確的位置上。所以如果是大頁面的話,可以減少寫入磁碟的次數。比如要寫入4M的緩存,頁面大小是4M的話,只需寫入1次,而頁面大小是4K的話,則需要寫入4次。

4、提供緩存利用率

如果是大頁面的話,可以減少訪問夥伴系統的次數。調用夥伴系統的操作隊系統的數據和指令高速緩存有相當的影響。內核越浪費這些資源,這些資源對用戶空間進程就越不可用。

除了上面提高的好處,肯定還有的好處,就不一一列舉了。那既然有這么好處,而且現在內存越來越大,為什麼不更多地採用大頁面呢?比如4M?

軟體開發中,從來不會有非常完美的方案,都是在優缺點之間找到平衡點。同樣,大頁面有這樣那樣的好處,缺點也很明顯。

1、最大的問題就是內存浪費,而且這個問題非常嚴重。比如這時要分配的內存是4M+1byte,這時需要兩個頁面才能滿足分配的需要,這個
時候浪費的內存為4M-1byte。如果頁面是4K的話,浪費的內存數量為4k-1byte。頁面太大,可能導致每個頁面都只使用了部分空間,剩餘的空間
就被浪費了。當然對於資料庫這樣的系統來說,頁面越大會越好,但是內核要考慮到通用的情況,而不是專注於特殊的應用場景。再比如,現在系統都是只分配虛擬
地址空間,虛擬地址空間只有在真正被訪問的時候,才映射物理頁面,而且為了減少物理頁面的浪費,對不訪問的部分,則不作映射。如果頁面太大,在映射很小的
部分時,分配的內存會越大,浪費也就越大。系統在運行時,會頻繁地請求內存頁的操作,這樣導致潛在的浪費會非常嚴重。這樣的浪費會完全抵消減小page
table的優勢。

2、頁面太大,會導致大量的內存碎片。因為底層的內存管理是以頁面為單位。如果系統運行了很長時間,空閑的內存很多,但是連續的內存塊都小
於要分配的頁面數。這時可以通過移動內存塊或者利用swap來獲取可用內存,但是會導致分配內存的操作很慢,這種慢會形成惡性循環,嚴重影響系統的性能。
如果是小頁面的話,內存的利用會比較緊湊,分配頁面時需要的連續內存塊的大小不像大頁面那樣需要的那麼大。

3、如果CPU崩潰,TLB可以訪問的內存越大,對系統的影響也越大。這時一把雙刃劍,大頁面可以提供TLB訪問的內存數量,但是CPU崩潰時,會導致很多內存訪問要去頁表中請求物理地址。

4、兼容性問題。X86處理器支持的頁面大小隻有4K,所以如果頁面過大的話,會導致兼容性問題。

5、如果頁面太大,在將內存頁換出到swap分區時,需要換出的內存也就越大,會影響性能。

總之,這個頁面大小4K是在計算機發展過程中選擇的,也是在實踐中經過檢驗的,現在看來這個頁面是合適的。

『肆』 一個分頁表系統,頁表存放在內存,如果一次內存的訪問時間是200ns,引入快表,並且75%的頁表引用發生在快

75%×200+25%×200×2=250ns(因為需要先查頁表判斷內存具體地址再訪問,隨意需要訪問兩次)。磁碟設備在工作時以恆定速率旋轉。為了讀或寫,磁頭必須能移動到所要求的磁軌上,並等待所要求的扇區的開始位置旋轉到磁頭下,然後再開始讀或寫數據。

具體講,從一次讀操作命令發出到該指令完成,將數據讀入數據緩沖寄存器為止所經歷的時間,存儲訪問時間略小於存儲周期。存儲訪問時間和存儲周期反映了主存速度的指標。

(4)頁表訪問磁碟擴展閱讀:

磁碟存儲訪問時間:

磁碟設備在工作時以恆定速率旋轉。為了讀或寫,磁頭必須能移動到所要求的磁軌上,並等待所要求的扇區的開始位置旋轉到磁頭下,然後再開始讀或寫數據。故可把對磁碟的訪問時間分成以下三部分。

存儲周期,是指對存儲器進行連續兩次存取操作所需要的最小時間間隔。由於有些存儲器在一次存取操作後需要一定的恢復時間,所以通常存取周期大於或等於取數時間。讀寫周期一般與存儲器的類型有關,在一定程度上體現存儲器的速度。

『伍』 頁表放是在內存上還是磁碟上,為什麼

你說的頁表指的是什麼,如果是一般文件,在沒保存之前是放在內存上,保存之後則在磁碟,因為沒保存的時候是臨時文件

『陸』 頁表存放在內存還是磁碟上

頁表有單級和多級之分。

單級頁表:OS給進程所分配的內存空間並不大的話,就只需要幾張頁表,這樣也沒有占據很多的內存空間,所以這個時候頁表是全部在內存的。

多級頁表:給進程分配的內存空間很大的話,對應頁表也很大。於是就要建立多級頁表,把高層頁表(相對級別比較高的)放在內存,靠這個高層頁表找底層頁表,再在底層頁表裡找到對應的實頁號。部分底層頁表在內存,另外的一些就被塞在磁碟,被高層頁表點名之後,才調入內存。

作用

實現從頁號到物理塊號的地址映射。

邏輯地址轉換成物理地址的過程是:用頁號p去檢索頁表,從頁表中得到該頁的物理塊號,把它裝入物理地址寄存器中。同時,將頁內地址d直接送入物理地址寄存器的塊內地址欄位中。這樣,物理地址寄存器中的內容就是由二者拼接成的實際訪問內存的地址,從而完成了從邏輯地址到物理地址的轉換。

以上內容參考:網路-頁表

『柒』 在操作系統的頁表問題中提到了某個頁面不在內存時,用於保存該頁面的磁碟地址不是頁表的一部分

地址變換的整個過程大概是這樣的。
首先拿到一個邏輯地址,然後拿這個邏輯地址的虛擬頁號,到頁表上去進行比對(沒有TLB)的情況。如果比對存在,說明這個塊已經被調入內存了,如果不在,則會產生缺頁中斷,缺頁中斷就會啟動I/O,然後去外存調塊。

『捌』 段式虛擬內存情形,假設訪問的段在內存中,怎樣進行地址轉換 頁表項包括哪些內容 求詳解 高分懸賞 速

頁表項包括哪些內容?

邏輯頁號,頁架號,外存塊號,訪問許可權,內外標志,修改標志

頁表虛擬內存管理情形,什麼是TLB?

TLB:Translationlookasidebuffer,即旁路轉換緩沖,或稱為頁表緩沖;裡面存放的是一些頁表文件(虛擬地址到物理地址的轉換表)。

X86保護模式下的定址方式:段式邏輯地址—〉線形地址—〉頁式地址;

頁式地址=頁面起始地址+頁內偏移地址;

對應於虛擬地址:叫page(頁面);對應於物理地址:叫frame(頁框);

X86體系的系統內存里存放了兩級頁表,第一級頁表稱為頁目錄,第二級稱為頁表。

TLB和CPU里的一級、二級緩存之間不存在本質的區別,只不過前者緩存頁表數據,而後兩個緩存實際數據。

在設備和I/O管理中,什麼叫緩沖,緩沖與高速緩沖有何區別

利用存儲區緩解數據到達速度與離去速度不一致而採用的技術稱為緩沖,此時同一數據只包含一個拷貝。例如,操作系統以緩沖方式實現設備的輸入和輸出操作主要是緩解處理機與設備之間速度不匹配的矛盾,從而提高資源利用率和系統效率。緩存是為提高數據訪問速度而將部分數據由慢速設備預取到快速設備上的技術,此時同一數據存在多個拷貝。例如,遠程文件的一部分被取到本地。當然,在有些情況下,緩沖同時具有緩存的作用。例如UNIX系統對於塊型設備的緩沖區,在使用時可保持與磁碟塊之間的對應關系,既有緩沖的作用也有緩存的作用,通過預先讀與延遲寫技術,進一步提高了I/O效率

『玖』 在請求分頁系統中,頁表中的訪問位是供( )參考的。

答案選擇 A!
頁表項(頁描述子)中各個位的作用:
1. 頁號
2. 塊號(頁框號)
3. 中斷位: 用於判斷該頁是不是在內存中,如果是0,表示該頁面不在內存中,會引起一個缺頁中斷
4. 保護位(存取控制位):用於指出該頁允許什麼類型的訪問,如果用一位來標識的話:1表示只讀,0表示讀寫
5. 修改位(臟位):用於頁面的換出,如果某個頁面被修改過(即為臟),在淘汰該頁時,必須將其寫回磁碟,反之,可以直接丟棄該頁
6. 訪問位:不論是讀還是寫(get or set),系統都會設置該頁的訪問位,它的值用來幫助操作系統在發生缺頁中斷時選擇要被淘汰的頁,即用於頁面置換
7. 高速緩存禁止位(輔存地址位):對於那些映射到設備寄存器而不是常規內存的頁面有用,假設操作系統正在循環等待某個I/O設備對其指令進行響應,保證硬體不斷的從設備中讀取數據而不是訪問一個舊的高速緩存中的副本是非常重要的。即用於頁面調入。

熱點內容
esr演算法 發布:2025-05-17 08:16:09 瀏覽:194
安卓手機怎麼用擬我表情 發布:2025-05-17 08:10:13 瀏覽:918
給U盤安裝kalilinux 發布:2025-05-17 08:07:26 瀏覽:249
sql提示存儲過程 發布:2025-05-17 07:35:58 瀏覽:743
qq里的互動訪問 發布:2025-05-17 07:26:53 瀏覽:665
口語易賬號密碼發送到哪裡 發布:2025-05-17 07:26:52 瀏覽:62
核桃編程幼兒 發布:2025-05-17 07:26:50 瀏覽:787
2台伺服器集群搭建 發布:2025-05-17 07:18:57 瀏覽:185
北方園林配置植物有哪些 發布:2025-05-17 07:18:20 瀏覽:544
數控加工零件圖及編程 發布:2025-05-17 07:18:11 瀏覽:730