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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(操作系统管理Linux系统进程进程互斥实验进程的控制实验实验0304Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统管理Linux系统进程进程互斥实验进程的控制实验实验0304Word文档格式.docx

1、实验内容及要求(详见实验讲义与实验指导书):步骤1:登录进入Linux。步骤2:访问命令行。单击“系统工具”-“终端”命令,打开“终端”窗口。步骤3:回顾系统进程概念。每个运行的程序都会创建一个进程,进程分配到一个唯一的进程标识符 (PID) 。PID被系统用于标识和跟踪进程,直到进程结束。操作系统内核管理所有进程的初始化和终止。每一个进程都要求系统资源 (例如CPU时间和RAM空间) 在其中工作。当进程启动的时候,操作系统把系统资源分配给每个进程,当进程终止的时候,系统回收这些资源。在Linux系统启动的时候,首先启动的两个进程是sched (调度) 和init (初始化) ,它们管理着其他

2、进程。Linux系统中有几种不同类型的进程:守护进程:由Linux内核启动的进程,为了特定目的而存在。例如,lpsched守护进程存在只是为了处理打印作业。父进程:派生其他进程的进程是父进程。一个叫做init的守护进程是第一个调用的进程。每一个进程,除了init之外,都有一个父进程。子进程:由其他进程派生出来的进程叫做子进程。孤儿进程:在进程返回输出之前,它的父进程结束了,这样的进程叫做孤儿进程。僵进程:子进程没有带着输出返回给父进程。这样的进程在系统中变成丢失的进程。使用此前的信息,完成以下填空:1) Linux系统中,几乎每一个启动的进程,都会由内核分配一个唯一的PID进程标识符,用于跟踪

3、从进程启动到进程结束。2) 当启动新进程的时候,内核也给它们分配系统资源,如内存空间和CPU资源。3) 永远不向父进程返回输出的进程叫做_。4) 由父进程派生出来的进程叫做_。5) _进程是一个派生另一个进程的进程。6) 运行用于提供服务的Linux系统进程是_。7) 如果父进程在子进程之前结束,它创建了一个_进程。步骤4:回顾ps命令和信息。ps命令用于列出当前系统中运行的进程。如果一个进程耗时太长,或者看上去好像已经终止了,表现为一个终端窗口不再响应或挂起,通常需要使用ps查看系统中的进程。通过列出进程,可以查看初始化进程的命令或程序的名字,以及所有它派生出来的子进程。通过多次执行ps命令

4、,查看进程的时间进程占用的CPU时间,可以检查一个进程是否还在运行。如果时间不再增长,那么进程可能已经终止了。如果进程占用太长的时间或者已经停止,可以使用ps命令检查进程的进程ID (PID) ,然后杀死进程。ps命令的输出将显示PID号和与其相关的命令或程序。PID号通常用于终止一个进程。ps命令 ( ps -options ) 的3个主要选项如下表所示。 表3-5 ps命令选项ps选项 意义 功能Ps 无选项 显示当前shell或终端窗口中,当前用户的进程信息ps e 每一个 显示系统中每一个进程的信息ps f 完全 产生一个完全列表,给出每个进程的所有可用信息ps -u userid 用

5、户 显示特定用户的所有进程基本的ps命令显示在当前shell中的进程信息,用户只能够查看在这个终端窗口中初始化的进程。输入ps命令,将结果截图贴到实验报告。从当前终端窗口中,练习使用给出的每个选项的ps命令。输入 ps -f 命令,显示运行在系统中的某个进程的完全信息,结果部分截图贴到实验报告。 ps -f栏标题值 描述UID 初始化进程的用户IDPID 进程的进程标识号。PID可以用来杀死进程PPID 进程的父进程标识号C 进程的优先级STIME 进程的启动时间TTY 控制进程终端的终端举型TIME 进程使用的CPU时间的数量CMD 命令名守护进程 (执行的程序的名字)步骤5:列出系统中运行

6、的所有进程。输入 ps -ef 命令,显示运行在系统中的各个进程的完全信息。执行该命令,并与ps f命令的输出结果对照,一致吗?有何不同?_注意分析当前终端窗口中的输出结果:a. 显示了多少个进程?_b. PID是什么?_c. 启动进程的命令 (CMD) 是什么?_d. 请观察,什么命令的PID号是1?_e. 再次运行 ps -ef | wc -l命令,计算进程的数目并把输出结果输入到wc命令中:_执行 man ps命令,可以打开Linux用户命令手册,了解ps命令的用法,输入wq命令可退出用户手册的阅读。man命令可以执行吗?结果如何?_步骤6:试调试下二段代码。并写明结果(考虑fork与s

7、leep是什么函数)1、int main()int p1,i;while (p1=fork()=-1);if (p10) for (i=0;i5;i+) printf(I am parent.n); sleep(1); elseI am child.nreturn 0;2、 wait(0); exit(0);1. 修改以下代码,用lockf( )来给每一个进程加锁,以实现进程之间的互斥 /=#include main( )int p1,p2;while(p1=fork( )= = -1); /*创建子进程p1*/if (p1= =0) putchar(bwhile(p2=fork( )= =

8、-1); /*创建子进程p2*/if(p2= =0) putchar(celse putchar(aint p1,p2,i;if (p1= =0) for(i=0;10;printf(daughter %dn,i); while(p2=fork( )= = -1);if(p2= =0)son %dnparent %dn2、观察并分析出现的现象【写进实验报告】与未上锁的输出结果相比,结果有无不同?原因?将打印字符串的循环次数改为1000结果加锁与否的结果又是否相同?1、用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容2、利用wait( )来控制进程执行顺序实验用到的

9、软件(:)虚拟机,vi编译器实验内容及关键步骤(代码)Q3(15分)1.管理Linux系统进程1) Linux系统中,几乎每一个启动的进程,都会由内核分配一个唯一的进程标识符(pid),用于跟踪从进程启动到进程结束。2) 当启动新进程的时候,内核也给它们分配系统资源,如CPU时间和RAM空间。3) 永远不向父进程返回输出的进程叫做init的守护进程。4) 由父进程派生出来的进程叫做子进程。5) 父进程是一个派生另一个进程的进程。6) 运行用于提供服务的Linux系统进程是守护进程_。7) 如果父进程在子进程之前结束,它创建了一个_孤儿进程。ps f 与ps-ef执行命令出来的结果不一样,ps-

10、f命令只显示student的某些进程,而ps-ef不但显示了student的所有进程还有root根目录下的所有进程。还有标题目录不一样。a. 显示了133个进程?b. PID是进程标识符。c. 启动进程的命令 (CMD) 是命令名守护进程_e. 再次运行 ps -ef | wc -l命令,计算进程的数目并把输出结果输入到wc命令中:_可以执行,结果如图:运行结果:main() wait(0); for (i=0; printf( sleep(1); exit(0);I am parent.I am parent. I am child.I am child. I am child.I am c

11、hild.Fork(); 一个现有进程可以调用fork函数创建一个新进程。fork函数一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。sleep函数sleep函数执行挂起一段时间,用在unsigned sleep(unsigned seconds)中,在VC中使用带上头文件#include ,在gcc编译器中,使用的头文件因gcc版本的不同而不同 #include 解释

12、执行结果:在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程. 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程,一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁, 而是留下一个称为僵尸进程(Zombie)的数据结构。pid = wait(NULL);如果成功,wait会返回被收集的子进程的进程ID,如果调用进程没有子

13、进程,调用就会失败,此时wait返回-1,同时errno被置为ECHILD。程序在调用 fork( )建立一个子进程后,马上调用 wait( ),使父进程在子进程结束之前,一直处于睡眠状态。子进程用 exec( )装入命令 ls ,exec( )后,子进程的代码被 ls 的代码取代,这时子进程的 PC 指向 ls 的第 1 条语句,开始执行 ls 的命令代码。注意在这里 wait( )给我们提供了一种实现进程同步的简单方法。2 进程互斥实验用lockf( )来给下面的程序每一个进程加锁,以实现进程之间的互斥 if (p1= =0) putchar(if(p2= =0)else putchar(

14、输出结果:daughter %dnsonparent修改后:与未上锁的输出相比结果有所不同,上锁之后的结果只显示daughter的内容,将循环次数改成1000后,加锁与否的结果也不相同,不加锁只显示son和parent的内容,而加锁之后显示daughter的内容。由于给后面的循环输出语句块加了锁,所以该语句只能被当前进程访问,即使其他进程获得处理机也无法访问,只有当前进程获得处理机并接着中断的地方继续执行完毕将锁释放其他的进程才能访问。所以输出结果按照顺序依次输出。(四)分析以下程序的输出结果【写进实验报告】:#includeint *fp;fp = fopen(to_be_locked.tx

15、t ,w+if(fp=NULL)Fail to create file exit(-1);while(p1=fork( )= -1);if (p1=0)lockf(*fp,1,0); /*加锁*/for(i=0; fprintf(fp, lockf(*fp,0,0); /*解锁*/ while(p2=fork( )=-1);if (p2=0)lockf(*fp,0,0); wait(NULL); lockf(*fp,1,0); fprintf(fp,fclose(fp);编译运行,cat to_be_locked.txt 查看输出结果,如下图所示:daughter0daughter1daugh

16、ter2daughter3daughter4daughter5daughter6daughter7daughter8daughter9son0son1son2son3son4son5son6son7son8son9parent0parent1parent2parent3parent4parent5parent6parent7parent8parent9分析:程序开始定义了文件读写指针用于打开指定的文件,当文件不存在时则自动创建。然后有创建了一个进程p1,p1获得处理机执行,给文件读写指针加锁,这样,即使p1失去处理机,其他获得处理机的进程也无法访问文件指针指向的文件,当p1再次获得处理机后继续

17、执行直至进程p1结束并解锁;p1结束后父进程获得处理机执行又创建了进程p2,p2获得处理机执行,也给文件指针加锁,同理直至p2运行完解锁;p2结束后父进程获得处理机,父进程也给文件指针加锁,直至父进程执行完毕解锁,程序结束。3 进程的控制实验1、 用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容输出结果分析原因程序在调用fork( )建立一个子进程后,马上调用wait( ),使父进程在子进程结束之前,一直处于睡眠状态。子进程用exec( )装入命令ls ,exec( )后,子进程的代码被ls的代码取代,这时子进程的PC指向ls的第1条语句,开始执行ls的命令代码。实验过程中遇到的问题解决办法与实验体会Q4(需手写,10分)这次的作业比较多,做了比较长的时间,中间也遇到了无数的小问题,在同学的帮助下都顺利的解决了评阅教师特殊评语:评阅教师: 日 期:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1