Android Study -- pmem driver代码分析 | |
|
|
来源: ChinaUnix博客 日期:2009.04.21 17:35 (共有条评论) 我要评论 | |
Android会使用Linux中的pmem driver进行内存分配。 通过代码的阅读,分配的关系我做了张简单的图。 说明: 1. pmem_probe A. 获得设备的内存空间,包括物理地址和大小 B. 对空间的管理模块进行初始化,分区域 C. 对空间进行ioremap2. pmem_open A. 创建新的pmem_data结构 B. 并使之与pmem[]建立链表关系 3. pmem_mmap A. 根据mmap大小的需求,重新调整空间的管理模块。并从device中获得需要的空间 B. 为获得的区域重新建立页表 C. 如果是CONNECTED状态,需要对每个子区域从新建立页表 4. ioctl: PMEM_MAP A. 确保map的可行性,获得map请求的区域 B. 创建新的region_node,将获得的区域信息保存到region_node中 C. 并与region_list建立链表关系 5. ioctl: PMEM_UNMAP A. 从region_list移除请求的区域 B. 释放页表 6. ioctl: PMEM_CONNECT A. 链接需要被connected的文件到当前文件。相当于两个文件映射到同一块区域。 7. ioctl: PMEM_ALLOCATE A. 根据allocate大小的需求,重新调整空间的管理模块。并从device中获得需要的空间 下图例子,是pmem定义8M空间,而Android需要获得1M空间的状况。 |
详细解决方案
Android Study -- pmem driver代码分析
热度:45 发布时间:2024-01-06 08:00:20.0
相关解决方案
- 请问registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister
- !使用JDNI时,报 Cannot create JDBC driver of class '' for connect URL 'null'
- Could not load JDBC driver class 咋回事
- Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'解决方法
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- android RadioButton如何设置默认选中
- android 怎么重新设置锚点
- android 图片对象获取的有关问题
- android 关于服务连接的疑义
- android 怎么实现对view的放大和缩小
- 为什么虚拟串口安装了不能用 显示“Unable loading system driver ,the application will be eixt.”解决办法
- android ID,该如何处理
- 准备复习2-3个月,看java+android,请问有经验者,怎么看效果最好》
- android UI线程与AsyncTask的有关问题
- android(java) 中文乱码的有关问题
- 数据库驱动程序oracle.jdbc.driver.OracleDriver,该怎么处理
- 数据库驱动程序oracle.jdbc.driver.OracleDriver解决方案
- 求教~ [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1,该如何解决
- ASP程序出现如下异常怎么解决?[Microsoft][ODBC Visual FoxPro Driver]SQL: Out of memory
- android 动态设立控件高度
- Android test project 编译方法
- android 4.03启动出错,显示"Encryption Unsuccessful"该如何解决
- Android 下面的listView的动态效果怎么实现的?求源代码,多谢
- Android?Palm?Symbian?Windows Mobile?学哪个有“钱图”?解决方案
- Android 开发语言,该怎么解决