- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北方工业大学《计算机操作系统》实验报告——进程管理
实 验 报 告 书
学 生 姓 名
学 号
班 级
2012 — 2013 学年 第 一 学期
《计算机操作系统》实验报告 实验名称 进程管理 实验序号 1 实验日期 2012年12月 实验人 一、实验目的和要求
加深对进程概念的理解,明确进程和程序的区别
进一步认识并发执行的实质
分析进程争用资源的现象,学习解决进程互斥的方法
了解Linux系统中进程通信的基本原理 二、相关背景知识
1.初步了解了进程的并发执行,互斥,同步等相关理论知识;
2.明白父进程如何通过fork()函数创建子进程,pipe()函数创建管道,以及跟实验有关的lock(),signal(),exit(),wait(),kill()等函数的调用过程;
3.知道如何使用UNIX/Linux系统自带的功能强大的可视化的编辑器Vi。 三、实验内容
进程的创建
进程的控制
进程的软中断通信
进程的管道通信 四、关键数据结构与函数的说明
fork( ):创建一个新进程
返回值的意义:0:创建子进程,从子进程返回;0:从父进程返回,返回值为子进程的进程标识符;-1:创建失败。如果fork( )调用成功,它向父进程返回子进程的PID,并向子进程返回0,即fork( )被调用了一次,但返回了两次。此时OS在内存中建立一个新进程,所建的新进程是调用fork( )父进程(pare的副本,称为子进程。lockf(files,mode,size):用于锁定文件的某些段或者整个文件
files是文件描述符;mode是锁定和解锁:1表示锁定,0表示解锁.size是锁定或解锁的字节数,为0,表示从文件的当前位置到文件尾.。
signal(int signum,void(* handler)(int)):signal()会依参数signum 指定的信号编号来设置该信 号的处理函数。当指定的信号到达时就会跳转到参数handler指定的函数执行。kill(pid_t pid,int sig),可以用来送参数sig指定的信号给参数pid指定的进程Child process 1 is killed by parent!
Child process 2 is killed by parent!
父进程等待两个子进程终止后输出:
Parent process is killed!
4.进程的管道通信
使用系统调用pipe()建立一条管道线;两个子进程P1和P2分别向管道各写一句话:
Child 1 is sending a message!
Child 2 is sending a message!
而父进程则从管道中读出来自于两个子进程的信息,先接收P1发来的消息,然后再接收P2发来的消息,显示在屏幕上。
六、实验结果与分析
1.进程的创建从进程执行并发来看,输出。fork()创建进程所需的时间多于输出一个字符的时间,父进程与子进程的输出内容会叠加在一输出次序带有随机性。:由于进程并发执行时的调度顺序和父子进程的抢占处理机问题,输出字符串的顺序和先后随着执行的不同而发生变化。这与打印单字符的结果相同。因为lockf(1,1,0)lockf(1,0,0)解锁标准输出设备,在lockf(1,1,0)与lockf(1,0,0)中间的for循环输出不会被中断,加锁与不加锁效果相同。进程并发执行时的调度顺序和父子进程的抢占处理机问题#include stdio.h
main( )
{
int p1,p2;
while((p1=fork( ))==-1); /*创建子进程p1*/
if (p1==0) putchar(b);
else
{
while((p2=fork( ))==-1); /*创建子进程p2*/
if(p2==0) putchar(c);
else putchar(a);
}
}#include stdio.h
main( )
{
int p1,p2,i;
while((p1=fork( ))==-1); /*创建子进程p1*/
if (p1==0)
{
for(i=0;i10000;i++)
printf(aaa);
}
else
{
while((p2=fork( ))==-1); /*创建子进程p2*/
if(p2==0)
{
for(i=0;i10000;i++)
printf
您可能关注的文档
- 北师八上数学期末.doc
- 北师大初三英语阅读1.ppt
- 北京历史沿革与城市意象.pptx
- 北师大初二英语Unit7 Storytelling Lesson 25课件.ppt
- 北师大Unit13.ppt
- 北师大U22L2Endangered Species.pptx
- 北师大必修五-u15-l1-1.ppt
- 北师大大学英语(三).docx
- 北师大初一下册Lesson 21.ppt
- 北师大版 模块八 unit 23 lesson 3.ppt
- 上海海洋大学《海洋环境分析技术》课件-21化学发光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-20分子荧光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-22色谱分离过程.pdf
- 上海海洋大学《海洋环境分析技术》课件-25气相色谱仪与固定液.pdf
- 上海海洋大学《海洋环境分析技术》课件-24色谱定性定量方法.pdf
- 上海海洋大学《海洋环境分析技术》课件-26气相色谱检测器.pdf
- 上海海洋大学《海洋环境分析技术》课件-29液相色谱固定相与流动相.pdf
- 上海海洋大学《海洋环境分析技术》课件-27气相色谱分离条件的选择.pdf
- 上海海洋大学《海洋环境分析技术》课件-28液相色谱仪器与类型.pdf
- 上海海洋大学《海洋环境分析技术》课件-3 原子光谱和分析光谱.pdf
最近下载
- 制造企业数字化中台技术中台数据中台业务中台建设方案(20页PPT).pptx VIP
- 防跑道侵入考试卷附答案.doc
- 3-1牛顿第一定律(解析版)—2024高考物理一轮复习100考点100讲.docx VIP
- 社会治安管理处罚法全文.docx VIP
- SL252-2017 水利水电工程等级划分及洪水标准.pdf VIP
- 监理例会会议纪要范文.docx VIP
- 新时代下黄河文化融入高校校园文化建设的路径探索.docx VIP
- SL260-2014 堤防工程施工规范.docx VIP
- 公司治理与股权激励董.pptx VIP
- 新解读《GB_T 12604.3-2013无损检测 术语 渗透检测》最新解读.docx VIP
文档评论(0)