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
相关文档:
0
Java Web应用在ARM Linux平台上的实现
Posted in 硕博论文 at 十一月 12th, 2009 / No Comments »
王伟,周兰江,刘礼东,解云霄
(昆明理工大学信息工程与自动化学院,云南昆明650051)
1引言
随着网络信息技术的飞速发展,Web技术越来越多的用在控制领域,客户端只需连接以太网,取得访问权限,就可以访 ......
Linux 下编译并安装配置 Qt 全过程
最近准备做 Nokia 的 Symbian,Maemo 下触摸屏开发。考虑到程序的跨平台可移植性,最终选择使用 Qt 开发。相对来说,国内关于 Qt 相关文档并不算很多。作者将 Linux 下编译并安装配置 Qt 全过程总结了一下,只希望可以方便更多的朋友!
&nbs ......
虚拟机下linux上网设置指南
本文以Fedora为例,例举安装在虚拟机Vmware下linux下IP设置的问题。
在虚拟机下,点击:Ethernet,如下图:
出现如下对话框:
&n ......
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 ......