- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
e +++++++++
*个*个*****************
实践教学
e力力、m,+++++++++ 力力“
*********************
兰州理工大学
计算机与通信学院
2012年春季学期
操作系统原理课程设计
题 目: 进程创建系统
专业班级:10级计算机科学与技术2班
姓 名: 李玉鑫
学 号:指导教师: 李睿
成绩: 一
目录
TOC\o1-5\h\z摘要 2
正文 3
\oCurrentDocument1.问题描述 3
\oCurrentDocument设计目的 3
\oCurrentDocument设计要求 3
\oCurrentDocument详细设计 4
界面设计 4
算法设计 4
\oCurrentDocument5.结果分析 5
\oCurrentDocument设计总结 10
\oCurrentDocument参考文献 11
\oCurrentDocument致谢 12
\oCurrentDocument附录:源程序代码 13
进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就是所有由你启动的进程。进程是操作系统进行资源分配的单位。在UNIX系统中,用户创建一个新进程的唯一方法就是调用系统调用 fork。调用
fork的进程称为父进程,而新创建的进程叫做子进程
关键字:进程,操作系统,程序,父进程,子进程
问题描述
了解UNIX的命令及使用格式,熟悉UNIX/LINUX的常用基本命令,练习并掌握UNIX提供的vi编辑器来编译C程序,学会利用gcc、gdb编译、调试C程序。
编写程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符,如父进程显示a,子进程分别显示字符b和字符c。试观察记录屏幕上的显示结果,并分析原因;修改程序,每一个进程循环显示一句话,如子进程显示daughter…’及son ,父进程显示’parent ,观察结果,分析
原因。
设计目的
(1) 通过该题目的设计过程,可以初步掌握进程创建系统的原理、软件开发方法并提高解决实际问题的能力。
(2) 加深对操作系统系统调用功能和进程概念的理解,明确进程和程序的区别。
(3) 掌握Linux中进程的创建方法,进一步理解进程的并发执行。
设计要求
编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示a,子进程分别显示字符b和字符c。
修改上述程序,每一个进程循环显示一句话。子进程显示daughter…’及son ,父进程显示parent ,观察结果,分析原因。
在程序中使用调用lockf()来给每一个子进程加锁
4.详细设计
(1)界面设计
函数调用关系图:
⑵算法设计
各模块的伪码算法:
对于概要设计中的使用系统调用fork()创建两个子进程,创建的过程
函数如下:
a.函数使用头文件如下:
#includeiostream
Usingnamespacestd;
b.main()
系统调用格式
参数定义
Intp1,p2;
调用函数fork()
P1=fork();
If(p1==0)cout”b”endl;
Elseif(p10)
(
P2=fork();
If(p2==0)cout”c”endl;
Elseif(p20)cout”a”endl;
}
Return0;
5.结果分析
.使用系统调用fork()创建两个子进程的程序的调试结果如下图:
/bin/sh-Konsole
登话编辑查看书签设置帮助
Sh
由上面的三个图可以看出来由于程序的并发执行,同一个程序运行的结果会有所区别。
.修改程序之后,每一个进程循环显示一句话的调试结果如下图:
由上面的图可以看出来由于程序的并发执行,同一个程序运行的结果会有所区别。
sonOson1son2
parentOparentlparents钏回车继续!daughterOdaughterldaughters
.在程序中使用调用lockf()来给每一个子进程加锁的调试结果如下图:
/binfeh-Konsole
会话编辑查看书签设置
您可能关注的文档
最近下载
- 危重病人抢救应急演练方案.pdf
- XP-1A SF6定性检漏仪说明书.pdf VIP
- 《贝聿铭建筑设计》课件.ppt VIP
- 河北大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 2023年西南大学软件工程专业《计算机组成原理》科目期末试卷B(有答案).docx VIP
- 《3~6岁智力残疾儿童康复训练及支持性服务规范》.pdf VIP
- 河北大学2021-2022学年第1学期《高等数学(上)》期末考试试卷(A卷)及标准答案.pdf
- 河北科技大学2021-2022学年第1学期《高等数学(上)》期末考试试卷(B卷)及标准答案.pdf
- 光电探测器仿真:多物理场耦合仿真_(10).多物理场仿真软件介绍.docx VIP
- 数学三下 应用题.ppt VIP
原创力文档


文档评论(0)