簡介
在數(shù)據(jù)庫中,表(TABLE)是數(shù)據(jù)庫中用來存儲數(shù)據(jù)的對象,是有結(jié)構(gòu)的數(shù)據(jù)的集合,是整個(gè)數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)。在操作系統(tǒng)中,創(chuàng)建表是指在存儲管理中,系統(tǒng)會(huì)為每個(gè)進(jìn)程建立一張映射表。創(chuàng)建表主要是為了實(shí)現(xiàn)虛擬地址和實(shí)地址之間的轉(zhuǎn)換,即地址變換和檢查存儲空間的使用情況。例如,在基本分頁存儲管理方式中,創(chuàng)建表是頁表;在基本分段存儲管理方式中,創(chuàng)建表是段表。
地址變換地址變換能夠讓操作系統(tǒng)在給任務(wù)分配內(nèi)存時(shí)具有靈活性,并且因?yàn)槲覀兛梢宰屇承┪锢淼刂凡槐蝗魏芜壿嫷刂匪成洌栽诘刂纷儞Q過程中同時(shí)也提供了內(nèi)存保護(hù)功能。
計(jì)算機(jī)中的物理內(nèi)存是字節(jié)的線性數(shù)組,每字節(jié)具有一個(gè)唯一的物理地址;程序中的地址是由兩部分構(gòu)成的邏輯地址。這種邏輯地址并不能直接用于訪問物理內(nèi)存,而需要使用地址變換機(jī)制將它變換或映射到物理內(nèi)存地址上。內(nèi)存管理機(jī)制即用于將這種邏輯地址轉(zhuǎn)換成物理內(nèi)存地址。段表中地址變換過程如下:從控制寄存器讀取段表始址,找到段表;段號+段表始址 得到段描述子地址;從段描述子讀取頁表始址,找到頁表;頁號+頁表始址 得到頁描述子地址;從頁描述子讀取物理塊號;物理塊號+頁內(nèi)位移量 得到物理地址。
頁表在分頁系統(tǒng)中,允許將進(jìn)程的各個(gè)頁離散地存儲在內(nèi)存不同的物理塊中,但系統(tǒng)應(yīng)能保證進(jìn)程的正確運(yùn)行,即能在內(nèi)存中找到每個(gè)頁面所對應(yīng)的物理塊。為此,系統(tǒng)又為每個(gè)進(jìn)程建立了一張頁面映像表,簡稱頁表。在進(jìn)程地址空間內(nèi)的所有頁(0~n),依次在頁表中有一頁表項(xiàng),其中記錄了相應(yīng)頁在內(nèi)存中對應(yīng)的物理塊號,見圖 4-12 的中間部分。在配置了頁表后,進(jìn)程執(zhí)行時(shí),通過查找該表,即可找到每頁在內(nèi)存中的物理塊號。可見,頁表的作用是實(shí)現(xiàn)從頁號到物理塊號的地址映射。即使在簡單的分頁系統(tǒng)中,也常在頁表的表項(xiàng)中設(shè)置一存取控制字段,用于對該存儲塊中的內(nèi)容加以保護(hù)。當(dāng)存取控制字段僅有一位時(shí),可用來規(guī)定該存儲塊中的內(nèi)容是允許讀/寫,還是只讀;若存取控制字段為二位,則可規(guī)定為讀/寫、只讀和只執(zhí)行等存取方式。如果有一進(jìn)程試圖去寫一個(gè)只允許讀的存儲塊時(shí),將引起操作系統(tǒng)的一次中斷。如果要利用分頁系統(tǒng)去實(shí)現(xiàn)虛擬存儲器,則還須增設(shè)一數(shù)據(jù)項(xiàng)2。
段表在分段式存儲管理系統(tǒng)中,則是為每個(gè)分段分配一個(gè)連續(xù)的分區(qū),而進(jìn)程中的各個(gè)段可以離散地移入內(nèi)存中不同的分區(qū)中。為使程序能正常運(yùn)行,亦即,能從物理內(nèi)存中找出每個(gè)邏輯段所對應(yīng)的位置,應(yīng)像分頁系統(tǒng)那樣,在系統(tǒng)中為每個(gè)進(jìn)程建立一張段映射表,簡稱“段表” 。 每個(gè)段在表中占有一個(gè)表項(xiàng), 其中記錄了該段在內(nèi)存中的起始地址(又稱為 “基址” )和段的長度,如圖 4-17 所示。段表可以存放在一組寄存器中,這樣有利于提高地址轉(zhuǎn)換速度,但更常見的是將段表放在內(nèi)存中。在配置了段表后,執(zhí)行中的進(jìn)程可通過查找段表找到每個(gè)段所對應(yīng)的內(nèi)存區(qū)??梢?,段表是用于實(shí)現(xiàn)從邏輯段到物理內(nèi)存區(qū)的映射。
文件分配表是DOS用于記錄磁盤中各文 件存放位置的一種工具。一個(gè)文件 通常以簇為單位存放在磁盤中。文 件的FAT中含有若干表項(xiàng),每一 表項(xiàng)都記錄了其后繼簇的位置,這 樣,只要從文件目錄表中找到一個(gè) 文件的首簇的地址,順著FAT各 個(gè)表項(xiàng)所形成的鏈進(jìn)行跟蹤,就可 讀出整個(gè)的文件。FAT是提供在 磁盤上找到一個(gè)文件的惟一手段, 也是病毒最愛潛伏的地方,DOS 生成并保持兩份FAT,以防止其 中一份遭到破壞。
文件存儲空間中的表空閑表空閑表法屬于連續(xù)分配方式,它與內(nèi)存的動(dòng)態(tài)分配方式雷同,它為每個(gè)文件分配一塊連續(xù)的存儲空間,即系統(tǒng)也為外存上的所有空閑區(qū)建立一張空閑表,每個(gè)空閑區(qū)對應(yīng)于一個(gè)空閑表項(xiàng),其中包括表項(xiàng)序號、該空閑區(qū)的第一個(gè)盤塊號、該區(qū)的空閑盤塊數(shù)等信息。再將所有空閑區(qū)按其起始盤塊號遞增的次序排列。
位示圖位示圖是利用二進(jìn)制的一位來表示磁盤中一個(gè)盤塊的使用情況。當(dāng)其值為“0”時(shí),表示對應(yīng)的盤塊空閑為“1”時(shí),表示已分配。有的系統(tǒng)把“0”作為盤塊已分配的標(biāo)志,把“1”作為空閑標(biāo)志。(它們在本質(zhì)上是相同的,都是用一位的兩種狀態(tài)來標(biāo)志空閑和已分配兩種情況。)磁盤上的所有盤塊都有一個(gè)二進(jìn)制位與之對應(yīng),這樣,由所有盤塊所對應(yīng)的位構(gòu)成一個(gè)集合,稱為位示圖。通??捎?m × n 個(gè)位數(shù)來構(gòu)成位示圖,并使 m × n 等于磁盤的總塊數(shù)。