西 安 邮 电 大 学
(计算机学院)
课内实验报告
实验名称: 进程管理-进程调度
专业名称: 计算机科学与技术 班 级: 计科1501 学生姓名: 赵阳 学号(8位): 05141123 指引教师: 张教师 实验日期: 4月
一. 实验目及实验环境 1.实验目
通过观测、分析实验现象,进一步理解进程及进程在调度执行和内存空间等方面特点,掌握在POSIX 规范中fork和kill系统调用功能和使用。 2.实验环境 (1)硬件
? CPU:I7-6700HQ ? 内存:8G DDR4 2133 ? 显示屏:笔记本显示屏 ? 硬盘空间:80G (2)软件
? 虚拟机名称及版本:非虚拟机 ? 操作系统名称及版本:Ubuntu 16.04 ? 编译器:gcc 二. 实验内容 1、实验前准备工作
学习man 命令用法,通过它查看fork 和kill 系统调用在线协助,并阅读参照资料,学会fork 与kill 用法,复习C 语言有关内容。 2、实验内容
依照下发Linux进程管理实验PPT内容,将实验代码补充完整。并考虑: 先猜想一下这个程序运营成果。如果运营“./process 20”,输出会是什么样?然后按照注释里规定把代码补充完整,运营程序。可以多运营一会儿,并在此期间启动、关闭某些其他进程,看process 输出成果有什么特点,记录下这个成果。开另一种终端窗口,运营“ps aux|grep process”命令,看看process 究竟启动了多少个进程。回到程序执行窗口,按“数字键+回车”尝试杀掉一两个进程,再到另一种窗口看进程状况。按q 退出程序再看进程状况。
3、回答问题
编写、编译、链接、执行实验内容设计中代码,并回答如下问题: 1)你最初以为运营成果会怎么样?
最初以为成果会产生一定数量进程,然后输入数字加回车杀死单个进程,
按下q杀死所有进程。
2) 实际成果什么样?有什么特点?试对产生该现象因素进行分析。
实际成果产生一某些子进程,且数目最多是10个,并且不超过10个,
由于程序设定了子进程数目最大为10。
3) proc_number 这个全局变量在各个子进程里值相似吗?为什么?
不相似,proc_number是每一种进程编号,从0到10。
4) kill 命令在程序中使用了几次?每次作用是什么?执行后现象是什么?
使用了2次,while循环一次,q命令一次,第一次是为了杀死单个进程,
第二次是杀死所有进程,第一次执行后只能杀死单个进程,第二次可以杀死相应进程组内所有进程。
5)使用kill 命令可以在进程外部杀死进程。进程如何能积极退出?这两种退出方式哪种更好某些?
进程积极退出就是进程执行完,到了return语句自行退出,积极退出更
好某些。
6)写出fork()和kill()函数原型,并解释函数功能和参数含义?
#include
fork()函数通过系统调用创立一种与本来进程几乎完全相似进程,也就是两个进程可以做完全相似事,但如果初始参数或者传入变量不同,两个进程也可以做不同事。
#include