小编EQv*_*van的帖子

mmap(2)vs mmap(3)

有谁知道mmap(2)和之间的区别mmap(3)是什么?第3节描述为"本章描述了除第2章中描述的库函数之外的所有库函数,它们实现了系统调用." 不mmap(3)执行系统调用?

阅读这两个手册页,我看到它mmap(2)似乎接受了比它更多种各样的标志mmap(3),并声称能够映射设备I/O空间. mmap(3)声称能够将"共享内存对象"和"类型化内存对象"映射到文件中,但未提及设备I/O.

由于这两个函数具有相同的名称,我甚至不确定如何选择一个而不是另一个.

linux memory mmap

7
推荐指数
1
解决办法
2337
查看次数

Linux /proc/meminfo“Mapped”主题是什么意思?

Linux /proc/meminfo“Mapped”主题是什么意思?我见过几句俏皮话,告诉我这是“由设备或库使用 mmap 映射的内存总大小(以千字节为单位)”。但我现在花了近二十个小时搜索 2.6.30.5 内核源代码,试图确认这一说法,但我一直无法这样做——事实上,我看到了一些似乎与其相冲突的东西。

“映射”计数保存在 中global_page_state[NR_FILE_MAPPED]。声明附近的注释NR_FILE_MAPPED说:“页面缓存页面映射到页表。仅从进程上下文进行修改。”

  1. meminfo 的“缓存”主题引用的所有页面不是都有文件支持吗?这是否意味着所有这些页面都必须“映射”?我查看了来自几种不同架构的几十个 meminfo 列表,并且“映射”值始终比“缓存”值小得多。

  2. 在任何给定时间,大部分内存都充满了可执行映像和共享库。查看 /proc/pid/smaps,我发现所有这些都映射到 VMA 中。所有这些都使用 mmap() 映射到内存吗?如果是这样,为什么“映射”这么小?如果它们没有使用 mmap() 映射到内存中,那么它们是如何映射的?调用,由各种依赖于体系结构的页面错误处理程序handle_mm_fault调用,增加“映射”计数,并且它们似乎对与 VMA 关联的任何页面都这样做。get_user_pages

  3. 我研究了一些驱动程序的 mmap() 函数。其中许多函数调用vm_insert_pageremap_vmalloc_range建立它们的映射,并且这些函数确实增加了“映射”计数。但是很多其他驱动程序似乎都调用了remap_pfn_range,据我所知,这不会增加“映射”计数。

linux memory kernel

6
推荐指数
1
解决办法
5437
查看次数

JavaFX 支持滑动滚动吗?

我正处于 Java 应用程序的早期规划阶段,该应用程序将在带有触摸屏的平台上运行,我希望它能够提供您在手机上看到的那种触摸屏支持 - 特别是快速滑动的能力在列表、树或表视图等控件上滑动,使其快速滚动并保持滚动一段时间,即使在滑动结束后也是如此。我研究了一堆 JavaFX 文档,但我仍然不确定是否提供了这种手势支持。谁能证实是这样吗?你能指出示例代码吗?如果没有,谁能建议一种在 Java 中实现这种行为的替代方法?

java javafx

5
推荐指数
1
解决办法
109
查看次数

标签 统计

linux ×2

memory ×2

java ×1

javafx ×1

kernel ×1

mmap ×1