
正文
windows内存映射文件,内存映射文件原理
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
内存映射文件的原理
这种对应关系纯属是逻辑上的概念,物理上是不存在的,原因是进程的逻辑地址空间本身就是不存在的。
应用接口和原理很简单,内部机制复杂。为了实现更安全通信,往往还与信号灯等同步机制共同使用。mmap的机制如:就是在磁盘上建立一个文件,每个进程存储器里面,单独开辟一个空间来进行映射。如果多进程的话,那么不会对实际的物理存储器(主存)消耗太大。
AVR、PIC单片机都会遇到这个东东,与51不同,AVR等单片机的寄存器在使用过程中实地址是数据存储器地址,也就是映射到数据存储器地址当中,他们没有专门的地址。
内存映射(mmap)是一种内存映射文件的方法,即将一个文件或者其他对象映射到进程的地址空间,实现文件磁盘地址和应用程序进程虚拟地址空间中一段虚拟地址的一一映射关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写藏页面到对应的文件磁盘上。
相关问答
Q1: 请教pagepool和nonpagepool究竟是什么不同
系统为每个TCP连接分配一个TCP控制块(TCPcontrolblockorTCB),这个控制块用于缓存TCP连接的一些参数,每个TCB需要分配0.5KB的pagepool和0.5KB的Non-pagepool,也就说,每个TCP连接会占用1KB的系统内存。
这个值指明分配 pagepool 内存的数量,也就是说,如果MaxFreeTcbs = 1000 , 则 pagepool 的内存数量为 500KB 那么 MaxHashTableSize 应大于 500 才行。这个数量越大,则Hash table 的冗余度就越高,每次分配和查找 TCP 连接用时就越少。
系统为每个TCP 连接分配一个TCP 控制块(TCP control block or TCB),这个控制块用于缓存TCP连接的一些参数,每个TCB需要分配 0.5 KB的pagepool 和 0.5KB 的Non-pagepool,也就说,每个TCP连接会占用 1KB 的系统内存。
Q2: 以下哪些对象可用于windows进程间通信
1、管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
2、管道(Pipe):管道是最早出现的IPC形式之一,提供了一种在两个进程之间单向传输数据的方法,管道可以是匿名的,也可以是命名的,匿名管道主要用于父子进程之间的通信,命名管道可以在不相关的进程之间进行通信。
3、Windows进程间通讯的方法有很多:管道、邮件槽、剪切板、共享内存、消息、套接字、RPC、DDE等。
关于windows内存映射文件和内存映射文件原理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






