作業系統 第四章 記憶體離散分配 分段--筆記*2
阿新 • • 發佈:2018-12-19
頁表筆記補充
每個程序一張頁表 一張OS反置頁表+沒程序一張外部頁表 **反置頁表:**站在物理角度,記錄佔用他的已調入記憶體的程序標識和頁號。系統中只需要一張表即可(例如:一個64MB記憶體,若頁面大小4KB[64M/4K=2^16 ,16個物理塊],反置頁表佔用64KB(16K*4B)) **程序外部頁表:**每個程序一張,記錄程序不在記憶體中的那些頁面所在物理位置。 **如何提高檢索反置頁表的速度:**記憶體容量大時,反置頁表的頁表項還是會很大,利用程序識別符號和頁號去檢索一張大的線性表很費時,可利用hash演算法提高檢索速度。
分段
程式通過分段劃分為多個模組,每個段定義一組邏輯資訊(如程式碼段,資料段,棧段)
段的特點 每個段有自己的名字(一般是段號),都從0編址,可分別編寫和編譯。裝入記憶體時每個段賦予各段一個段號。 每個段佔據一塊連續的記憶體(既有連續的,又有分離的) 各段的大小不等
地址結構:段號+段內地址 段表:記錄每段實際存放的實體地址
分頁容易造成共享和非共享資料共處一頁,不方便設定許可權。
段頁式儲存 基本原理: 將使用者程式分成若干段,併為每個段賦予一個段名。 把每個段分成若干頁 地址結構包括段號、段內頁號和頁內地址三部分