複製鏈接
請複製以下鏈接發送給好友

創建表

鎖定
以順序的行和列表示信息 [1]  。在操作系統中有很多地方應用到表這種結構,如段表,頁表,文件分配表。創建表是指在存儲管理中,系統會為每個進程建立一張映射表,每個列包含的是所有作者的某個特定類型的信息,而每行則包含了某個段或頁的所有信息,這主要與表的用途有關。
中文名
創建表
外文名
create table
學    科
計算機
定    義
根據系統需要創建一個表
有關術語
領    域
計算機系統

創建表簡介

在數據庫中,表(TABLE)是數據庫中用來存儲數據的對象,是有結構的數據的集合,是整個數據庫系統的基礎。在操作系統中,創建表是指在存儲管理中,系統會為每個進程建立一張映射表。創建表主要是為了實現虛擬地址和實地址之間的轉換,即地址變換和檢查存儲空間的使用情況。例如,在基本分頁存儲管理方式中,創建表是頁表;在基本分段存儲管理方式中,創建表是段表。

創建表地址變換

地址變換能夠讓操作系統在給任務分配內存時具有靈活性,並且因為我們可以讓某些物理地址不被任何邏輯地址所映射,所以在地址變換過程中同時也提供了內存保護功能。
計算機中的物理內存是字節的線性數組,每字節具有一個唯一的物理地址;程序中的地址是由兩部分構成的邏輯地址。這種邏輯地址並不能直接用於訪問物理內存,而需要使用地址變換機制將它變換或映射到物理內存地址上。內存管理機制即用於將這種邏輯地址轉換成物理內存地址。段表中地址變換過程如下:從控制寄存器讀取段表始址,找到段表;段號+段表始址 得到段描述子地址;從段描述子讀取頁表始址,找到頁表;頁號+頁表始址 得到頁描述子地址;從頁描述子讀取物理塊號;物理塊號+頁內位移量 得到物理地址。

創建表頁表

在分頁系統中,允許將進程的各個頁離散地存儲在內存不同的物理塊中,但系統應能保證進程的正確運行,即能在內存中找到每個頁面所對應的物理塊。為此,系統又為每個進程建立了一張頁面映像表,簡稱頁表。在進程地址空間內的所有頁(0~n),依次在頁表中有一頁表項,其中記錄了相應頁在內存中對應的物理塊號,見圖 4-12 的中間部分。在配置了頁表後,進程執行時,通過查找該表,即可找到每頁在內存中的物理塊號。可見,頁表的作用是實現從頁號到物理塊號的地址映射。即使在簡單的分頁系統中,也常在頁表的表項中設置一存取控制字段,用於對該存儲塊中的內容加以保護。當存取控制字段僅有一位時,可用來規定該存儲塊中的內容是允許讀/寫,還是隻讀;若存取控制字段為二位,則可規定為讀/寫、只讀和只執行等存取方式。如果有一進程試圖去寫一個只允許讀的存儲塊時,將引起操作系統的一次中斷。如果要利用分頁系統去實現虛擬存儲器,則還須增設一數據項 [2] 
圖 4-12 圖 4-12

創建表段表

在分段式存儲管理系統中,則是為每個分段分配一個連續的分區,而進程中的各個段可以離散地移入內存中不同的分區中。為使程序能正常運行,亦即,能從物理內存中找出每個邏輯段所對應的位置,應像分頁系統那樣,在系統中為每個進程建立一張段映射表,簡稱“段表” 。 每個段在表中佔有一個表項, 其中記錄了該段在內存中的起始地址(又稱為 “基址” )和段的長度,如圖 4-17 所示。段表可以存放在一組寄存器中,這樣有利於提高地址轉換速度,但更常見的是將段表放在內存中。在配置了段表後,執行中的進程可通過查找段表找到每個段所對應的內存區。可見,段表是用於實現從邏輯段到物理內存區的映射。
圖 4-17 圖 4-17

創建表文件分配表

是DOS用於記錄磁盤中各文 件存放位置的一種工具。一個文件 通常以簇為單位存放在磁盤中。文 件的FAT中含有若干表項,每一 表項都記錄了其後繼簇的位置,這 樣,只要從文件目錄表中找到一個 文件的首簇的地址,順着FAT各 個表項所形成的鏈進行跟蹤,就可 讀出整個的文件。FAT是提供在 磁盤上找到一個文件的惟一手段, 也是病毒最愛潛伏的地方,DOS 生成並保持兩份FAT,以防止其 中一份遭到破壞。

創建表文件存儲空間中的表

創建表空閒表

空閒表法屬於連續分配方式,它與內存的動態分配方式雷同,它為每個文件分配一塊連續的存儲空間,即系統也為外存上的所有空閒區建立一張空閒表,每個空閒區對應於一個空閒表項,其中包括表項序號、該空閒區的第一個盤塊號、該區的空閒盤塊數等信息。再將所有空閒區按其起始盤塊號遞增的次序排列。

創建表位示圖

位示圖是利用二進制的一位來表示磁盤中一個盤塊的使用情況。當其值為“0”時,表示對應的盤塊空閒為“1”時,表示已分配。有的系統把“0”作為盤塊已分配的標誌,把“1”作為空閒標誌。(它們在本質上是相同的,都是用一位的兩種狀態來標誌空閒和已分配兩種情況。)磁盤上的所有盤塊都有一個二進制位與之對應,這樣,由所有盤塊所對應的位構成一個集合,稱為位示圖。通常可用 m × n 個位數來構成位示圖,並使 m × n 等於磁盤的總塊數。
參考資料
  • 1.    [美]尼米爾(Niemeyer,P.),魯德森(Knudsen,J.) 著;林琪 譯.Java_(TM)語言學習手冊.北京:中國電力出版社.2004.第588-597頁
  • 2.    湯子瀛.計算機操作系統(第3版):西安電子科技大學出版社,2010