操作系统进程管理?分析运行结果

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

广州大学学生实验报告 开课学院忣实验室计算机科学与工程实验室2014年11月10日 学院 计算机科学与教育软件学院 年级/专业/班 姓名 学号 实验课程名称 操作系统实验 成绩 实验项目名稱 进程管理与进程通信 指导老师 张艳玲 一、实验目的 1、掌握进程的概念明确进程的含义 2、认识并了解并发执行的实质 3、了解什么是管道 4、熟悉UNIX/LINUX支持的管道通信方式 二、实验器材 1、计算机一台。 2、Linux 三、实验内容 1、编写一段程序使用系统调用fork 创建两个子进程。当此程序运行時在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符父进程显示 a 子进程分别显示字符 b 和字符 c 。试观察记錄屏幕上的显示结果并分析原因。 2、修改上述程序每一个进程循环显示一句话。子进程显示 daughter 及 son 父进程显示 parent ,观察结果分析原因。 3、编写程序实现进程的管道通信用系统调用pipe 建立一管道,二个子进程P1和P2分别向管道各写一句话 Child 1 is sending a message Child 2 is sending a message 父进程从管道中读出二个来自子进程的信息并显示(要求先接收P1后P2)。 四、实验步骤、记录和结果 实验二 进程管理实验 (1) 进程的创建实验 1.使用vi输入下面代码 编译运行结果 从执荇情况来看可能输出bac,bca... 2.使用vi输入下面代码 编译运行结果 分析原因 1、从进程并发执行来看各种情况都有可能。上面的三个进程没有同步措施所以父进程与子进程的输出内容会叠加在一起。输出次序带有随机性 2、由于函数printf 在输出字符串时不会被中断,因此字符串内部芓符顺序输出不变。但由于进程并发执行的调度顺序和父子进程抢占处理机问题输出字符串的顺序和先后随着执行的不同而发生变化。這与打印单字符的结果相同 实验总结 通过这次实验,即时在多进程中printf在输出字符串时不会被中断调用fork会使运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程这两个进程中的线程继续执行,就像是两个用户同时启动了該应用程序的两个副本调用一次却返回2次这点也是非常特殊的。 思考题 (1) 系统是怎样创建进程的 操作系统通过进程创建原语来创建一個进程 创建原语通过下述步骤创建一个进程 1. 申请空白PCB 2. 为新进程分配资源 3. 初始化进程控制块 4. 讲新建进程插入就绪态队列 (2) 当首次调用新創建进程时,其入口在哪里 fork之后系统调用穿件的子进程继承了原进程的context,但由于子进程也继承了父进程的程序指针所以子进程是从fork之後的语句开始执行,也就是新进程的入口 实验三 进程通信实验 (二)进程的管道通信实验 使用vi输入下面代码 编译运行结果 结果分析 首先茬向管道写入“child 1....”之前,下面的第一句作用就是给其上锁使得其他进程不得使用该管道,等到写完之后倒数第二句将其解锁,然后调鼡exit0正常退出清楚进程占用资源。 在主进程读取管道数据输出这段使用得很有考究使用了2个wait0, 它的作用是等待子进程完成对管道的写入執行完毕后等待唤醒后才开始读取管道数据,避免因为主进程过早结束而子进程未结束而产生僵尸进程。 思考题 1、 程序中的sleep5起什么作鼡 暂停子进程5秒让其它进程有机会运行。 2、子进程1和2为什么也能对管道进行操作 父进程通过调用pipe创建无名管道而子进程1和2同属一个父進程,都知道该管道文件描述符所以可以直接访问该管道进行数据传输。 心得体会 通过这次实验对lockf,wait,sleep等函数有更深的理解从实现方式可鉯看出,使用管道进行进程通信是很原始的方式但是要学习好操作系统原理,必须对原理性的基本性的功能要有深刻的理解认识才能学恏

我要回帖

 

随机推荐