0.“开两个终端窗口”
因为学校用的虚拟机,得用终端登录,不能像shell一样直接复制窗口。
我们只需要登录两次就可以了(方便监视)
1.ps
1.循环ps
while :;do ps -f;ps -ef|grep zombie;done
每秒打印一次:
while :;do ps -f;ps -ef|grep zombie;sleep1;done
一个非常完美的监视打印:
while :;do ps axj | head -1 && ps axj | grep zombie | grep -v grep; sleep 1 ; echo "-------------"; done
说明:
1.head -1:
head -1
是一个命令行指令,用于从输入中提取第一行内容。它将从标准输入或指定的文件中读取内容,并只输出第一行。
2.grep -v 可以删去后面指定名字的进程(因为grep也是进程)
3.echo 就是输出分隔符,更美观
细节:
1.axj 比 -f 额外包括系统守护进程信息
2.-f 和 -ef的区别:-ef会打印所有用户的进程:
2.二叉树子进程题的提示代码
(题:)
编例实现创建n=2d-2个子进程P1,P2,…,Pn,其中,d是树的深度且d>=1, P1和P2是调用进程的子进程,P3和P4是P1的子进程,P5和P6是P2的子进程。也就是各进程之间的关系是:Pi是P2i+1和P2i+2的父进程,也是组成二叉树的关系,如下图所示。请将各进程的ID及其父进程ID打印出来。参考运行结果如下。 要求:(1)每个父进程都要等待子进程(如果有)退出后才能退出;(2)d通过命令行参数传入;(3)附上源代码截图和运行结果截图。(10分)
(提示,有的只有父进程走,有的只有子进程走)
3.管道——左边的输出是右边的输入
当数据通过管道传递时,它会按照字节流的方式进行传输。管道会将一个程序的输出直接作为下一个程序的输入。