本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 811|回复: 0
打印 上一主题 下一主题

【兰州GDG】UNIX系统接口—存储程序分配

[复制链接]
跳转到指定楼层
1#
发表于 2014-12-14 11:36:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

时间:20141213号下午7:00——9:00
地点:兰州大学飞云楼524
参加人数:33
Unix的传奇历史是整个计算机世界文化最具代表性的,今天我们邀请到兰州GDG成员杨虎斌围绕UNIX系统接口的知识讲解该系统中的关于动态内存分配及系统调用。
首先杨虎斌对union结构体的内存占用和分配和特点进行了讲解,特别是不同类型在union结构体中字节对齐。
然后对malloc库函数机制进行了细致讲解,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。原型为extern void *malloc
接下来,在讲解系统调用的过程中进行了生动的讨论交流,陈玉聪简单的介绍了在操作系统中malloc的具体实现,先是在用户区分配虚拟空间,在对引用进行操作时抛出do_page_fault异常然后分配物理空间。
最后对sbrc系统调用进行了讲解,在<128kB的一般内存分配时,使用kmalloc
>128kB的内存分配时,使用get_free_pages,获取成片页面,直接返回虚拟地址(<4M)(alloc_pages + page_address)
如果要求分配高端内存:alloc_pages(_GFP_HIGHMEM)+kmap(仅能映射一个页面)
如果不要求内存连续: 则使用vmalloc进行分配逻辑连续的大块页面.(不建议)/分配速度较慢,访问速率较慢。
活动的最后,他总结了今天的报告并耐心解答了大家的疑问,最后听众和主讲人合影留念。

活动照片:



ChinaGDG.com
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表