linux教程 第08课_内存和设备管理.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.4 内 存 管 理 操作系统常用的内存管理方式: 单一分配方式 分区式分配方式 页式分配方式 段式分配方式 Linux系统采用了虚拟内存管理机制,就是交换和请求分页存储管理技术 5.4.1 请求分页机制 1.分页概念 逻辑空间分页 内存空间分页 页面和内存块的大小是由硬件确定的 逻辑地址表示 内存分配原则 页表 2.请求分页的基本思想 请求分页提供虚拟存储器 在每一个页表项中增加一个状态位表示一个页面是否已装入内存块 如果地址转换机构遇到一个具有N状态的页表项时,便产生一个缺页中断 3.Linux的多级页表 Linux进程的虚存空间 Linux系统采用三级页表的方式 4.内存页的分配与释放 Linux系统采用两种方法来管理内存页:位图和链表 页组中内存页的数量依次按2的倍数递增 5.4.2 内存交换 内核的交换守护进程kswapd :有自己的进程控制块task_struct结构,它与其他进程一样受内核的调度。但是,它没有自己独立的地址空间,只使用系统空间,所以也把它称为线程。它的任务就是保证系统中有足够的空闲内存页。 当系统启动时,交换守护进程由内核的init(初始化)进程启动。被定时唤醒 。 所做的工作主要分为两部分:将若干不常用的活跃内存页面变为不活跃状态;清理不活跃的“脏”页面,或者回收一些内存页,使之成为空闲的内存页。 作为交换空间的交换文件实际就是普通文件,但它们所占的磁盘空间必须是连续的 7.5 内 存 管 理 #include stdlib.h void *malloc(size_t size); #include stdlib.h void *calloc(size_t nmemb, size_t size); #include stdlib.h void *realloc(void *ptr, size_t size); #include stdlib.h void free(void *ptr); 5.6 设 备 管 理 5.6.1 设备管理概述 所有设备都作为特别文件,从而在管理上就具有下列共性: (1)每个设备都对应文件系统中的一个索引节点,都有一个文件名。 (2)应用程序通常可以通过系统调用open( )打开设备文件,建立起与目标设备的连接。 (3)对设备的使用类似于对文件的存取。 (4)设备驱动程序是系统内核的一部分,它们必须为系统内核或者它们的子系统提供标准的接口。 (5)设备驱动程序利用一些标准的内核服务,如内存分配等。另外,大多数Linux设备驱动程序都可以在需要时装入内核,不需要时卸载下来。 5.6.2 设备驱动程序和内核之间的接口 1.可安装模块 可安装模块是可以在系统运行时动态地安装和拆卸的内核模块,即经过编译但尚未连接的目标文件(后缀为.o)。 设备驱动程序或者与设备驱动紧密相关的部分(如文件系统)都是利用可安装模块实现的。 在通常情况下,用户利用系统提供的插入模块工具和移走模块工具来装卸可安装模块。 2.字符设备 用户对字符设备的使用就和存取普通文件一样。在应用程序中使用标准的系统调用来打开、关闭、读写字符设备。 3.块设备 对块设备的存取与对文件的存取方式一样,其实现机制也与字符设备使用的机制相同。 设备驱动与文件系统的关系 设备号 设备文件 设备文件 设备驱动基础 一、设备驱动中的关键数据结构 二、设备驱动程序框架 三、实现各部分需要的基本函数 字符设备表 字符设备表 三、实现各部分需要的基本函数 三、实现各部分需要的基本函数 三、实现各部分需要的基本函数 三、实现各部分需要的基本函数 四、一个简单的字符设备驱动程序 二、一个简单的字符设备驱动程序 二、一个简单的字符设备驱动程序 二、一个简单的字符设备驱动程序 二、一个简单的字符设备驱动程序 二、一个简单的字符设备驱动程序 二、一个简单的字符设备驱动程序 5.7 中断、异常和系统调用 5.7.1 中断处理 1.中断响应 一般说来,中断响应顺序执行下述三步动作:   (1)中止当前程序的执行;   (2)保存原程序的断点信息(主要是程序计数器PC和程序状态寄存器PS的内容);   (3)从中断控制器取出中断向量,转到相应的处理程序。 2.中断处理 核心对中断处理的顺序主要由以下动作完成: ⑴ 保存正在运行进程的各寄存器的内容,把它们放入核 心栈的新帧面中。 ⑵ 确定“中断源”或者核查中断发生,识别中断的类型(如时钟中断或者是盘中断)和中断的设备号(如哪个磁盘引起的中断)。系统接到中断后,就从机器那里得到一个中断号,它是检索中断向量表的位移。中断向量因机器而异,但通常都包

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档