操作系统第34次作业.doc

上传人:李司机 文档编号:1096405 上传时间:2022-06-24 格式:DOC 页数:18 大小:1.03MB
返回 下载 相关 举报
操作系统第34次作业.doc_第1页
第1页 / 共18页
操作系统第34次作业.doc_第2页
第2页 / 共18页
操作系统第34次作业.doc_第3页
第3页 / 共18页
操作系统第34次作业.doc_第4页
第4页 / 共18页
操作系统第34次作业.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《操作系统第34次作业.doc》由会员分享,可在线阅读,更多相关《操作系统第34次作业.doc(18页珍藏版)》请在三一办公上搜索。

1、word操作系统课程实验报告实验编号与实验名称:1、 管理Linux系统进程2、 进程互斥实验3、 进程的控制实验实验目的:一、1) 回顾系统进程的概念,加深对Linux / UNIX进程管理的理解。2) 回顾ps命令和选项。3) 列出当前shell中的进程。4) 列出运行在系统中的所有进程。二、1、进一步认识并发执行的实质2、通过分析实验结果,分析进程竞争资源的现象,学习解决进程互斥的方法三、1、 掌握进程另外的创建方法:需认真分析实验结果,体会本次实验进程创建方法与fork的不同2、 2、通过分析实验结果,熟悉进程的睡眠、同步、撤消等进程控制方法实验内容与要求详见实验讲义:一、步骤1:登录

2、进入Linux。步骤2:访问命令行。步骤3:回顾系统进程概念。步骤4:回顾ps命令和信息。步骤5:列出系统中运行的所有进程。步骤6:试调试下二段代码。二、 1、进程互斥的实现 2、分析以下程序的输出结果三、 1、用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容 2、利用wait( )来控制进程执行顺序实验用到的软件:虚拟机实验内容、关键步骤流程图、代码等与结果分析70分第一个实验步骤3:回顾系统进程概念1) Linux系统中,几乎每一个启动的进程,都会由内核分配一个唯一的进程标识符 (PID),用于跟踪从进程启动到进程完毕。2) 当启动新进程的时候,内核也给它们分

3、配系统资源,如CPU时间和RAM空间。3) 永远不向父进程返回输出的进程叫做僵进程。4) 由父进程派生出来的进程叫做子进程。5) 父进程是一个派生另一个进程的进程。6) 运行用于提供服务的Linux系统进程是守护进程。7) 如果父进程在子进程之前完毕,它创建了一个孤儿进程。步骤4:回顾ps命令和信息输入ps命令,将结果截图贴到实验报告。输入 ps -f 命令步骤5:列出系统中运行的所有进程 输入 ps -ef 命令,显示运行在系统中的各个进程的完全信息。执行该命令,并与ps f命令的输出结果对照,一致吗?有何不同?答:不一致ps f 完全 产生一个完全列表,给出每个进程的所有可用信息。ps e

4、f 每一个完全产生一个完全列表,给出每个进程的所有可用信息,显示系统中每一个进程的信息。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:

5、第二个实验Code 1:没加lockf()函数的实验Code 1:加了lockf()函数的实验Code 2:没加lockf()函数的实验Code 2:加了lockf()函数的实验第三个实验:第三题结果:思考题:二、观察并分析出现的现象结果如何?与未上锁的输出结果相比,结果有无不同?原因?将打印字符串的循环次数改为1000结果加锁与否的结果又是否一样?结果都一样。因为程序在被运行之时会被赋予一个时间片,而 i的值小于 1000 时,CPU执行完这个程序所需时间还小于这个时间片,所以操作系统并不会把公共设备夺过来给其他程序。从而两个结果都一样。没使用了lockf()函数使用了lockf()函数 从

6、上图的比拟中我们可以看出,当 i 的值变得很大时,lockf()函数的作用就表现出来了。 他会将一个程序和这个程序所需的公共设备上锁,直至这个程序完毕才解锁。在这段期间,没有程序能使用被上锁的公共设备。三、(1)如何更新子进程内容?fork时根据返回的进程ID锁定指定的子进程即进入子进程,其后的操作都是能有效更新子进程的。2可执行文件加载时进展了哪些处理?初始化,开辟内存,显示窗口是后期可选工作。每个程序,任何一个程序,任何一个可执行文件,启动运行时都要调用Ntdll.dll中的NtCreateProcess()。(3)什么是进程同步?wait( )是如何实现进程同步的?我们把异步环境下的一组

7、并发进程因直接制约而互相发送消息而进展互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。进程同步是进程之间直接的相互作用,是合作进程间有意识的行为。如果我们对一个消息或事件赋以唯一的消息名,如此我们可用过程wait(消息名)表示进程等待合作进程发来的消息。这样,wait就实现了进程间的同步。实验过程中遇到的问题解决方法与实验体会10分【请注意:此处必须如实填写,为空或不适均扣10分】1、 因为第一次使用lockf( ),所以搞不懂lockf( )中的参数到底应该怎样用。2、 我使用了lockf( )后并没有意识到时间片对于程序的影响如 但是我只是写了一个 i = 5 而已,因为我觉得他们的结果应该都是一样的。后来多测试了几次后才发现,但 i = 1000 时结果是会有所改变的。3、 第一次使用Exec( )函数,我同样不知道其中的参数所代表的意思是什么。如 第一个参数是 path 路径,但是这时我又不知道我写的文件的路径了。还有第三个参数如此是 0,我完全不知道它到底代表的是什么。而且,这中间还有一些不同的参数,我更是看得云里雾里。18 / 18

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号