易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux 信号signal处理机制 二

二、信 号 机 制
上 一节中介绍了信号的基本概念,在这一节中,我们将介绍内核如何实现信号机制。即内核如何向一个进程发送信号、进程如何接收一个信号、进程怎样控制自己对信 号的反应、内核在什么时机处理和怎样处理进程收到的信号。还要介绍一下setjmp和longjmp在信号中起到的作用。
1、内核对信号的基本处理方法
内 核给一个进程发送软中断信号的方法,是在进程所在的进程表项的信号域设置对应于该信号的位。这里要补充的是,如果信号发送给一个正在睡眠的进程,那么要看 该进程进入睡眠的优先级,如果进程睡眠在可被中断的优先级上,则唤醒进程;否则仅设置进程表中信号域相应的位,而不唤醒进程。这一点比较重要,因为进程检 查是否收到信号的时机是:一个进程在即将从内核态返回到用户态时;或者,在一个进程要进入或离开一个适当的低调度优先级睡眠状态时。
内核处理一个进程收到的信号的时机是在一个进程从内核态返回用户态时。所以,当一个进程在内核态下运行时,软中断信号并不立即起作用,要等到将返回用户态时才处理。进程只有处理完信号才会返回用户态,进程在用户态下不会有未处理完的信号。
内 核处理一个进程收到的软中断信号是在该进程的上下文中,因此,进程必须处于运行状态。前面介绍概念的时候讲过,处理信号有三种类型:进程接收到信号后退 出;进程忽略该信号;进程收到信号后执行用户设定用系统调用signal的函数。当进程接收到一个它忽略的信号时,进程丢弃该信号,就象没有收到该信号似 的继续运行。如果进程收到一个要捕捉的信号,那么进程从内核态返回用户态时执行用户定义的函数。而且执行用户定义的函数的方法很巧妙,内核是在用户栈上创 建一个新的层,该层中将返回地址的值设置成用户定义的处理函数的地址,这样进程从内核返回弹出栈顶时就返回到用户定义的函数处,从函数返回再弹出栈顶时, 才返回原先进入内核的地方。这样做的原因是用户定义的处理函数不能且不允许在内核态下执行(如果用户定义的函数在内核态下运行的话,用户就可以获得任何权 限)。
在信号的处理方法中有几点特别要引起注意。第一,在一些系统中,当一个进程处理完中断信号返回用户态之前,内核清除用户区中设 定的对该信号的处理例程的地址,即下一次进程对该信号的处理方法又改为默认值,除非在下一次信号到来之前再次使用signal系统调用。这可能会使得进程 在调用signal之前又得到该


相关文档:

Linux学习计划

0 鸟哥的Linux私房菜
1 GNU\Linux编程指南
2 Linux设备驱动开发详解.pdf
3 深入理解linux内核.pdf
4 Linux_内核完全注释_V11.pdf or Linux_内核注释.pdf
5 LINUX内核源代码情景分析\scene(上).pdf and scene(下).pdf
目前已经到Linux设备驱动开发详解.pdf了,而且编译升级内核已经成功,初步编写了简单的模块。 ......

如何开启关闭linux防火墙

如何开启关闭linux防火墙
 
 
  重启后生效
  开启:chkconfig iptables on
  关闭:chkconfig iptables off
  即时生效,重启后失效
  开启:service iptables start
  关闭:service iptables stop
  或
  关闭: /etc/rc.d/init.d/iptables stop
  启动: /etc/rc.d/init.d/ip ......

Linux 下安装jdk

一:安装jdk 我的版本是:jdk-6u10-linux-i586.rpm
安装jdk1.6安装包: rpm -ivh jdk-6u10-linux-i586.rpm
配置环境变量:
1,进入profile文件:vi/etc/profile
2,在文件中添加以下代码:
   export JAVA_HOME = /usr/usr/java/jdk1.6.0_10 --jdk安装目录
   export CALSSPATH = $JAVA_HOM ......

Linux的一些常用服务

ssh connect to Linux
1,检查网络连接是否正常,看看你的机器是否开了22号端口,进程是否运行正常..
2,可以在本机上用SSH命令登陆本机.
#ssh -l yourloginname xxx.xxx.xxx.xxx
其中yourloginname为你本机可远程登录用户名,xxx.xxx.xxx.xxx为你的机器IP,
如果登录提示:
Are you sure you want to continue connecting ( ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号