當前位置:首頁 » 存儲配置 » 指令虛擬存儲

指令虛擬存儲

發布時間: 2022-12-06 03:10:53

❶ 電子計算機中的虛擬內存器的作用是什麼

一般來說,任何一個程序都要調入內存才能執行。為了能夠運行更大的程序,為了同時運行多道程序,就需要配置較大的內存,或對已有的機器擴大內存。隨著存儲器晶元集成度的不斷提高和價格的下降,今天PC機的內存容量不但超過了前些年大型機的內存容量,而且還超過了一些小型機的外存容量。例如,當前PC機的內存配置已在百兆數量級上。當然,內存的擴充總歸有限,有沒有可能讓較小的內存運行更大的程序呢?目前廣泛採用的「虛擬存儲技術」可以通過軟體方法,將主存和一部分外存空間構成一個整體,為用戶提供一個比實際物理存儲器大得多的存儲器,這稱之為「虛擬存儲器」。
虛擬存儲器的原理同樣是基於這樣一個現實:即程序的運行在一段時間內不會涉及它的全部指令,而僅僅是局限在一段程序代碼之內。當一個程序需要執行時,只要將其調入虛擬存儲器就可以了,而不必全部調入內存。程序進人虛擬存儲器後,就完全由操作系統進行管理和調度。系統會根據一定的演算法,將實際執行到的那段程序代碼調入物理內存(稱為頁進)。若內存已滿,系統會將目前暫不執行的代碼送回到作為虛擬存儲器的外存區域(稱為頁出),
再將當前要執行的代碼調入內存。這樣,操作系統會通過頁進、頁出,保證要執行的程序段都在內存。而一次頁進就可以解決若干條指令的執行。
虛擬存儲器技術有效地解決了物理存儲器不足的問題。但是,程序執行過程中的頁進、頁出實際上是內外存的交換,而訪問外存的時間比訪問內存要慢得多。也就是說,從用戶的使用角度講,虛擬存儲器如同物理存儲器的作用,但比物理存儲器要慢一些。虛擬存儲器技術實際上是用時間換取了空間。

❷ 計算機組成原理——虛擬存儲器

(1)程序員在比實際主存大得多的邏輯地址空間中編寫程序

(2)程序執行時,把當前需要的程序段和數據塊掉入主存,其他暫不使用的放在磁碟上

(3)執行指令時,通過硬體將邏輯地址轉化為物理地址。虛擬地址高位為虛頁號,低位為頁內偏移地址

(4)當程序發生數據訪問或程序訪問失效(缺頁時),由操作系統把信息從磁碟調入主存中

    (1)基本思想:

        內存被分成固定長度且長度較小的存儲塊(頁框,實頁,物理頁)

        每個進程也被劃分為固定長度的程序塊(頁,虛頁,邏輯頁)

        通過頁表,實現邏輯地址想物理地址的轉化

    (2)邏輯地址

        程序中指令所使用的地址(進程所在地址空間)

    (3)物理地址

        存放指令或數據的實際內存地址

(1)與「cache-主存」層次相比,頁大小遠比cache的行大小要大(windows中的頁位4k)

(2)採用全相聯映射方式:磁碟中的任意一個頁能用射到內存中的任意一個頁

    因為缺頁導致中斷時,操作系統從磁碟拿數據通常要耗費幾百萬個時鍾周期。增大頁大小,可以減少缺頁中斷

(3)為什麼讓軟體處理「缺頁」

    因為訪問磁碟需要好粉幾百萬個時鍾周期,硬體即使能立刻把地址打給磁碟,磁碟也不能立即響應

(4)為什麼地址轉換用硬體實現

    硬體實現地址轉換可以加快指令的執行速度

(5)為什麼頁寫會策略採用write back

    避免頻繁的慢速磁碟訪問

頁表的首地址放在基址寄存器。採用基址定址方式

每個頁表項前面有一個虛頁號:從0開始遞增的序號。頁表項又分為幾個結構:

(1)裝入位:該頁是否在內存中

(2)修改位:該也在內存中是否被修改

(3)替換控制位:用於clock演算法

(4)其他

(5)實頁號(8進制)

(1)一次磁碟引用需要訪問幾次主存?2次,一次查頁表,一次查物理地址。於是,把經常查的頁表放到cache中。這種在cache頁表項組成的頁表稱為TLB(Translation Lookside Buffer)

(2)TLB的頁表結構:tag + 主存中的頁表項

當採用全相連映射時,tag為頁表項前面的虛頁號。需要把tag和虛頁號一一比較

當採用組相聯映射時,tag被分為tag+index,虛頁號的高位為tag,虛頁號的低位為index,做組內索引(屬於組內第幾行)

    1.段式存儲是根據程序邏輯,給程序分段。使得每段大小不同。這種虛擬地址劃分方法適合程序設計

    2.段式存儲的虛擬地址由段號和段內偏移地址組成。段式虛擬存儲器到物理地址的映射通過段表實現

    3.段式虛擬存儲會造成空頁

    1.段頁式虛擬存儲,先把程序按照邏輯分成段,再把每段分成固定大小的頁。

    2.程序對主存的調入調出是按照頁面進行的;但他有可以根據段實現共享和保護

    3.缺點是段頁式虛擬地址轉換成物理地址需要查詢2個表:段表和頁表。段表找到相應頁表的位置,頁表找到想也頁的位置

    4.段頁式細膩地址的結構可以為以下形式:

            程序地址: 用戶號(進程pid) | 段號 | 頁號 | 頁內偏移地址

(1)某計算機的cache塊工16塊,採用二路組相聯映射方式,每個主存塊大小為32位元組,按照位元組編制。則主存129號單元的主存塊硬裝如刀cache的組號是:(C)A、0      B、2      C、4      D、6

解:二路組相聯,所以每組2塊,共有16/2=8組,所以組號佔3位。

      每塊32位元組,所以塊內地址佔5位。

      129轉化為二進制:1000 0001:前3位為組號,100:=4

(2)假設用若干個2K4位的晶元組成一個8K8位的存儲器,則地址0B1FH所在晶元的最小地址為:

解:用2片組成一行,共4行,所以片選地址佔2位。片內地址有2k=211,所以佔11位

      0B1FH:000|0 1|011 0001 1111 這三段為前綴,片選地址,片內地址。

      該片晶元的最小地址是片內地址全0:000|0 1|000 0000 0000 = 0800H

(3)某計算機的主存地址空間大小為256MB,按位元組編址,指令cache和數據cache分離,均有8個cache行,每行大小為64B,數據cache採用直接映射方式,現有兩個程序A,B對數組int a[256][256]進行遍歷,程序A按行遍歷,程序B按列遍歷。假定int類型數據用32位補碼表示,數組a按行優先方式存儲,其地址為320(十進制)。

問:(1) 若不考慮cache一致性維護和替換演算法所需的控制位,則數據cache的總容量佔多少?

      (2) 數組元素a[0][31]和a[1][1]各自所在主存塊對應的cache行號分別為多少(cache從0行開始)?

      (3)程序A和B的數據訪問命中率各自為多少?哪個程序的執行時間更短?

解:(1) 因為cache的總容量是cache每行的數據存儲大小+tag位+數據是否有效位+其他一致性控制位。

          主存地址空間256MB,佔28位。直接映射方式,8行,行號佔3位。每行64B,所以塊內地址佔6位,因此,tag佔28-3-6=19位

          每行有一個數據有效位。因此,cache共(19+1+648)8 = 532位元組

      (2) 因為int類型佔32位,所以一個int佔4B。a[0][31] = 320 + 314 = 444 a1 = 320 + 4(256+1) = 1348。

          塊內地址佔6位,直接映射下行號佔3位,因此444 = 110 | 111100,所以行號為6

          1348 = 10 | 101 | 000100,所以行號為5

      (3) 因為1行cache佔64B,每個int數佔4B,所以一行有16個數。第一個數會因cache缺失而不命中,然後調入cache。,使得後面的15個int訪問全部命中。所以命中率為1516 對於程序B,每次調入16個數,小於數組每行的128個元素,因此每次都不會命中,命中率為0

❸ 電腦虛擬內存怎麼設置

1、按下鍵盤上的windows鍵+R鍵打開運行欄。在運行欄輸入:CMD後按下確認鍵進入命令提示符。

❹ 內存擴充之虛擬存儲技術

傳統存儲管理

特徵

時間局部性:如果執行了程序中的某條指令,那麼不久後這條指令很有可能再次執行;如果某個數據被訪問過,不久之後該數據很可能再次被訪問(因為程序中存在大量循環)
空間局部性:一旦程序訪問了某個存儲單元,在不久之後,其附近的存儲單元很有可能被訪問(因為很多數據在內存中是連續存放的,並且程序的指令也是順序地在內存中存放的

寄存器
高速緩存
內存
外存(如磁碟、磁帶等)

越往上容量越小,訪問速度越快,成本越高
越往下容量越大,訪問速度越慢,成本越低

高速緩存技術的思想:將近期會頻繁訪問到的數據放到更高速的存儲器中,暫時用不到的數據放在更低速存儲器中
快表機構就是將近期常訪問的頁表項副本放到更高速的cache中

基於局部性原理,在程序裝入時,可以將程序中很快就會用到的部分裝入內存,暫時用不到的部分留在外存,就可以讓程序開始執行
在程序執行過程中,當所訪問的信息不在內存時,由操作系統負責將所需信息從外存調入內存,然後繼續執行程序
若內存空間不夠,由操作系統將內存中暫時用不到的信息換出到外存

因此,在操作系統的管理下,在用戶看來似乎有一個比實際內存大得多的內存,這就是虛擬內存
操作系統虛擬性的一個體現,實際的物理內存大小沒有變,只是在邏輯上進行了擴充

虛擬內存的最大容量是由計算機的地址結構(CPU定址范圍)確定的
虛擬內存的實際容量 = min(內存外存容量之和,CPU定址范圍)

虛擬內存有以下三個主要特徵

虛擬內存技術,允許一個作業多次調入內存。如果採用連續分配方式,會不方便實現。因此,虛擬內存的實現需要建立在離散分配的內存管理方式基礎上

傳統的非連續分配存儲管理
基本分頁存儲管理
基本分段存儲管理
基本段頁式存儲管理

虛擬內存的實現
請求分頁存儲管理
請求分段存儲管理
請求段頁式存儲管理

主要區別:在程序執行過程中,當所訪問的信息不在內存時,由操作系統負責將所需信息從外存調入內存,然後繼續執行程序。若內存空間不夠,由操作系統負責將內存中暫時用不到的信息換出到外存
操作系統要提供請求調頁/段功能、頁面/段置換功能

請求分頁存儲管理和基本分頁存儲管理的主要區別

頁表機制
頁表項:內存塊號、狀態位、訪問欄位、修改位、外存地址,頁號時隱含的
內存塊號是頁面在內存中對應的頁框號,如果狀態位為0,則內存塊號為無
狀態位表示是否已被調入內存
訪問欄位記錄最近被訪問過幾次,或者上次訪問時間,由此操作系統能夠提供置換演算法
修改位記錄頁面被調入內存後是否被修改過,如果沒有,就不需要浪費時間寫回外存
外存地址是頁面在外存中的存放位置

缺頁中斷機構
在請求分頁系統中,每當要訪問的頁面不在內存時,便會產生一個缺頁中斷,然後由操作系統的缺頁中斷處理程序處理中斷(內中斷)
此時缺頁的進程阻塞,放入阻塞隊列,調頁完成後再將其喚醒,放回就緒隊列
如果內存中有空閑塊,則為進程分配一個空閑塊,將所缺頁面裝入該塊,並修改頁表中相應的頁表項
如果內存中沒有空閑塊,則由頁面置換演算法選擇一個頁面淘汰,若該頁面在內存期間被修改過,則要將其寫回外存,為修改過的頁面不用寫回外存
一條指令再執行期間可能產生多次缺頁中斷( A to B)

新增的步驟

頁面的換入、換出需要磁碟IO,會有較大的開銷,因此好的頁面置換演算法應該追求更少的缺頁率

缺頁中斷≠頁面置換
發生缺頁中斷會發生調頁,只有內存塊滿了才發生頁面置換

最佳置換演算法OPT:每次淘汰以後永不使用或最長時間內不再被訪問的頁面
理想化的演算法,很難實現

先進先出演算法FIFO:每次淘汰最先進入內存的頁面
實現:把調入內存的頁面根據調入的先後順序排成隊列,頁面置換時換出隊頭頁面,新調入的頁面排到隊尾
優點:實現簡單
缺點1:belady異常,為進程分配的物理塊數增大時,缺頁次數不減反增的異常現象。只有FIFO會產生belady異常。
缺點2:演算法與進程實際運行時的規律不適應,因為先調入的頁面有可能最經常被訪問,因此演算法性能差

最近最久未使用置換演算法LRU:淘汰最近最久未使用的頁面
實現方法:賦予每個頁面對應的頁表項中,用訪問欄位記錄該頁面自上次被訪問以來所經歷的時間t
優點:性能最接近OPT
缺點:實現困難、開銷大

時鍾置換演算法CLOCK/NRU

簡單NRU:為每一個頁表項設置一個訪問位,再將內存中的頁面都通過連接指針連成一個循環隊列,當某頁被訪問時,訪問位為1,只需檢查頁的訪問位。如果為0,就將該頁換出,否則將其改為0,暫不換出,繼續向後掃描,若第一輪掃描都是1,將這也頁面的訪問位改為0後,進行第二輪掃描,第二輪掃描中一定會有訪問位為0的頁面,將其換出。因此最多經過兩輪掃描

改進NRU:如果淘汰的頁面沒有被修改過,就不需要執行IO操作,只有淘汰的頁面被修改過時,才需要寫回外存。因此,同時考慮最近有無訪問和有無修改,在其他條件相同時,優先淘汰沒有修改過的頁面,避免IO操作
第一輪:找到第一個訪問位和修改位都為0的頁面進行替換,如果沒有找到進行下一輪掃描
第二輪:查找第一個訪問位為0,修改位為1的頁面進行替換,本輪將所有被掃描過的訪問位設置為0,如果沒有進行下一輪掃描
第三輪:查找0,0替換否則下一輪
第四輪:查找0,1替換
最多會進行四輪掃描

駐留集:請求分頁管理中給進程分配的物理塊的集合
在採用了虛擬存儲技術的系統中,駐留集大小一般小於進程的總大小
駐留集太小,導致缺頁頻繁,系統要花大量時間處理缺頁,實際用於進程推進的時間很少
駐留集太大,會導致多道程序並發度下降,資源利用率降低

固定分配:操作系統為每個進程分配一組固定數目的物理塊,在進程運行期間不再改變
可變分配:先為每個進程分配一定數目的物理塊,在進程運行期間,可根據情況作適當的增加或減少

局部置換:發生缺頁時只能選進程自己的物理地址塊進行置換
全局置換:可以將操作系統保留的空閑物理塊分配給缺頁進程,也可以將別的進程持有的物理塊置換到外存,再分配給缺頁進程

不存在固定分配全局置換的策略,因為全局置換意味著一個進程擁有的物理塊數量必然改變
其他三種組合存在

固定分配局部置換:系統為每個進程分配一定數量的物理塊,在整個運行期間都不改變。若進程在運行中發生缺頁,並且需要進行頁面置換,則只能從該進程在內存中的頁面中選出一頁換出,然後再調入需要的頁面
缺點:很難在剛開始就確定應為每個進程分配多少個物理地址塊才算合理(採用這種策略的系統可以根據進程大小、優先順序、或是根據程序員給出的參數來確定為一個進程分配的內存塊數

可變分配全局置換:剛開始會為進程分配一定數量的物理塊。操作系統會保持一個空閑物理塊隊列,當某進程發生缺頁時,從空閑物理塊中取出一塊分給該進程;若無空閑物理塊,則選擇一個未鎖定的頁面換出到外存,再將該物理塊分配給缺頁的進程。採用這種策略時,只要某進程發生缺頁,都將獲得新的物理塊,僅當空閑物理塊用完時,系統才選擇一個未鎖定的頁面調出。被選擇調出的頁面可能是系統中任何一個進程的頁面,因此這個被選中的進程擁有的物理塊會減少,缺頁率會增加
只要缺頁就給該進程分配新的物理塊

可變分配局部置換:剛開始會為每個進程分配一定數量的物理塊,當某進程發生缺頁時,只允許從該進程自己的物理塊中選出一個進行頁面置換。如果進程在運行過程中頻繁缺頁,系統會為該進程多分配幾個物理塊,直至該進程缺頁率趨於適當程度;反之,如果缺頁率太低,就是當減少分配給該進程的內存塊數
要根據發生缺頁的頻率來動態增加或減少進程的物理塊

何時調入頁面

從何處調入頁面
對換區:讀寫速度更快,採用連續分配方式
文件區:讀寫速度更慢,採用離散分配方式

抖動/顛簸現象:剛剛換出的頁面馬上要換入內存,剛剛換入的頁面馬上要換出外存,這種頻繁的頁面調度行為稱為抖動/顛簸
主要原因是進程頻繁訪問的頁面數目高於可用的物理塊數(分配給進程的物理塊不夠)

為進程分配物理塊太少會使進程發生抖動現象,為進程分配的物理塊太多會降低系統的並發度降低某些資源的利用率。因此提出了「工作集」的概念
工作集:在某段時間間隔里,進程實際訪問頁面的集合
駐留集:請求分頁存儲管理中給進程分配的內存塊的集合
駐留集不能小於工作集,否則進程運行過程中將頻繁缺頁

linux里查看虛擬內存的命令是什麼

free -m最後一排的swap就是虛擬內存

❻ 虛擬存儲技術的指導思想是以時間換取空間對嗎

1、虛擬存儲管理概念
一個計算機任務只需要部分裝入主存便可以啟動運行,其餘部分留在磁碟上,在需要的時候裝入主存,這樣可以提高主存空間的利用率。這樣該系統所具有的主存容量會比實際主存容量大很多,這樣的存儲器稱為虛擬存儲器。
2、程序局部性原理
程序在執行時會呈現局部性規律,即在一段時間內,程序的執行僅局限於某個部分,相應所訪問的空間也局限於某個區域內。程序的局限性表現在時間、空間兩個方面。
2.1 時間局限性
指程序中的某個指令一旦執行,則在不久的將來可能會被再次執行;如果某個存儲單元被訪問,則不久後該存儲單元可能會被再次訪問。產生時間局限性的原因是程序中存在大量的循環處理。
2.2 空間局限性
指一旦程序訪問了某個存儲單元,在不久的將來,它附件的存儲單元也有可能被訪問。典型原因是程序是順序執行的。
3、虛擬存儲器的實現原理
虛擬存儲器具有請求調入功能和置換功能,能僅把作業的一部分裝入主存便運行作業系統,能從邏輯上對主存容量進行擴充的一種虛擬存儲系統。其邏輯容量由主存和外存容量之和以及CPU可定址的范圍決定,運行速度接近主存速度。應用十分廣泛。
3.1 虛擬存儲器實現方式
1、請求分頁系統
在分頁系統的基礎上增加了請求調頁功能和頁面裝置功能所形成的頁式虛擬存儲系統。置換時以頁面為單位。
2、請求分段系統
在分段系統的基礎上增加了請求調段和分段置換功能所形成的段式虛擬存儲系統。置換時以段為單位。
3、請求分頁管理
請求分頁是在純分頁系統的基礎上增加了請求調頁功能、頁面置換功能所形成的頁式虛擬存儲系統。是目前最常用的一種虛擬存儲器的方式。
請求分頁的頁表機制是在純分頁的頁表機制上形成的,因為只將應用程序的一部分調入主存,還有一部分仍在磁碟上,因此需要在頁表中增加(狀態位、訪問欄位和輔存地址等)供程序(數據)在轉進、轉出時參考。
請求分頁系統中的地址變換機構是在分頁系統的地址變換結構的基礎上增加了某些功能。比如處理缺頁中斷、從主存中轉出一頁實現虛擬存儲。
在請求分頁系統中,每當所要訪問的頁面不在主存時便要產生一個缺頁中斷,請求系統將所缺的頁調入主存,這個是由中斷機構完成的。
3.1 缺頁中斷和一般中斷的區別
1、缺頁中斷是在指令執行期間產生和中斷處理信號;一般中斷是在一條指令執行完。下一條指令執行前檢查和處理中斷信號。
2、發生缺頁中斷返回到被中斷指令的開始重新執行該指令;

熱點內容
aspnetmvc5高級編程 發布:2023-02-01 05:11:30 瀏覽:772
鴻蒙套殼安卓為什麼谷歌不起訴 發布:2023-02-01 05:10:20 瀏覽:541
eshop源碼 發布:2023-02-01 04:57:36 瀏覽:478
oracle存儲過程事務處理 發布:2023-02-01 04:57:35 瀏覽:74
資料庫常用編譯軟體 發布:2023-02-01 04:57:32 瀏覽:894
安卓手機聲音小怎麼提高 發布:2023-02-01 04:57:29 瀏覽:85
sql日期第幾周 發布:2023-02-01 04:55:19 瀏覽:912
忻州飛貓網吧電腦什麼配置 發布:2023-02-01 04:53:52 瀏覽:325
蘋果導入安卓數據用什麼最快 發布:2023-02-01 04:51:52 瀏覽:282
手機里的安卓視頻怎麼下載 發布:2023-02-01 04:51:52 瀏覽:607