操作系统——实验二

1、打开一个vi进程。通过ps命令以及选择合适的参数,只显示名字为vi的进程。寻找vi进程的父进程,直到init进程为止。记录过程中所有进程的ID和父进程ID。将得到的进程树和由pstree命令的得到的进程树进行比较。

答:

(1)打开一个终端,执行vi。

(2)打开另一个终端,执行ps -a,可以看到PID为6331的进程为vi。

(3)执行ps -lax,寻找PID为6331的一行,PPID为6320,即父进程的PID。

(4)输入ps -ef|grep 6320,追踪进程,6331-6320-6306-3232-1968-1507-1。

(5)输入pstree -p,查看进程树。我们可以发现经过比较,两者相同。


2、编写程序,首先使用fork系统调用,创建子进程。在父进程中继续执行空循环操作;在子进程中调用exec打开vi编辑器。然后在另外一个终端中,通过ps –Al命令、ps aux或者top等命令,查看vi进程及其父进程的运行状态,理解每个参数所表达的意义。选择合适的命令参数,对所有进程按照cpu占用率排序。

答:

(1)编写1.c。编译执行。

(2)创建另一个终端,输入ps aux查看。USER指用户名,PID是进程号,%CPU是进程CPU使用率,%MEM是进程内存使用率,VSZ是总虚拟内存大小,RSS是进程使用总物理内存大小,TTY是终端的次要装置号码,STAT是进程的状态,START是进程开始时间,COMMAND是此进程的命令。输入ps -aux|sort -k3,3nr 对所有进程按照cpu占用率排序。

3、使用fork系统调用,创建如下进程树,并使每个进程输出自己的ID和父进程的ID。观察进程的执行顺序和运行状态的变化。

答:

(1)编写2.c,编译执行。可以看到p1进程的ID号为15627;P2进程的ID号为15628,其父进程为15627,即p1;P3进程的ID号为15629,其父进程为15627,即p1;P4进程的ID号为15630,其父进程为15628,即p2;P5进程的ID号为15631,其父进程为15628,即p2;

4、修改上述进程树中的进程,使得所有进程都循环输出自己的ID和父进程的ID。然后终止p2进程(分别采用kill -9 、自己正常退出exit()、段错误退出),观察p1、p3、p4、p5进程的运行状态和其他相关参数有何改变。

(1)编写循环并用kill -9结束p2进程。可以看到p2

代码连接:BJTU_operating-system-lesson/Lab2 at master · Jerlllly/BJTU_operating-system-lesson · GitHub

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1月4日,茅店子村组织部分党员、社长、和贫困户代表一行46人,前往高楼镇三河村不知火种植实训基地参观学习。第一书记...
    徐蔚阅读 1,690评论 0 0
  • 大家好,今天小编的分享主题是麦闹!产线布局的原则 产线布局是一个高深的学问,通常企业在架构产线的初期,一般是透过具...
    东坡道阅读 3,730评论 0 1
  • 徐尧章,常山球川东山人,曾任国子监学录。子徐晔,元贡士。 《县志》:徐尧章,国子学录。乱弃归东山,筑轩以居,名岁寒...
    莲子风父抱石人阅读 3,229评论 0 0
  • 如果选择与某人相处一辈子, 我愿意去选择一个有许多故事的人。 这样两个人彼此分享彼此的故事就可以度过漫长的一辈子了。
    梨梨梨梨梨黑心梨阅读 994评论 0 0