分析信号处理机制与中断的异同.doc_第1页
分析信号处理机制与中断的异同.doc_第2页
分析信号处理机制与中断的异同.doc_第3页
分析信号处理机制与中断的异同.doc_第4页
分析信号处理机制与中断的异同.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录摘要11 引言11.1 研究背景11.2 研究目的和意义11.3 主要研究工作12 MINIX信号处理机制22.1 MINIX信号处理基本原理22.2 信号产生的条件32.3 进程对信号的处理33MINIX中断处理机制33.1硬中断43.2软中断53.3异常54MINIX信号处理机制与中断的比较64.1信号与中断的相似点64.2信号与中断的区别65总结6致谢7参考文献77分析信号处理机制与中断的异同摘要本文详细说明了MINIX的信号处理机制,以及MINIX的中断机制,包括MINIX的硬中断,软中断和异常。并对信号处理机制和中断处理进行了对比,研究了它们适用的场合。关键词:MINIX,信号,中断1 引言1.1 研究背景信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和信号有些类似,同时,软中断又是和硬中断相对应的。1.2 研究目的和意义通过对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 )一个信号。3 MINIX中断处理机制中断是计算机内实现任务切换的最根本的原因,它使多任务操作系统成为可能。中断根据产生原因和处理方法的不同大致可分为三类:硬件中断,软中断和异常中断。MINIX中的中断就可分为这三类,当然在其它复杂的操作系统中可能还有其他分法。硬中断为来自硬件的中断,如:键盘输入,硬盘读写,时钟滴答等;软中断就是在程序中直接用汇编指令发起的中断。异常是指在程序代码运行或系统检测时发现的溢出,超界或硬件与操作系统不匹配等出错情况。3.1硬中断硬中断,就是由硬件引起的中断,就是由于某种原因,某个硬件操作引发中断服务程序,而将它的驱动任务加入到就绪队列或者直接运行的过程。中断硬件的细节与系统相关,由硬件设备产生的中断是一些电信号,它们首先由中断控制器进行处理。使用32位处理器的PC机通常有两片中断控制器芯片,其中每一个可以处理8个输入,但其中有一片为从片,它的输出线连到主片的一条输入线,这样一共可以挂接15个不同的外部设备,如图2所示:图2 一台32位Intel PC上的中断处理硬件该图中,中断信号出现在右侧的IRQn信号线上。连到CPU INT管脚的连接线通知CPU发生了中断。从CPU发出的INTA(中断应答)信号使负责中断的控制器芯片将数据放在系统数据总线上并通知处理器应执行哪个服务例程。3.2软中断软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果,实际上就是由软件来引发任务切换的机制,具体是指程序代码中包含像int n的语句。硬中断是外部设备对CPU的中断,软中断通常是硬中断服务程序对内核的中断,信号则是由内核(或其他进程)对某个进程的中断。图3对硬件中断处理过程和使用软件中断机制的系统调用作了比较。图3 (a)硬件中断的处理过程,(b)系统调用处理过程3.3异常异常是由CPU内部的各种错误引起的,可以把异常分为用户异常和系统异常,也可分成一般异常和严重异常,一般异常指那些确实发生了错误,但系统还是能照常运行的异常;严重异常是指一些严重影响系统的错误,比如硬件损坏,故障或与操作系统不匹配等。异常的处理和中断机制相同,使用中断描述符表中的描述符。该表中的表项指向16个异常处理入口。这些入口从_divide_error开始,以_copr_error结束。根据是否将一个错误码压栈,这些入口分别跳转到exception或errexception。异常导致的结果各不相同,有的被忽略,有的导致系统崩溃,有的导致向进程发生消息。4 MINIX信号处理机制与中断的比较4.1信号与中断的相似点(1) 采用了相同的异步通信方式; (2) 当检测出有信号或中断请求时,都暂停正在执行的程序而转去执行相应的处理程序; (3) 都在处理完毕后返回到原来的断点; (4) 对信号或中断都可进行屏蔽。4.2信号与中断的区别(1) 中断有优先级,而信号没有优先级,所有的信号都是平等的;(2) 信号处理程序是在用户态下运行的,而中断处理程序是在核心态下运行;(3) 中断响应是及时的,而信号响应通常都有较大的时间延迟。5 总结本文详细说明了MINIX的信号处理机制,以及MINIX的中断机制,包括MINIX的硬中断,软中断和异常。并对信号处理机制和中断处理进行了对比。硬中断是外部设备对CPU的中断,软中断通常是硬中断服务程序对内核的中断,信号则是由内核(或其他进程)对某个进程的中断。致谢参考文献1. Andrew S. Tanenbaum, Albert S. Woodhull. Operating Systems Design and Implementation, Thi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论