网络应用程序的设计第4章 进程与信号机制.ppt
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.2 信号的类型及定义 UNIX系统各种信号及功能列于表4-1之中。所有信号 均被罗列在标题文件signal.h中。
第4章 进程与信号机制
表 4-1 UNIX的各种信号及功能
信号名称
SIGALRM SIGBUS SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
说明 计时器到时 总线错 子进程消亡 在SIGSTP 后继续执行 FPE 指令 挂机 非法指令 中断字符
缺省动作 终止 终止并保留磁盘映像 删除 忽略信号 浮点异常 终止 终止并保留磁盘映像 终止
第4章 进程与信号机制
信号名称
SIG IO SIG IO T SIG K ILL SIG PIPE SIG PR O F SIG Q U IT SIG SEG V SIG ST O P SIG T ER M SIG T R A P SIG T ST P SIG T T IN SIG T T O U SIG U R G SIG U SR 1 SIG U SR 2
(2) SIGBUS:由硬件故障错误产生。
(3) SIGCHLD:进程结束时向其父进程发送的信号,
不管是同一台主机上的进程还是异地主机上的进 程间的通信,进程是通信的主体,因此,本章我们讨 论进程、进程类型,以及进程间的通信机制。
第4章 进程与信号机制
4.2 信号
4.2.1 信号的产生 信号在下列五种情况下产生,并向有关进程传送。 (1) 系统调用kill允许一个进程向另一个进程(或其
自身)发一个信号。 int kill(int pid,int sig);
第4章 进程与信号机制
同一主机上,不同进程可用进程号(process ID)惟 一标识,但在网络环境下,各主机独立分配的进程号 不能惟一标识该进程。例如,主机A赋于某进程号105, 在主机B中也可以存在105号进程,因此,105号进程不 能将主机A的105号进程和主机B的105号进程区分开来。 其次,操作系统支持的网络协议众多,不同协议的工 作方式不同,地址格式也不同,因此,网间进程通信 还要解决多重协议的识别问题。
第4章 进程与信号机制
(2) 用kill命令发送信号,该命令是一个程序,它接 收命令行参数后,发出调用kill。上面的传送特性也适 用于此。
(3) 特定的键盘字符能产生信号。例如,每个交互 式终端都有中断字符和退出字符,中断字符CTR_C 终 止正在运行的进程,产生一个信号SIGINT,退出字符 CTR-backspace 终止正在运行的进程,并产生该进程的 存储映像,产生信号IGQUIT。终端挂起字符CTR_Z, 产生信号SIGTSTP。延迟终端挂起字符CTR_Y,当进 程读该字符时产生信号SIGTSTP。
这些由终端产生的信号一般由内核发送给进程, 不只发给正在运行的进程,也发给所有终端控制组中 的进程。
第4章 进程与信号机制
(4) 在陷入处理子程序TRAP中,针对各种故障以 及使用的各种陷入指令产生不同类型的信号,如 SIGEMT为终止并保留存储映像,SIGFPE为浮点算术 错信号。
(5) 某些软件条件也产生信号。例如,一个加急数 据到达管套时,将产生SIGURG信号。
说明 可 能 在 文 件 描 述 符 I/O 执 行 IO 陷 入 指 令 K ILL 指 令 写入管道且无人读 定时器报警 Q IU T 字 符 分段违例 非终端来的停止信号 软件终止信号 跟踪自陷 键盘产生停止信号 后台进程读终端 后台进程写终端 在管套上呈现紧急条件 用户定义信号 1 用户定义信号 2
缺省动作 忽略信号 终止并保留磁盘映像 终止 终止 终止 终止并保留磁盘映像 终止并保留磁盘映像 停止进程 终止 终止并保留磁盘映像 停止进程 停止进程 停止进程 忽略信号 终止 终止
SIG VTA LR M SIG W IN C H SIG X C PU SIG X FSZ
虚拟计时器到时 窗口大小变更 CPU 限 时 超 值 文件大小超限
一个进程不能给任意的进程发信号,发送信号的 进程和接收信号的进程必须具有相同的有效用户标识, 或者发送信号的进程是特权用户。
第4章 进程与信号机制
当变元pid和sig值不同时,kill的信号发送情况如下: ① 若pid=0,则信号发送至发信号进程所在进程组内每 一个进程。
② 若pid=-1,且发信号进程不是特权用户,则信 号发至用户标识符等于发送者的有效用户标识符的所 有进程。 ③ 若pid=-1,且发信号进程是特权用户,则信号发至 除系统进程以外的所有进程。 ④ 若pid < 0,且pid≠1,则信号发至进程组号等于 pid 绝对值的所有进程。 ⑤ 若sig=0,则不发信号,做差错检查。这可用来检测 pid 的有效性。
第4章 进程与信号机制
第4章 进程与信号机制
4.1 概述 4.2 信号 4.3 进程间的关系及相互制约 4.4 守护进程(daemon process) 习题
第4章 进程与信号机制
4.1 概述
进程通信的概念最初来源于单机系统,由于每个进程 都在自己的地址空间内运行,因此为保证两个相互通信的 进程之间既互不干扰又能协调一致地工作,操作系统为进 程通信提供了相应的应用程序接口。例如,UNIX BSD中 的管道(pipe)、命名管道(named pipe)和软中断信号(signal), UNIX system V的消息(message)、共享存储区(shared memory)和信号量(semaphore)等,但这些都仅限于本机进 程之间的通信。网间进程通信要解决的是不同主机进程间 的相互通信问题(同一主机上的进程通信可以看作是其中 的特例)。为此,首先,要解决的是网间进程标识问题。源自终止 忽略信号 终止 终止
第4章 进程与信号机制
(1) SIGALRM:通过调用 alarm 函数设定报警时钟。
unsigned int alarm(unsigned int sec);
变元sec指定产生信号SIGALRM所需秒数,若此 变元为 0,则该进程以前设置的所有报警时钟全部取消, 该信号可以用来设定软件超时。
第4章 进程与信号机制
表 4-1 UNIX的各种信号及功能
信号名称
SIGALRM SIGBUS SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
说明 计时器到时 总线错 子进程消亡 在SIGSTP 后继续执行 FPE 指令 挂机 非法指令 中断字符
缺省动作 终止 终止并保留磁盘映像 删除 忽略信号 浮点异常 终止 终止并保留磁盘映像 终止
第4章 进程与信号机制
信号名称
SIG IO SIG IO T SIG K ILL SIG PIPE SIG PR O F SIG Q U IT SIG SEG V SIG ST O P SIG T ER M SIG T R A P SIG T ST P SIG T T IN SIG T T O U SIG U R G SIG U SR 1 SIG U SR 2
(2) SIGBUS:由硬件故障错误产生。
(3) SIGCHLD:进程结束时向其父进程发送的信号,
不管是同一台主机上的进程还是异地主机上的进 程间的通信,进程是通信的主体,因此,本章我们讨 论进程、进程类型,以及进程间的通信机制。
第4章 进程与信号机制
4.2 信号
4.2.1 信号的产生 信号在下列五种情况下产生,并向有关进程传送。 (1) 系统调用kill允许一个进程向另一个进程(或其
自身)发一个信号。 int kill(int pid,int sig);
第4章 进程与信号机制
同一主机上,不同进程可用进程号(process ID)惟 一标识,但在网络环境下,各主机独立分配的进程号 不能惟一标识该进程。例如,主机A赋于某进程号105, 在主机B中也可以存在105号进程,因此,105号进程不 能将主机A的105号进程和主机B的105号进程区分开来。 其次,操作系统支持的网络协议众多,不同协议的工 作方式不同,地址格式也不同,因此,网间进程通信 还要解决多重协议的识别问题。
第4章 进程与信号机制
(2) 用kill命令发送信号,该命令是一个程序,它接 收命令行参数后,发出调用kill。上面的传送特性也适 用于此。
(3) 特定的键盘字符能产生信号。例如,每个交互 式终端都有中断字符和退出字符,中断字符CTR_C 终 止正在运行的进程,产生一个信号SIGINT,退出字符 CTR-backspace 终止正在运行的进程,并产生该进程的 存储映像,产生信号IGQUIT。终端挂起字符CTR_Z, 产生信号SIGTSTP。延迟终端挂起字符CTR_Y,当进 程读该字符时产生信号SIGTSTP。
这些由终端产生的信号一般由内核发送给进程, 不只发给正在运行的进程,也发给所有终端控制组中 的进程。
第4章 进程与信号机制
(4) 在陷入处理子程序TRAP中,针对各种故障以 及使用的各种陷入指令产生不同类型的信号,如 SIGEMT为终止并保留存储映像,SIGFPE为浮点算术 错信号。
(5) 某些软件条件也产生信号。例如,一个加急数 据到达管套时,将产生SIGURG信号。
说明 可 能 在 文 件 描 述 符 I/O 执 行 IO 陷 入 指 令 K ILL 指 令 写入管道且无人读 定时器报警 Q IU T 字 符 分段违例 非终端来的停止信号 软件终止信号 跟踪自陷 键盘产生停止信号 后台进程读终端 后台进程写终端 在管套上呈现紧急条件 用户定义信号 1 用户定义信号 2
缺省动作 忽略信号 终止并保留磁盘映像 终止 终止 终止 终止并保留磁盘映像 终止并保留磁盘映像 停止进程 终止 终止并保留磁盘映像 停止进程 停止进程 停止进程 忽略信号 终止 终止
SIG VTA LR M SIG W IN C H SIG X C PU SIG X FSZ
虚拟计时器到时 窗口大小变更 CPU 限 时 超 值 文件大小超限
一个进程不能给任意的进程发信号,发送信号的 进程和接收信号的进程必须具有相同的有效用户标识, 或者发送信号的进程是特权用户。
第4章 进程与信号机制
当变元pid和sig值不同时,kill的信号发送情况如下: ① 若pid=0,则信号发送至发信号进程所在进程组内每 一个进程。
② 若pid=-1,且发信号进程不是特权用户,则信 号发至用户标识符等于发送者的有效用户标识符的所 有进程。 ③ 若pid=-1,且发信号进程是特权用户,则信号发至 除系统进程以外的所有进程。 ④ 若pid < 0,且pid≠1,则信号发至进程组号等于 pid 绝对值的所有进程。 ⑤ 若sig=0,则不发信号,做差错检查。这可用来检测 pid 的有效性。
第4章 进程与信号机制
第4章 进程与信号机制
4.1 概述 4.2 信号 4.3 进程间的关系及相互制约 4.4 守护进程(daemon process) 习题
第4章 进程与信号机制
4.1 概述
进程通信的概念最初来源于单机系统,由于每个进程 都在自己的地址空间内运行,因此为保证两个相互通信的 进程之间既互不干扰又能协调一致地工作,操作系统为进 程通信提供了相应的应用程序接口。例如,UNIX BSD中 的管道(pipe)、命名管道(named pipe)和软中断信号(signal), UNIX system V的消息(message)、共享存储区(shared memory)和信号量(semaphore)等,但这些都仅限于本机进 程之间的通信。网间进程通信要解决的是不同主机进程间 的相互通信问题(同一主机上的进程通信可以看作是其中 的特例)。为此,首先,要解决的是网间进程标识问题。源自终止 忽略信号 终止 终止
第4章 进程与信号机制
(1) SIGALRM:通过调用 alarm 函数设定报警时钟。
unsigned int alarm(unsigned int sec);
变元sec指定产生信号SIGALRM所需秒数,若此 变元为 0,则该进程以前设置的所有报警时钟全部取消, 该信号可以用来设定软件超时。