第一次实验-12281201-孙杨威.doc

第一次实验-12281201-孙杨威.doc

ID:28818240

大小:731.00 KB

页数:10页

时间:2018-12-14

第一次实验-12281201-孙杨威.doc_第1页
第一次实验-12281201-孙杨威.doc_第2页
第一次实验-12281201-孙杨威.doc_第3页
第一次实验-12281201-孙杨威.doc_第4页
第一次实验-12281201-孙杨威.doc_第5页
资源描述:

《第一次实验-12281201-孙杨威.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验一进程管理计科1202班孙杨威12281201一.实验目的l加深对进程概念的理解,明确进程和程序的区别;l掌握Linux系统中的进程创建,管理和删除操作;l熟悉使用Linux下的软件开发工具,如gcc。二.实验任务1.在一个终端中启动vi文本编辑器。在另外一个终端中,通过选择合适的开关运行ps命令,查看vi进程的运行参数,试说明显示的每个参数所表达的意义。2.通过ps命令,寻找vi进程的父进程,直到根进程为止。记录过程中所有祖先进程ID和名称。将得到的进程树和由pstree命令的得到的进程树进行比较。3.使用getpid、getppid系统调用,输出当前进

2、程的ID和其父进程的ID。4.使用exec系统调用,打开vi编辑器。5.使用fork系统调用,创建如下进程树,并使每个进程循环输出自己的ID和父进程的ID。6.在上述进程树中,用命令终止p2进程,观察p1、p3、p4进程的运行参数有何变化。7.试设置exec()调用失败的一个例子,并输出错误信息。二.实验过程(1)实验一在一个终端中启动vi文本编辑器。在另外一个终端中,通过选择合适的开关运行ps命令,查看vi进程的运行参数,试说明显示的每个参数所表达的意义。1.打开一个新的终端,输入vi,按回车,开启一个新的进程,显示结果如下:2.打开另一个终端,用于ps命令

3、:1.输入ps-A命令,查看所有进程的ID,如下图可以看到,第一步打开的vi编辑器的id是3452;输入ps-p3452,查看CPU的运行时间输入ps-lax查看进程号为3452的进程所有信息,如下图:UID是用户号,为3452;PID就是vi进程的进程号,为3452,PPID就是vi进程的父进程号,为3412;PRI是内核调度优先级,为20;NI是进程优先级,为缺省值0;VSZ是总虚拟内存大小,以byte计;RSS是进程使用的总物理内存数,以Kbytes计;STAT是进程状态,属于静止状态;TTY是终端的次要装置号码;TIME为使用cpu的时间;(1)实验二

4、通过ps命令,寻找vi进程的父进程,直到根进程为止。记录过程中所有祖先进程ID和名称。将得到的进程树和由pstree命令的得到的进程树进行比较。1.利用grep命令搜索其父进程,直到找到进程号为1为止可以看到搜索父进程顺序为:3452——>3412——>3405——>2645——>2194——>1516——>1输入命令pstree-p查看进程树:发现两种方式所得结果一样(1)实验三使用getpid、getppid系统调用,输出当前进程的ID和其父进程的ID。c代码如下:#includeintmain(){printf("currentprog

5、ress:");printf("%d",getpid());printf("parentprogress:");printf("%d",getppid());}运行结果如图:(1)实验四使用exec系统调用,打开vi编辑器。C++代码如下:#include#include"cstdio"#include"sys/types.h"#include"unistd.h"usingnamespacestd;intmain(){intres=execl("/usr/bin/vi","vi",NULL);if(res==-1)perror("e

6、xecl");return0;}运行结果:(1)实验五使用fork系统调用,创建如下进程树,并使每个进程循环输出自己的ID和父进程的ID。C代码如下:#include"stdio.h"#include"sys/types.h"#include"unistd.h"#include"stdlib.h"#defineHASPRO-10intmain(){pid_tp1,p2,p3,p4;intcnt=0;while((p1=fork())==-1);if(!p1){while((p2=fork())==-1);if(!p2){while((p3=fork())==-

7、1);if(!p3){while(1){printf("Nodep3isp2'schildwithpid%d,it'sparentpid%d.",getpid(),getppid());//wait(0);}}else{while((p4=fork())==-1);if(!p4){while(1){printf("Nodep4isp2'schildwithpid%d,it'sparentpid%d.",getpid(),getppid());//wait(0);}}else{;}}while(1){printf("Nodep2isp1'schildwi

8、thpid%d,it'sparentp

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。