当前位置:首页 » 操作系统 » 内存数据库的映射

内存数据库的映射

发布时间: 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 08:30:51 浏览:108
windows版ftp软件免费下载 发布:2024-11-28 08:25:28 浏览:857
淘宝帐号怎么改密码 发布:2024-11-28 07:46:05 浏览:11
监控未配置怎么办视频 发布:2024-11-28 07:44:41 浏览:502
android获取手机的ip 发布:2024-11-28 07:42:13 浏览:171
python打开文件窗口 发布:2024-11-28 07:36:13 浏览:555
cpu二级缓存的作用 发布:2024-11-28 07:36:12 浏览:1001
net数据库控件 发布:2024-11-28 07:32:58 浏览:99
我的世界国际服创建服务器pc 发布:2024-11-28 07:20:53 浏览:773
编译原理LR分析法pdf 发布:2024-11-28 07:17:41 浏览:264