全套PPT电子课件教案-第6章 UNIX系统内核精选.ppt

全套PPT电子课件教案-第6章 UNIX系统内核精选.ppt

  1. 1、本文档共140页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全套PPT电子课件教案-第6章 UNIX系统内核精选

设置用户打开文件表的目的主要有两个:一个是让各个进程掌握它当前使用文件的情况,不要同时打开过多文件;另一个是加速对文件的查找速度。该数组的下标值就是文件描述字fd的值。由fd作索引来访问打开的文件,比直接用文件名查找要快得多。 核心设置系统打开文件表的原因是:一个文件可以被同一进程或不同进程、用相同的或不同的路径名、以相同的或不同的操作要求同时打开。在UNIX中,普通文件是一个无结构的字符流,文件的每次读写都要由一个读写指针指示位置。对于具有父子关系的进程,它们可利用同一读写指针;而对于无父子关系的进程来说,各自要用不同的读写指针。为此,系统在内存开辟了一个系统打开文件表,共100项。 2.打开文件 通常,文件的使用规则是先“打开”,后使用。打开文件的目的就是建立从用户文件管理机构到具体文件的控制块(i节点)之间的一条联络道路。利用这种通路可加速系统对文件的检索、权限验证、读写指针共享等操作,改善文件系统的性能。 打开文件的过程是: ● 按照给定的文件名在目录结构中查找该文件,得到相应的i节点号; ● 检查打开文件的合法性(权限),如权限不对,则不能打开文件; ● 如果该文件没有在活动i节点区中,则为它分配一个活动i节点; ● 在系统打开文件表中分配一项,使它的指针指向该文件的活动i节点; ● 在该进程的用户打开文件表中分配一个空项,使它指向对应的系统打开文件表项; ● 最后返回文件描述字“fd”。 图6-6 利用信号实现进程间通信 表6-1 信号与硬中断的比较 ? 硬中断 信号(软中断) 不 同 点 发生于处理机与外设间,运行于核心态 发生于用户进程间,运行于用户态 需及时处理 接收信号的进程运行时处理,延迟较大 有优先级 平等 依赖于硬件机构的中断装置 依赖于信号(软中断)的发送 相 同 点 ① 都是在异步方式在不同实体间通信,查询后判断有无中断; ② 处理步骤相似(保护CPU现场,转中断处理程序,完成后恢复CPU现场,返回断点); ③ 都是可屏蔽的 信号处理机构是系统中围绕信号的产生、传送和处理而构成的一套机构。该机构通常包括三部分: (1) 信号的分类、产生和传送; (2) 对各种信号预先规定的处理方式; (3) 信号的检测和处理。 通常信号可分为进程终止、进程执行异常(如地址越界、写只读区、用户执行特权指令或硬件错误)、系统调用出错(如所用系统调用不存在、pipe文件有写者无读者等)、报警信号等。系统一般也给用户留出自己定义信号的编号。 当发生上述事件后,系统可以产生信号并向有关进程传送。进程彼此间可用系统提供的系统调用(如System V中的kill)发送信号。信号要记入接收进程的proc中,以备接收进程调度运行时检测和处理。 进程接到信号后,在一定时机(如中断处理末尾)作相应处理。可有三种处理方式:接收进程终止(往往是在用户态运行时出现了故障)、忽略信号或者执行相应处理程序。 信号机构为进程间实现预定的相互控制提供了一种可行方式,UNIX中父进程对子进程的跟踪处理机构是在此基础上扩充而成的。当然,信号机构也增加了系统的复杂性。 3.管道 管道(Pipe)是UNIX对OS的重要贡献之一。本质上,管道是一个单向的、先进先出的共享文件。写进程在管道的尾端写入数据,读进程从管道的首端读出数据。数据读出后,从管道移走,其它读进程不能再读到这些数据。进程试图读空管道时被阻塞。同样,管道已经写满时,进程想写入数据时亦将被阻塞。图6-7示意了通过管道的数据流。 1) 管道的类型 管道有两种类型,一种是pipe,称无名管道,用于同父的两个子进程之间传递较大量的信息。另一种是命名管道,也称为有名管道,用于实现不同父进程之间的数据传递。 图6-7 通信管道的数据流 2) 管道的建立与读写 无名管道与有名管道的建立方法不同。进程通过系统调用pipe建立无名管道,此进程的子进程就可对此管道进行读写共享。 系统调用pipe(fdp)中的fdp为整型数组指针,包含分别用于管道读写的两个文件描述字fd。核心创建管道时,为管道分配一个i节点、一对文件描述字和相应的系统打开文件表项(一个用来从管道读,一个用来向管道写),进程不必知道它们读/写的是普通文件还是管道。 一个命名管道是一个文件,语义上和无名管道一样。但这个文件有目

文档评论(0)

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

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

1亿VIP精品文档

相关文档