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

linux信号机制


linux信号机制
 
 
信号提供了一种通知进程系统事件发生的机制,它也是作为用户进程之间通信和同步的
一种原始机制。在进程迁移的情况下,如何处理信号呢?这部分介绍了MOSIX系统对信号
机制的处理。
LINUX信号机制
信号是异步的进程间通讯机制,是在软件层次上对中断机制的一种模拟。LINUX内核的信
号机制符合POSIX.4的规定,这是POSIX.1标准的一个超集。
每个进程的task_struct结构中都有个指针sig,指向一个singal_struct结构,结构中的
数组action[]相当于一个信号向量表,每个元素确定了进程接收到一个具体的信号时应
该采取的行动。
struct signal_struct {
    atomic_t        count;
    struct k_sigaction  action[_NSIG];
    spinlock_t      siglock;
};
那么系统如何判断一个进程是否有信号在等待处理呢?这是通过task_struct结构中的si
gpending成员。task_struct结构中的blocked成员则为屏蔽信号的集合,pending成员则
为信号队列,每产生一个信号则把它挂入这个队列,信号位图signal也保存在其中。
用户常常要自己定义对信号的处理程序,并且用户的处理函数是位于用户空间的。LINUX
提供了系统调用signal(sys_signal)和sigaction(sys_sigaction 或sys_rt_sigacti
on)为信号设置处理向量。用户设置信号处理的时机我们是不能确定的,可以在进程迁
移前,也可以在进程迁移之后,进程可以在不同的节点间多次迁移,因此,如何保证信
号不被丢失并且都能被正确处理就很重要。并且我们注意到,进程在迁移时,并不将信
号向量表迁移到目标进程,而只是将进程的异步信号和强制信号信息传送到目标进程【
参见mig_send_misc()和mig_do_receive_misc()】。
struct asig_h
{
    unsigned int sigs;/*信号*/
    int nforced;/*内核发送的强制信号的个数*/
};
struct mosix_task
{。。。。。。。
uint32_t asig;      /*到达REMOTE的信号 */
siginfo_t *forced_sigs; /* REMOTE强制信号信息*/
int nforced_sigs;   /* REMOTE强制信号的个数 */
short sigmig;       /* 迁移时接收的信号 */
}
int  mig_send_misc(int credit)
{ struct mig_misc_h m;
regis


相关文档:

Java Web应用在ARM Linux平台上的实现


0
Java Web应用在ARM Linux平台上的实现
Posted in 硕博论文 at 十一月 12th, 2009 / No Comments »
王伟,周兰江,刘礼东,解云霄
(昆明理工大学信息工程与自动化学院,云南昆明650051)
1引言
随着网络信息技术的飞速发展,Web技术越来越多的用在控制领域,客户端只需连接以太网,取得访问权限,就可以访 ......

Linux 下编译并安装配置 Qt 全过程

Linux 下编译并安装配置 Qt 全过程
        最近准备做 Nokia 的 Symbian,Maemo 下触摸屏开发。考虑到程序的跨平台可移植性,最终选择使用 Qt 开发。相对来说,国内关于 Qt 相关文档并不算很多。作者将 Linux 下编译并安装配置 Qt 全过程总结了一下,只希望可以方便更多的朋友!
&nbs ......

虚拟机下linux上网设置指南

虚拟机下linux上网设置指南
       本文以Fedora为例,例举安装在虚拟机Vmware下linux下IP设置的问题。
       在虚拟机下,点击:Ethernet,如下图:
      
       出现如下对话框:
&n ......

如何在linux环境下搭建CVS服务器

1
、下载源码
  

CVS
的官方网站
cvshome.org
上寻找,由于
CVS
历史上也出现过一些安全漏洞,所以建议要定期去其官方网站上看看有没有最新版本推出。
  
2
、编译安装
  
# tar -xjpvf cvs-1.12.5.tar.bz2
  
# cd cvs-1.12.5
  
# ./configure --prefix=/usr/local/terry_yu/cvs
 
--d ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号