实验一 程序与进程实验报告

本文由用户“liulanggou422”分享发布 更新时间:2022-04-07 13:53:16 举报文档

以下为《实验一 程序与进程实验报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

实 验 报 告

实验名称: 程序与进程实验

姓名: 王某某

学号: ***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字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《实验一 程序与进程实验报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览