- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8.4.1 Linux物理内存管理 内核函数kfree()用于释放kmalloc()分配的内核空间,其格式如下: void kfree(void *_ptr) 参数ptr是使用kmalloc()分配的内存空间的首地址。该函数把kmalloc()分配物理内存空间全部释放,释放后的空间按照Buddy算法和上述的块单位重新组织成不同的空闲页面块或页面块内的空闲块,交由free_area[ ]数组管理或sizes[ ]数组管理。 8.4.1 Linux物理内存管理 2. 页交换进程和页面换出 当物理页面不够时,Linux存储管理系统必须释放部分物理页面,将它们的内容写到交换空间。实现此项功能的是内核态交换进程kswapd。 Kswapd属于一种特殊的过程,称内核态线程(kernel thread)。但是,kernel thread完全不同于通常意义上的线程。Linux的内核态线程是没有虚拟存储空间的进程,它们运行在内核态中,直接使用物理地址空间。 返回 8.4.2 Linux虚存管理 1. Linux虚存管理的实现 (1)内存映射模块(mmap)。 (2)交换模块(swap)。 (3)核心内存管理模块(core)。 (4)结构特定模块。 8.4.2 Linux虚存管理 2. Linux的内核空间和用户空间 在80386中,线性地址从0GB到4GB,它不是一个物理地址,而是一个虚拟地址。 内核模式和用户模式(1,2,3级)的区别反映在线性地址空间中就是内核空间和用户空间所处的位置不同。 8.4.2 Linux虚存管理 3. Linux虚拟内存的分配与释放 在Linux中,小于128KB的连续物理内存空间可以使用kmalloc()函数分配。当申请存储空间长度大于128KB时,则需要使用vmalloc()函数。由vmalloc()申请的存储空间在虚拟内存中是连续的。但它们映射到物理内存时,不但可以使用不连续的物理页面,而且实际占用的物理页面可以很少,仅把当前访问的部分放在物理页面中,当访问的内容不在物理页面时,再通过换页调入物理内存中。通常把由vmalloc()分配的虚存空间称为虚拟内存块,简称虚存块。 8.4.2 Linux虚存管理 Linux对由vmalloc()分配的所有虚存块使用一个链表来统一管理。 vmalloc()函数定义在mm/vmalloc.c中,其格式如下: void *vmalloc(unsigned long size) 其中参数size,用来指出申请的内存的大小。分配成功后返回值为在虚存空间分配的虚存块首地址,失败则返回0。 vfree()函数同样定义在mm/vmalloc.c中,其格式如下: void vfree(void *addr) vfree()用来释放由vmalloc()分配的虚存块,参数addr是要释放的虚存块的首地址。 8.4.2 Linux虚存管理 4. Linux虚存的保护 (1)多任务及保护 (2)同一任务内的保护 返回 8.4.3 Linux缓冲机制 1.缓冲区高速缓存 2.页高速缓存 3.交换高速缓存 4.硬件高速缓存 返回 8.5 Linux设备管理 8.5.1 Linux设备分类与设备文件 8.5.2 Linux设备驱动程序 8.5.3 Linux的中断 返回 8.5.1 Linux设备分类与设备文件 1.字符设备 字符设备是以字符为单位输入输出数据的设备,并且以字符为单位对设备中的信息进行组织和处理,如键盘、显示器、打印机、绘图仪等都是典型的字符设备。通常对字符设备传送的数据都是顺序处理。在对字符设备I/O过程中,一般不需要使用缓冲区而直接对它进行读
您可能关注的文档
最近下载
- 层析包括吸附层析分配层析离子交换层析亲和层析等 (2).pptx VIP
- 2019主持人大赛总决赛第三轮巅峰对决王嘉宁VS邹韵演讲稿.doc VIP
- 《房屋建筑学》第6章 建筑构造概论.ppt VIP
- 2025年河北省涿州三中学初三九月月考物理试题含解析.doc VIP
- 超星尔雅学习通《通识写作怎样进行学术表达(复旦大学)》章节测试答案.docx VIP
- C++龟兔赛跑代码.docx VIP
- 人教新版英语九年级Unit1-4试卷.doc VIP
- C++书写日历代码.docx VIP
- 食品仓储安全保障措施.docx VIP
- 辽宁省抚顺市新抚区2024-2025学年八年级上学期10月月考语文试题.docx VIP
文档评论(0)