- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
作系第九章第九章背景介基本概念需求分需求分效能分替框配置象作摘要管理的目的同行多行程作最有效的利用行程的大小目受限於的容量允程式不必完全入到中就可以行的制能行需求大於空的程式程式上得容易框配置的原方法使用需求分探系上需要考量的因素如先分程式分大小等基本概念如果只需要部份程式在中就可以行有下列程式不被的容量所限制程式可以超容量的程式化程式的工作剩的空可以更多行程同在中行可增加使用率量反和回覆不因此增加置次少每一使用者程式平均可以更快地被行基本概念的基本想法把目前需要的部份程式入到主其的存在磁碟中等
作業系統 第九章 虛擬記憶體 第九章 虛擬記憶體 背景介紹 基本概念 需求分頁 需求分頁效能 分頁替換 頁框配置 輾轉現象 實作議題 摘要 虛擬記憶體 實體記憶體管理的目的: 同時執行多個行程,並對CPU作最有效的利用 行程的大小與數目受限於實體記憶體的容量 虛擬記憶體:允許程式不必完全載入到記憶體中就可以執行的機制 能夠執行記憶體需求大於實體記憶體空間的程式 程式規劃上變得容易 頁框配置的原則與方法 使用需求分頁來探討虛擬記憶體 系統設計上需要考量的因素,如預先分頁、程式結構、分頁大小等 基本概念(1) 如果只需要部份程式在記憶體中就可以執行,會有下列優點: 程式不會被實體記憶體的容量所限制 程式設計師可以設計超過實體記憶體容量的程式;簡化程式設計的工作。 剩餘的記憶體空間可以讓更多行程同時在記憶體中執行 可增加CPU使用率與產量 反應和回覆時間並不因此增加。 置換次數會減少;每一個使用者程式平均可以更快地被執行 基本概念(2) 虛擬記憶體的基本想法: 僅把目前需要的部份程式載入到主記憶體 其餘的則儲存在磁碟中,等到有需要時再載入 程式設計師所能運用的記憶體容量,從原來的實體記憶體空間增加到整個磁碟的空間 透過記憶體管理單元的硬體支援,將邏輯位址轉換成實體位址;如果所要的資料不在實體記憶體中,會從磁碟中載入 虛擬記憶體下的位址轉換 基本概念(3) 虛擬記憶體的機制 使用需求分頁或是需求分段的方式來實作 區域性 時間區域性:最近執行過的指令經常會一再地被行程執行 空間區域性:執行過的指令,其附近的指令很快會被執行的機率相當大 區域性的觀點:執行時所參考到的同分頁中的指令會頻繁地被重複執行 需求分頁(1) 只將部份程式的分頁載入到記憶體中;只在行程需要執行某分頁時,才將此分頁載入到記憶體中 分頁表中的效用位元 被設定為 v :表示此分頁是有效的,且放在記憶體中 被設定為 i ;表示此分頁可能不是有效的 此分頁沒有用 此分頁是有效的但目前卻放在磁碟上 磁碟:儲存不在記憶體的分頁所用的置換裝置;為此目的而使用的磁碟區段稱為置換區域(較大的獨立連續區塊) 所有行程被換出的分頁會被儲存在置換區域中 在置換區域中進行需求分頁 一次將行程所需要的分頁由置換區域中置入記憶體,不是一頁一頁地置入,以增進分頁效率 效用位元、置換區域與置換裝置 需求分頁(2) 分頁錯誤:若一個行程想要使用一個不在記憶體中的分頁(存取一個標記為無效的分頁) 作業系統產生例外中斷,此中斷之因是作業系統沒有把行程需要用的分頁載入到記憶體中,而不是企圖存取一個不合法的記憶體位址 需求分頁(3) 分頁錯誤處理的過程 參考分頁表,決定是有效或是無效的記憶體參考 若無效,則終止該行程執行;若合法,但此分頁尚未載入到記憶體中,則對作業系統發出分頁錯誤的例外中斷 作業系統在磁碟中找尋引發分頁錯誤的分頁。 在記憶體中找出一個頁框,並排定一個磁碟 I/O,把引發分頁錯誤的分頁載入到該頁框中 修改分頁表把此頁框設成有效(該分頁已經載入到記憶體中) 重新執行引發分頁錯誤的指令 分頁錯誤處理步驟 需求分頁(4) 分頁錯誤發生時,要儲存: 當時被中斷的行程狀態,包含暫存器、狀態碼、程式計數器等 分頁錯誤處理完畢後,再把行程的狀態全都還原,並繼續執行此行程 執行行程的第一個指令時就會發生分頁錯誤,行程會不斷地發生分頁錯誤,直到所有目前需要的分頁都載入到記憶體為止,之後行程就可以順利執行 純粹需求分頁,就是在需要某分頁時才將那分頁載入執行 需求分頁(5) 嚴格要求在分頁錯誤發生後,要能夠重新執行任何的指令;容易達到! 分頁錯誤發生在 指令擷取的階段:藉由重新擷取指令來重新開始執行 運算元擷取時:必須重新再擷取指令,並將指令解碼,然後擷取運算元 儲存結果的階段時:要重新開始執行包含了指令擷取、運算元擷取、執行運算等步驟 主要的困難:一個指令執行時有可能會修改到很多不同的資料,導致無法重新執行指令 需求分頁效能(1) 評估需求分頁的效能:計算有效存取時間 大多數的電腦系統中,記憶體存取時間都介於 10 奈秒與 200 奈秒間 若無分頁錯誤,有效存取時間將會和記憶體存取時間相同;若發生分頁錯誤,將從磁碟中讀入相關的分頁?存取想要的位元組 假設分頁錯誤發生的機率為 p, p 介於 0 與 1 之間 有效存取時間為(1–p)× t + p × 分頁錯誤處理時間 如果 p 能夠相當地接近 0,有效存取時間可以非常接近記憶體存取時間 需求分頁效能(2) 分頁錯誤時系統所進行的處理: 硬體對作業系統發出例外中斷 儲存行程的狀態及一般暫存器內容 作業系統判斷是否發生分頁錯誤 作業系統檢查邏輯位址是否有效 若沒問題,則找出所需要被載入記憶體的分頁;要求一個空的頁框 假如沒有空的頁框,
文档评论(0)