- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.
进程软中断通信
【预备知识】
进程软中断通信涉及的系统调用描述如下。
1 .kill()
进程用 kill() 向一个进程或一组进程发送一个信号。系统调用格式为 int kill(pid,sig) 。其
中, pid 是一个或一组进程的标识符, sig 是要发送的软中断信号。信号的发送分如下三种
情况。
pid0 时,核心将信号发送给进程 pid 。
pid=0 时,核心将信号发送给与发送进程同组的所用进程。
pid=-1 时,核心将信号发送给所有用户标识符真正等于发送进程的有效用户标识号的
进程。
2.signal(sig,function)
接收信号的程序用 signal() 来实现对处理方式的预置,允许调用进程控制软中断信号。
系统调用格式为 signal(sig function) ,此时需包含头文件 signal.h 。其中, sig 用于指定信
号的类型, sig 为 0 则表示没有收到任何信号,其余类型如表所示。
调用函数使用如下头文件:
#includesignal.h
参数定义如下:
signal (sig,function)
int sig;
void(*func) ();
function 是该进程中的一个函数地址,在核心返回用户态时,它以软中断信号的序号
作为参数调用该函数,对除了信号 SIGKILL、SIGTRAP 和 SIGPWR 以外的信号,核心自动
重新设置软中断信号处理程序的值为 SIG_DFL ,进程不能捕获 SIGKILL 信号。
function 的解释如下:
(1)function=1 时,进程对 sig 类信号不做任何处理便立即返回, 亦即屏蔽该类型号。
(2 )function=0 时,默认值,进程收到 sig 信号后终止自己。
(3 )function 为非 0 、非 1 类整数时,执行用户设置的软中断处理程序。
Word 资料
.
信号的类型
值 名字 说明
01 SIGHUP 挂起( hangup )
02 SIGINT 中断,当用户从键盘按“ ^c ”键或“ ^break ”键时
03 SIGQUIT 退出,当用户从键盘按“ quit “键时
04 SIGILL 非法指令
05 SIGTRAP 跟踪陷阱( trace trap )
06 SIGIOT IOT 指令
07 SIGEMT EMT 指令
08 SIGFPE 浮点运算溢出
09 SIGKILL 终止进程
10 SIGBUS 总线错误
11 SIGSEGV 段违例,进程试图去访问其虚地址空间以外的位置
12
文档评论(0)