當前位置:首頁 » 操作系統 » 內存資料庫的映射

內存資料庫的映射

發布時間: 2024-03-17 23:16:55

⑴ 為什麼要內存映射

內存映射(mmap)是一種內存映射文件的方法,即將一個文件或者其他對象映射到進程的地址空間,實現文件磁碟地址和應用程序進程虛擬地址空間中一段虛擬地址的一一映射關系。實現這樣的映射關系後,進程就可以採用指針的方式讀寫操作這一段內存,而系統會自動回寫藏頁面到對應的文件磁碟上。應用程序處理映射部分如同訪問主存。(1)線程啟動映射過程,並在虛擬地址空間中為映射創建虛擬映射區域。

先在用戶空間調用庫函數mmap,並在進程當前進程的虛擬地址空間中,尋找一段空閑的滿足要求的連續虛擬地址作為內存虛擬映射區域,對此區域初始化並插入進程的虛擬地址區域鏈表或樹中。

(2)系統在內核空間調用內核函數mmap,實現文件物理地址和進程虛擬地址之間的一一映射關系。

(3)進程發起堆這片映射空間的訪問

進程讀寫操作訪問虛擬地址,查詢頁表,發現這一段地址並不在內存的物理頁面上,因為雖然建立了映射關系,但是還沒有將文件從磁碟移到內存中。由此發生缺頁中斷,內核請求從磁碟調入頁面。調頁過程先在交換緩存空間(swap cache)中查找,若沒有則通過nopage函數把缺失頁從磁碟調入內存。之後進程會對其做讀寫操作,若寫操作改變了頁面內容,一段時間後系統會自動回寫臟頁面到磁碟中。(修改過的臟頁面不會立即更新到文件中,可以調用msync來強制同步,寫入文件)

⑵ 單片機內存映射是什麼意思為什麼會出現映射這么一個概念它有什麼作用和功能

許多年以前,當人們還在使用DOS或是更古老的操作系統的時候,計算機的內存還非常小,一般都是以K為單位進行計算,相應的,當時的程序規模也不大,所以內存容量雖然小,但還是可以容納當時的程序。但隨著圖形界面的興起還有用戶需求的不斷增大輪嘩,應用臘汪行程序的規模也隨之膨脹起來,終於一個難題在程序員的面前,那就是應用程序太大以至於內存容納不下該程序,通常解決的辦法是把程序分割成許多稱為覆蓋塊(overlay)的片段。覆蓋塊0首先運行,陵悶結束時他將調用另一個覆蓋塊。雖然覆蓋塊的交換是由OS完成的,但是必須先由程序員把程序先進行分割,這是一個費時費力的工作,而且相當枯燥。人們必須找到更好的辦法從根本上解決這個問題。不久人們找到了一個辦法,這就是虛擬存儲器(virtual memory).虛擬存儲器的基本思想是程序,數據,堆棧的總的大小可以超過物理存儲器的大小,操作系統把當前使用的部分保留在內存中,而把其他未被使用的部分保存在磁碟上。
在沒有使用虛擬存儲器的機器上,地址被直接送到內存匯流排上,使具有相同地址的物理存儲器被讀寫;而在使用了虛擬存儲器的情況下,虛擬地址不是被直接送到內存地址匯流排上,而是送到存儲器管理單元MMU,把虛擬地址映射為物理地址。

⑶ 什麼是資料庫的三級模式和二級映像它有什麼優點

三級模式-兩級映射屬於層次型架構設計,保證資料庫中數據具有較高的邏輯獨立性和物理獨立性。

1、內模式:

內模式又稱存儲模式,對應於物理級,它是資料庫中全體數據的內部表示或底層描述,它描述了數據在存儲介質上的存儲方式及物理結構(順序存儲、按照B樹結構存儲還是按hash方法存儲),對應著實際存儲在外存儲介質上的資料庫。

① 一個資料庫只有一個內模式;

② 一個表可能由多個文件組成,如:數據文件、索引文件。

2、概念模式:

模式又稱概念模式或邏輯模式,對應於概念級。它是由資料庫設計者綜合所有用戶的數據,按照統一的觀點構造的全局邏輯結構,是對資料庫中全部數據的邏輯結構和特徵的總體描述,是所有用戶的公共數據視圖(全局視圖)。

它是由資料庫管理系統提供的數據模式描述語言(Data Description Language,DDL)來描述、定義的,體現、反映了資料庫系統的整體觀。

① 一個資料庫只有一個模式;

② 是資料庫數據在邏輯級上的視圖;

③ 資料庫模式以某一種數據模型為基礎;

④ 定義模式時不僅要定義數據的邏輯結構(如數據記錄由哪些數據項構成,數據項的名字、類型、取值范圍等),而且要定義與數據有關的安全性、完整性要求,定義這些數據之間的聯系。

3、外模式:

外模式又稱子模式,對應於用戶級。它是某個或某幾個用戶所看到的資料庫的數據視圖,是與某一應用有關的數據的邏輯表示。外模式是從模式導出的一個子集,包含模式中允許特定用戶使用的那部分數據。

用戶可以通過外模式描述語言來描述、定義對應於用戶的數據記錄(外模式),也可以利用數據操縱語言(Data Manipulation Language,DML)對這些數據記錄進行處理。外模式反映了資料庫的用戶觀(視圖、查出數據的表)。

① 一個資料庫可以有多個外模式;

② 外模式就是用戶視圖;

③ 外模式是保證數據安全性的一個有力措施。

4、外模式一模式映射:

定義和建立某個外模式與概念模式間的對應關系,將外模式與模式聯系起來,當模式發生改變時,只要改變其映射,就可以使外模式保持不變,對應的應用程序也可保持不變

5、概念模式一內模式映射:

定義建立數據的邏輯結構(概念模式)與存儲結構(內模式)間的對應關系,當數據的存儲結構發生變化時,只需改變概念模式一內模式映射,就能保持概念模式不變,因此應用程序也可以保持不變。

優點:

通過外模式-模式映射和模式-內模式映射這兩個映射保證了資料庫系統中的數據具有較高的邏輯獨立性和物理獨立性。

(3)內存資料庫的映射擴展閱讀:

基本知識

資料庫(DB)是指長期存儲在計算機內的、有組織的。可共享的數據集合。

資料庫系統(DBS)從廣義上講是由資料庫、硬體、軟體和人員組成,管理的對象是數據。

資料庫管理系統(DBMS)是一種操縱和管理資料庫的大型軟體,用於建立、使用和維和資料庫。主要功能有數據定義、資料庫操作、資料庫運行管理、數據組織、存儲和管理、資料庫的建立與維護及其他功能。

DBMS通常分為三類:關系DBS,對象關系DBS,面向對象的DBS

資料庫的結構與模式:

資料庫結構的基礎是數據模型,是用來描述數據的一組概念和定義。

數據模型的三要素:數據結構、數據操作、數據的約束條件

⑷ 如何理解資料庫的三級模式二級映射

三級模式是對資料庫的結構的三個抽象級別:外模式(用戶模式)、模式(邏輯模式)、內模式(存儲模式);二級映象是在DBMS內部實現這三個抽象層次的聯系和轉換。

二級映象:外模式/模式映象:定義外模式與模式之間的對應關系。每一個外模式對應一個映像,映象定義(外模式與模式之間對應關系)包含在各自外模式的描述中即呈現給用戶的視圖中。用途是:保證數據邏輯獨立性ex.模式變了,修改外模式/模式映象映像即可,不會影響應用程序。

模式/內模式映象:定義數據全局邏輯結構與儲存結構的對應關系。一個資料庫只有一個此映象。映象定義包含在模式描述中。

三級模式各模式解析

1、外模式:(一個應用只能對應一個外模式,一個外模式可對應多個應用)是對應用程序需要的數據的邏輯結構、特徵的描述,以視圖的方式呈現給應用程序使用者(用戶)。外模式是模式的子集,且外模式之間可以有交叉的部分。

外模式的作用:簡化了數據,用戶可以只看自己想看的數據; 保障了資料庫的安全性,不同的用戶擁有的許可權不一樣,只能看到他有授權的部分。

2、模式:(一個資料庫只有一個模式,模式是數據的邏輯結構)是對資料庫中全體數據的邏輯結構(數據項的名字、類型、取值范圍等)和特徵的描述。

有著所有用戶的公共數據視圖,展示了有什麼數據以及數據間的關系;提出了有關數據的安全性和完整性的要求,以確保用戶可以安全地、有效地、正確地使用這個共享數據資源。

3、內模式:是資料庫內部的表示:數據存儲方式、索引組織方式、數據是否加密、是否壓縮、存儲記錄結構的規定。

⑸ 內存映射是怎麼回事

內存映射文件是由一個文件到一塊內存的映射,使進程虛擬地址空間的某個區域與磁碟上某個文件的部分或全部內容的建立映射。
建立映射後,通過該區域可以直接對被映射的磁碟文件進行訪問.而不必執行文件I/O操作也無需對文件內容進行緩沖處理。
就好像整個被映射的文件都載入到了內存一樣,因此內存文件映射非常適合於用來管理大文件。

內存映射文件對程序的提速,只在處理大文件或非常頻繁的文件讀寫操作時效果才明顯。
通過內存映射,相當於將磁碟上的文件所在空間建立成一塊虛擬內存,程序訪問時可按內存的方式進行,省去了普通io方式的一些環節,其實真正要讀寫操作時,會進行換頁,將這些個「虛擬內存」讀到物理內存中。
總之,內存映射文件是應用虛擬內存的技術來達到加速處理的

熱點內容
安卓光遇版本怎麼看 發布:2024-11-28 06:29:52 瀏覽:870
oraclesql加密 發布:2024-11-28 06:29:15 瀏覽:900
圖片緩存工具 發布:2024-11-28 06:29:15 瀏覽:962
有文件夾刪不掉怎麼辦 發布:2024-11-28 06:22:50 瀏覽:526
python3怎麼用 發布:2024-11-28 06:10:58 瀏覽:255
安卓盒子內存小怎麼辦 發布:2024-11-28 06:10:57 瀏覽:809
車企減配哪些配置好 發布:2024-11-28 05:55:18 瀏覽:674
傳說對決上傳照片 發布:2024-11-28 05:49:18 瀏覽:465
解壓筆怎麼畫 發布:2024-11-28 05:49:17 瀏覽:518
預編譯查詢 發布:2024-11-28 05:32:35 瀏覽:313