分析信号处理机制与中断的异同.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录 摘要 1 1 引言 1 1.1 研究背景 1 1.2 研究目的和意义 1 1.3 主要研究工作 1 2 MINIX信号处理机制 2 2.1 MINIX信号处理基本原理 2 2.2 信号产生的条件 3 2.3 进程对信号的处理 3 3 MINIX中断处理机制 3 3.1硬中断 4 3.2软中断 5 3.3异常 5 4 MINIX信号处理机制与中断的比较 6 4.1信号与中断的相似点 6 4.2信号与中断的区别 6 5 总结 6 致谢 7 参考文献 7 分析信号处理机制与中断的异同 摘要 本文详细说明了MINIX的信号处理机制,以及MINIX的中断机制,包括MINIX的硬中断,软中断和异常。并对信号处理机制和中断处理进行了对比,研究了它们适用的场合。 关键词:MINIX,信号,中断 1 引言 1.1 研究背景 信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和信号有些类似,同时,软中断又是和硬中断相对应的 通过对MINIX系统的信号处理机制和中断机制的分析,更加深入理解MINIX操作系统的设计原理和实现机制。 1.3 主要研究工作 本文主要分析了MINIX信号处理机制和中断处理机制,并对两者进行了比较。 2 MINIX信号处理机制 2.1 MINIX信号处理基本原理 信号是异步的进程间通讯机制,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号被描述成一种信息传递机制,而收到消息的进程未必在等待输入。在系统中定义了一组信号,每个信号都有一个默认的动作,进程可以通过系统调用来改变信号的响应方式,可以请求将一个信号处理函数与某个信号绑定在一起(sigkill除外)。操作系统对信号的处理可以分为三个不同的阶段:准备阶段,此时进程可以去修改它对信号的响应方式;响应阶段,此时信号已经发生,相应的动作也已经被激活执行;清理阶段:一个特殊的系统调用会去清理并恢复收到信号的进程的正常操作。 在MINIX中,信号处理的准备阶段完全由PM处理。因为所有需要的数据结构都位于PM的进程表中。对于每一个进程,都有几个sigset_t变量,这些都是位图,每一个可能的信号由它们中的一个数据位来表示。对于每一个进程,还有一个sigaction结构体数组,每个数组元素代表一个信号,如图1所示: 图1 sigaction结构 在sigaction结构体中,一个变量用于保存用户自定义的信号处理函数的起始地址;另一个sigedt_t类型的变量用于设定被阻塞的信号。 2.2 信号产生的条件 产生信号的条件主要有以下几种: 1. 用户在终端按下某些键时,终端驱动程序会发送信号给前台进程,例如Ctrl-C产生SIGINT信号,Ctrl-/产生 SIGQUIT信号, Ctrl-Z产生SIGTSTP信号。 2. 硬件异常产生信号,这些条件由硬件检测到并通知内核,然后内核向当前进程发送适当的信号。例如当前进程执行了除以0 的指令,CPU 的运算单元会产生异常,内核将这个异常解释为 SIGFPE信号发送给进程。再比如当前进程访问了非法内存地址, MMU会产生异常,内核将这个异常解释为SIGSEGV 信号发送给进程。 3. 一个进程调用kill(2) 函数可以发送信号给另一个进程。 4. 可以用kill(1)命令发送信号给某个进程,kill(1) 命令也是调用kill(2)函数实现的,如果不明确指定信号则发送SIGTERM信号,该信号的默认处理动作是终止进程。 5. 当内核检测到某种软件条件发生时也可以通过信号通知进程,例如闹钟超时产生SIGALRM信号,向读端已关闭的管道写数据时产生SIGPIPE信号。 2.3 进程对信号的处理 进程对信号的处理主要有以下几种: 1. 忽略此信号。 2. 执行该信号的默认处理动作。 3. 提供一个信号处理函数,要求内核在处理该信号时切换到用户态执行这个处理函数,这种方式称为捕捉(Catch )一个信号。 MINIX中断处理机制 中断是计算机内实现任务切换的最根本的原因,它使多任务操作系统成为可能。中断根据产生原因和处理方法的不同大致可分为三类:硬件中断,软中断和异常中断。MINIX中的中断就可分为这三类,当然在其它复杂的操作系统中可能还有其他分法。硬中断为来自硬件的中断,如:键盘输入,硬盘读写,时钟滴答等;软中断就是在程序中直接用汇编指令发起的中断。异常是指在程序代码运行或系统检测时发现的溢出,超界或硬件

文档评论(0)

rsob207 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档