操作系统第3-4次作业_第1页
操作系统第3-4次作业_第2页
操作系统第3-4次作业_第3页
操作系统第3-4次作业_第4页
操作系统第3-4次作业_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统课程实验报告实验编号与实验名称:1、 管理Linux系统进程2、 进程互斥实验3、 进程的控制实验实验目的:一、1) 回顾系统进程的概念,加深对Linux / UNIX进程管理的理解。2) 回顾ps命令和选项。3) 列出当前shell中的进程。4) 列出运行在系统中的所有进程。二、1、进一步认识并发执行的实质2、通过分析实验结果,分析进程竞争资源的现象,学习解决进程互斥的方法三、1、 掌握进程另外的创建方法:需认真分析实验结果,体会本次实验进程创建方法与fork的不同2、 2、通过分析实验结果,熟悉进程的睡眠、同步、撤消等进程控制方法实验内容及要求(详见实验讲义):一、步骤1:登录进入Linux。步骤2:访问命令行。步骤3:回顾系统进程概念。步骤4:回顾ps命令和信息。步骤5:列出系统中运行的所有进程。步骤6:试调试下二段代码。二、 1、进程互斥的实现 2、分析以下程序的输出结果三、 1、用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容 2、利用wait( )来控制进程执行顺序实验用到的软件(:)虚拟机实验内容、关键步骤(流程图、代码等)及结果分析(70分)第一个实验步骤3:回顾系统进程概念1) Linux系统中,几乎每一个启动的进程,都会由内核分配一个唯一的进程标识符 (PID),用于跟踪从进程启动到进程结束。2) 当启动新进程的时候,内核也给它们分配系统资源,如CPU时间和RAM空间。3) 永远不向父进程返回输出的进程叫做僵进程。4) 由父进程派生出来的进程叫做子进程。5) 父进程是一个派生另一个进程的进程。6) 运行用于提供服务的Linux系统进程是守护进程。7) 如果父进程在子进程之前结束,它创建了一个孤儿进程。步骤4:回顾ps命令和信息输入ps命令,将结果截图贴到实验报告。输入 ps -f 命令步骤5:列出系统中运行的所有进程 输入 ps -ef 命令,显示运行在系统中的各个进程的完全信息。执行该命令,并与ps f命令的输出结果对照,一致吗?有何不同?答:不一致ps f 完全 产生一个完全列表,给出每个进程的所有可用信息。ps ef 每一个完全产生一个完全列表,给出每个进程的所有可用信息,显示系统中每一个进程的信息。a. 显示了多少个进程?ps f 2个ps ef 所有 143b. PID是什么?进程的进程标识号。PID可以用来杀死进程c. 启动进程的命令 (CMD) 是什么?命令名守护进程 (执行的程序的名字)d. 请观察,什么命令的PID号是1?第一个命令 root inite. 再次运行 ps -ef | wc -l命令,计算进程的数目并把输出结果输入到wc命令中:执行 man ps命令,可以打开Linux用户命令手册,了解ps命令的用法,输入wq命令可退出用户手册的阅读。man命令可以执行吗?结果如何?步骤6:第二个实验Code 1:没加lockf()函数的实验Code 1:加了lockf()函数的实验Code 2:没加lockf()函数的实验Code 2:加了lockf()函数的实验第三个实验:第三题结果:思考题:二、1.2观察并分析出现的现象结果如何?与未上锁的输出结果相比,结果有无不同?原因?将打印字符串的循环次数改为1000结果加锁与否的结果又是否相同?结果都一样。因为程序在被运行之时会被赋予一个时间片,而 i的值小于 1000 时,CPU执行完这个程序所需时间还小于这个时间片,所以操作系统并不会把公共设备夺过来给其他程序。从而两个结果都一样。没使用了lockf()函数使用了lockf()函数 从上图的比较中我们可以看出,当 i 的值变得很大时,lockf()函数的作用就体现出来了。 他会将一个程序和这个程序所需的公共设备上锁,直至这个程序结束才解锁。在这段期间,没有程序能使用被上锁的公共设备。三、(1)如何更新子进程内容?fork时根据返回的进程ID锁定指定的子进程即进入子进程,其后的操作都是能有效更新子进程的。 (2)可执行文件加载时进行了哪些处理?初始化,开辟内存,显示窗口是后期可选工作。每个程序,任何一个程序,任何一个可执行文件,启动运行时都要调用Ntdll.dll中的NtCreateProcess()。(3)什么是进程同步?wait( )是如何实现进程同步的?我们把异步环境下的一组并发进程因直接制约而互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。进程同步是进程之间直接的相互作用,是合作进程间有意识的行为。如果我们对一个消息或事件赋以唯一的消息名,则我们可用过程wait(消息名)表示进程等待合作进程发来的消息。这样,wait()就实现了进程间的同步。实验过程中遇到的问题解决办法与实验体会(10分)【请注意:此处必须如实填写,为空或不适均扣10分】1、 因为第一次使用lockf( ),所以搞不懂lockf( )中的参数到底应该怎样用。2、 我使用了lockf( )后并没有意识到时间片对于程序的影响如 但是我只是写了一个 i = 5 而已,因为我觉得他们的结果应该都是一样的。后来多测试了几次后才发现,但 i = 1000 时结果是会有所改变的。3、 第一次使用Exec( )

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论