操作系统_实验报告2
github库链接:https://github.com/jrqricky/Hello-World
一、ps命令
要求:打开一个vi进程。通过ps命令以及选择合适的参数,只显示名字为vi的进程。寻找vi进程的父进程,直到init进程为止。记录过程中所有进程的ID和父进程ID。将得到的进程树和由pstree命令的得到的进程树进行比较。
使用ps -f命令逐层查找的进程树路径
使用pstree命令查找的进程树路径
二、fork命令
要求:编写程序,首先使用fork系统调用,创建子进程。在父进程中继续执行空循环操作;在子进程中调用exec打开vi编辑器。然后在另外一个终端中,通过ps –Al命令、ps aux或者top等命令,查看vi进程及其父进程的运行状态,理解每个参数所表达的意义。选择合适的命令参数,对所有进程按照cpu占用率排序。
使用ps -Al命令查询
使用ps aux命令查询
使用top命令排序查询
三、创建进程树
要求:使用fork系统调用,创建如下进程树,并使每个进程输出自己的ID和父进程的ID。观察进程的执行顺序和运行状态的变化。
四、丢失父进程
要求:修改上述进程树中的进程,使得所有进程都循环输出自己的ID和父进程的ID。然后终止p2进程(分别采用kill -9 、自己正常退出exit()、段错误退出),观察p1、p3、p4、p5进程的运行状态和其他相关参数有何改变。
(1)Kill -9 方法
(2)exit(1) 正常退出方法
(3)指针越界段错误退出方法