AS400卡的存儲結構是什么?
發布時間 : 2019-08-03
AS/400 又一特征就是它的存儲管理方法。它采用了單級存儲( Single-level store )結構對存儲器進行管理。它將系統中所有的存儲器,即所有主存 (main storage ) 和輔存 (Auxiliary storage ) 看成是一個大的存儲器,這個大存儲器提供的存儲空間相當于機器的尋址能力,從開始的 48 位尋址空間到今天的 64 位尋址空間,近幾年內渴望實現 128 位尋址空間。這個諾大的虛地址空間給用戶尤其是程序員帶來了極大的方便,他們所面對的就是一個盛裝對象( Objects )的大容器,只要知道了一個對象的名稱和類型就可以訪問這個對象,完全不必關心所訪問的對象存放在哪個盤上,也不必考慮存儲管理等繁瑣問題。至于內外存之間信息如何交換以及為提高對象的訪問效率而將一個對象的內容分散存放到幾個硬盤上,對用戶是完全透明的。
事實上,在 MI 上方的任何程序(包括 OS/400 ,應用程序,編譯器等)都看不到這個單級存儲結構中的實存部分(內存和外存),呈現在他們面前的只是一個偌大的虛存, 每個 AS/400 對象占用這個虛存中的一些虛地址。當用戶使用對象的名字和類型訪問它時, MI 層上方的程序可以快速地將這個對象的名字映射成它的虛地址。由于 MI 層上方用戶編程時,不再區分內存和外存,只是針對這個虛存編寫程序,因此可使得編寫程序所需的指令數目大大減少。當然,負責系統性能管理的人員用 WRKSYSSTS 命令或 WRKDSKSTS 命令還是可以看到一些關于磁盤的信息的,例如磁盤的使用率,忙閑情況,缺頁率( page Fault )等。
對象總是要存儲在磁盤上,并且在使用時需將其裝入內存的。如何將對象的虛地址映射到磁盤上的實地址或內存的實地址是在 MI 層下方實現的。 AS/400 將內存分為大小相等的一些頁面幀 (page frame) ,在 64 位 AS/400 系統中,頁面幀的大小為 4096 字節( 4KB ),存儲在磁盤上的對象被劃分為一個個大小與頁面幀相等的頁面( page )。一個大的對象由許多頁面組成,這些頁面在虛存中占用一些連續的地址,但在實際存放時,可能被分散到幾個硬盤上,這樣做可以提高對對象的讀寫速度。當處理機要訪問的一個對象時,可以將該對象的部分頁面從磁盤裝入內存的頁面幀中, MI 下方的地址轉換機構通過查詢駐留在內存中的一個頁表 (page table) 實現虛實地址轉換,如果發現一個虛地址對應的頁面不在內存中,就報告頁故障 (page fault) ,然后由內存管理程序負責將這個頁面從磁盤調入內存。硬件在查詢頁表時使用的是 Hashing 算法。
總之, AS/400 的單級存儲結構不僅給編程用戶提供了一個相當大的存儲空間,同時也將用戶從繁瑣的存儲管理中解放出來,減輕了用戶負擔,提高了工作效率。 在 OS/400 V4R3 及其以后版本中,已把 AS/400 的單級存儲的單一地址空間由原來的內存、硬盤推廣到磁帶庫,系統的存儲管理功能可按用戶自定義的規則,自動透明地管理分布在磁盤與磁帶庫中的數據。