ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:456KB ,
资源ID:1979749      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1979749.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(西安邮电大学_操作系统_进程管理-进程调度_实验报告.docx)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

西安邮电大学_操作系统_进程管理-进程调度_实验报告.docx

1、西 安 邮 电 大 学(计算机学院)课内实验报告实验名称:进程管理-进程调度专业名称:计算机科学与技术班级: 计科1501学生姓名:赵阳学号(8位):05141123指导教师:张老师实验日期: 2016年4月一. 实验目的及实验环境1. 实验目的通过观察、分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在POSIX 规范中fork和kill系统调用的功能和使用。2. 实验环境(1) 硬件 CPU:I7-6700HQ 内存:8G DDR4 2133 显示器:笔记本显示器 硬盘空间:80G(2) 软件 虚拟机名称及版本:非虚拟机 操作系统名称及版本:Ubuntu 16.04

2、编译器:gcc二. 实验内容1、实验前准备工作学习man 命令的用法,通过它查看fork 和kill 系统调用的在线帮助,并阅读参考资料,学会fork 与kill 的用法,复习C 语言的相关内容。2、实验内容根据下发的Linux进程管理实验PPT内容,将实验代码补充完整。并考虑: 先猜想一下这个程序的运行结果。假如运行“./process20”,输出会是什么样?然后按照注释里的要求把代码补充完整,运行程序。可以多运行一会儿,并在此期间启动、关闭一些其它进程,看process的输出结果有什么特点,记录下这个结果。开另一个终端窗口,运行“ps aux|grepprocess”命令,看看proces

3、s究竟启动了多少个进程。回到程序执行窗口,按“数字键+回车”尝试杀掉一两个进程,再到另一个窗口看进程状况。按q 退出程序再看进程情况。3、回答问题编写、编译、链接、执行实验内容设计中的代码,并回答如下问题:1) 你最初认为运行结果会怎么样?最初认为结果会产生一定数量的进程,然后输入数字加回车杀死单个进程,按下q杀死全部进程。2) 实际的结果什么样?有什么特点?试对产生该现象的原因进行分析。实际结果产生一部分子进程,且数目最多是10个,而且不超过10个,因为程序设定了子进程数目最大为10。3) proc_number 这个全局变量在各个子进程里的值相同吗?为什么? 不相同,proc_number

4、是每一个进程的编号,从0到10。4) kill命令在程序中使用了几次?每次的作用是什么?执行后的现象是什么?使用了2次,while循环一次,q命令一次,第一次是为了杀死单个进程,第二次是杀死全部进程,第一次执行后只能杀死单个进程,第二次可以杀死对应进程组内的全部进程。5) 使用kill命令可以在进程的外部杀死进程。进程怎样能主动退出?这两种退出方式哪种更好一些?进程主动退出就是进程执行完,到了return语句自行退出,主动退出更好一些。6) 写出fork()和kill()函数原型,并解释函数的功能和参数的含义? #include #include pid_t fork(void);功能:for

5、k()函数通过系统调用创建一个与原来进程几乎完全相同的进程, 也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。#include #include int kill(pid_t pid, int sig);功能:Kill()用于向任何进程组或进程发送信号。7) ps aux|grep process命令功能是什么?并解释结果的含义。ps是显示当前状态正在运行的进程以及发出该命令的终端,所使用的CPU的时间以及正在执行的命令,grep表示在这些进程里进行搜索,psaux是显示所有进程和他们的状态。$ ps aux | grep ./a.out三方案设计

6、四测试数据及运行结果五总结1. 实验过程中遇到的问题及解决办法;实验过程没有大的问题,就是在进行psaux|grep的时候刚开始输入ps aux|grep process,没有进程列表出来,后来经过向同学请教得知在我的环境下需要输入ps aux|grep ./a.out 故解决问题。2. 对设计及调试过程的心得体会。这次设计及调试让我深入理解进程及进程在调度执行和内存空间等方面的特点,初步掌握在POSIX规范中fork和kill系统调用的功能和使用,以及感受linux系统的魅力。六附录:源代码(电子版) #include #include #include #include #include

7、#include #define MAX_CHILD_NUMBER 10#define SLEEP_INTERVAL 2int proc_number=0; void do_something();int main(int argc,char* argv)int child_proc_number=MAX_CHILD_NUMBER ; int i,ch;pid_t child_pid; pid_t pid10=0; if(argc1)child_proc_number = atoi(argv1);child_proc_number=(child_proc_number10)?10:child_

8、proc_number; for(i=0;i0) pidi=child_pid;printf(AParentprocess,thepidis%dn,getpid();printf(input the number you want to killn); while(ch=getchar()!=q)if(isdigit(ch) ch=(int)ch-48;if(kill(pidch,SIGKILL)0) perror(kill);exit(1);elseprintf(process%dhasbeen killed!nn,pidch);elseprintf(is not digitn);getchar();printf(input the number you want to kill:n); kill(0,SIGTERM);return 0;void do_something() for(;)printf(Thisisprocess No.%*dn,proc_number+3,proc_number);sleep(SLEEP_INTERVAL);

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2