
mmap
文章平均质量分 79
mmap知识点
-佩奇的爸爸
分享开发经验
展开
-
mmap(三) mmap测试程序,user和设备驱动传递大量数据
构造一个ringbuffer,驱动中将产生的数据放入ringbuffer,用户空间将ringbuffer中的数据读走存在文件中。原创 2023-06-20 21:04:08 · 321 阅读 · 0 评论 -
mmap(二) 内核空间
分析:因为单位物理页面的大小是4096字节,虽然被映射的文件只有5000字节,但是对应到进程虚拟地址区域的大小需要满足整页大小,因此mmap函数执行后,实际映射到虚拟内存区域8192个 字节,5000~8191的字节部分用零填充。5)为映射分配了新的虚拟地址区域后,通过待映射的文件指针,在文件描述符表中找到对应的文件描述符,通过文件描述符,链接到内核“已打开文件集”中该文件的文件结构体(struct file),每个文件结构体维护着和这个已打开文件相关各项信息。映射完成后,驱动程序往这段内。原创 2023-06-20 20:47:28 · 448 阅读 · 1 评论 -
mmap(一) 用户空间
实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。原创 2023-06-20 20:38:00 · 353 阅读 · 0 评论