以下为《实验一 程序与进程实验报告》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
实 验 报 告
实验名称: 程序与进程实验
姓名: 王某某
学号: ***0405
班级: 19软件4班
实验一 程序与进程
一、实验目的:
1.理解进程定义:进程是一个程序的一次执行的过程,同时也是资源分配的最小单元。
程序与进程的区别:程序是静态的,是一些指令的有序集合。进程是动态的,是程序的执行过程,包括动态创建、调度和消亡的整个过程。一个程序可以被执行多次,可以对应多个进程。
2.理解进程状态:进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态:运行态、就绪态、阻塞态。实际操作系统中都超过三种状态,例如Linux操作系统中一般有6种状态。
3.掌握创建进程的函数。fork()通过复制调用进程来创建一个新进程。称为子进程的新进程是精确的调用过程的副本,称为父进程,但以下几点除外:
子进程有自己唯一的进程ID,而这个PID与任何现有进程组的ID都不匹配
子进程的父进程ID与父进程ID相同。
返回值:
如果成功,则在父进程中返回子进程的PID,在子进程中返回0。
在失败时,-1是在父进程中返回,没有创建子进程,并且正确
二、实验内容:
1. 使用各种系统命令查看进程的相关信息。
2. 使用进程的创建函数、退出函数
三、实验步骤:
1. 使用各种系统命令查看进程的相关信息。
第1步 感受进程的存在,观察进程的状态。
截图 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 式提供应用程序访问系统内核数据的操作接口。Proc动态地从系统内核读出所需要信息并提交给应用程序。
(1)运行/home/tarena/pstest文件,打开另一个终端观察ls /proc中有一个它的进程号文件夹。
截图:
(2)如果使用kill杀死pstest对应的进程,则/proc下对应的进程号文件夹也消失
截图:
(3)cat /proc/self/status 查看系统当前进行状态,状态信息非常的多,相当于是进程控制块PCB的内容。
截图:
2. 使用进程的创建函数、退出函数
第1步,使用fork创建子进程,验证子进程是父进程的副本,执行相同的操作。
(1)编写源代码(文本):
(2)编译测试结果截图
(3)结论文字描述
第2步,如果在程序中调用2次fork函数,输出结果几次呢?如果在程序中调用3次fork函数,输出结果几次呢?如果在程序中调用4次fork函数,输出结果几次呢?如果在程序中调用5次fork函数,输出结果几次呢?有规律吗?可以总结公式吗?
(1)编写源代码(文本):
(2)编译测试结果截图
(3)结论文字描述
第3步, 根据返回值让父进程和子进程做不一样的事情。
(1)编写源代码(文本):
(2)编译测试结果截图
(3)结论文字描述
第4步,在父进程中调用wait函数,让父进程等待子进程结束,并回收子进程资源。
(1)编写源代码(文本):
(2)编译测试结果截图
(3)结论文字描述
四、心得总结
感觉还有很多的地方不是很理解,还要更加深入的区学习
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《实验一 程序与进程实验报告》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。