8.9
【答案】
进程对 | 并发? |
AB | 否 |
AC | 是 |
AD | 是 |
BC | 是 |
BD | 是 |
CD | 是 |
【解释】时间有重叠部分
8.10
【答案】
setjmp:C
longjmp:B
execve:B
fork:A
8.11
【答案】
4行
【解释】
8.12
【答案】
8行
【解释】
8.13
【答案】
4,3,2
【解释】共三种情况:432,423,243
8.14
【答案】
3
【解释】
8.15
【答案】
5行
【解释】
8.16
【答案】
2
【解释】
子进程并不会影响父进程的数值
8.17
【答案】
Hello 0 1 Bye 2 Bye
Hello 1 0 Bye 2 Bye
Hello 1 Bye 0 2 Bye
【解释】
就是对进程图拓扑排序的所有输出序列。
8.18
【答案】
ACE
【解释】
两个2必须保证一个前面有1,另一个前面有0
8.19
【答案】
2^n
【解释】
每循环一次分裂成两个进程,循环n次,共2^n个进程。
8.20
【答案】
#include <stdio.h>
#include "csapp.h"
int main(int argc, char* argv[], char* env[]) {
if (execve("/bin/ls", argv, env) == -1) {
fprintf(stderr, "execve error: %s\n", strerror(errno));
exit(1);
}
}
8.21
【答案】
abc或者bac
【解释】
8.23
【答案】
不可以用信号来对其他进程中发生的事件计数,因为在处理程序处理第一个信号时,第二个信号添加进待处理信号集合,后面的信号就全部丢弃了。