一、填空题
1.信号的产生是一个异步事件,从信号产生到信号递达进程需要一定时间,而在这入过程中,会因为各种原因使信号处于不同的状态。Linux 系统中信号可能发生的状态有:发送状态、 、 、 和处理状态。
2.信号递达进程后才可能被处理,信号的处理方式有三种,分别为: 、
和 。
3.kil( )函数的参数pid有4种取值,每种取值代表不同的含义。若pid<-1,则表示 。
4.若第一次调用alarm()函数时参数为5,3秒后再次调用alarm()函数并传人参数1.则第二次调用alarm()函数时,函数的返回值为 。
5.在进程的PCB中,存在两个信号集,一个称为 ,另一个称为 。 这两个信号集的实质都是位图,其中的每一位对应一个信号。
二、判断题
1.信号既可发送给前台进程,也可发送给后台进程。( )
2.在程序中可以通过signal()函数向进程发送指定信号。( )
3,使用信号可实现进程同步。( )
4.signal()函数和sigaction()函数分别用于发送信号和捕获信号。( )
5.因设备或系统出现不恰当的执行时序而得到不正确结果的现象称为时序竞态。( )
三、单选题
1.下列那个选项不属于进程对信号的响应方式? ( )
A.忽略信号 B.捕获信号
C.保存信号 D. 执行信号默认动作
2. 下列哪个信号不能被进程屏蔽和捕获? ( )
A. SIGINT B. SIGQUIT C. SIGCHLD D. SIGSTOP
3.下列哪个选项不是Linux系统中信号的状态? ( )
A.阻塞状态 B.睡眠状态 C.未决状态 D递达状态
4. 使用快捷键组合CtrI+\会发送哪个信号到前台进程? ( )
A. SIGCHLD B. SIGINT C. SIGQUIT D. SIGSTP
5. 下列哪个选项不能产生信号? ( )
A. read() B. alarm() C. kill() D. kill
四、简答题
1.简单说明Linux系统中信号的处理方式。
2.kill()函数的参数有两个,分别为pid和sig,其中pid表示接收信号的进程的pid.简单说明该参数的取值,以及每种取值所代表的含义。
五、编程题
编写程序,在程序中创建一个子进程,并通过信号实现父子进程交替计数功能。