电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

操作系统进程控制实验报告分析解析

8页
  • 卖家[上传人]:206****923
  • 文档编号:90749989
  • 上传时间:2019-06-16
  • 文档格式:DOC
  • 文档大小:180KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、操作系统实验报告实验题目:进程控制 专 业 计算机科学与技术 学 生 姓 名 班 级 学 号 12006715 指 导 教 师 指 导 单 位 计算机学院 日 期 2014年11月13日 教师评语教师签名: 年 月 日成绩评定备 注一、实验目的1.学习和了解进程控制的基本和常用的系统调用 forkwaitsleepexitexec等等2. 查看 /usr/src/include/sched.h中的task_struct 数据结构,并分析Linux 操作系统进程状态。 3.通过进程创建的应用实例,深刻理解进程创建的过程将以下例题输入运行,并分析运行结果 程序例题1 #include #include #include int main(void) pid_t pid; int data=5; if(pid=fork()0) printf(fork errorn); exit(0); else if(pid=0) data-; printf(childs data is:%dn,data); exit(0); else printf(parents data is:%dn,data); e

      2、xit(0); 程序例题2 用fork创建一个子进程,由其调用execve启动shell命令ps查看系统当前的进程信息 #include #include #include main( ) pid_t pid; char *path=/bin/ps; char *argv5= ps,-a,-x,NULL; printf(“Run ps with execve by child process:n”); if(pid=fork( )0) printf(“fork error!”); exit(0); else if (pid=0) if(execve(path,argv,0)0) printf(“fork error!”); exit(0); printf(“child is ok!n”); exit(0); wait( ); printf(“it is ok!n”); exit(0); 3.创建一个共享内存,实现一个生产者进程写共享内存,一个消费者进程读共享内存,并在写前读后输出写和读的内容。4.创建一个共享文件,实现一个写者进程写文件,2个读者在写者写后分别读出文件的内容,并给出读后

      3、评价。二、实验指导 Linux中与进程控制相关的几个主要系统调用 名/格式/参数功能返回值的解释fork( )、vfork( ) 创建一个字进程 对父进程:返回子进程号 对子进程:返回0 错误:返回-1 #include execve(char *file,char *argv,char *envp) 用指定程序覆盖当前程序代码 正确:0 错误:-1 #include #include pid_t wait(int *statloc) 等待进程终止 正确:子进程的ID 错误:-1 getpid( )、getppid( ) 获得进程号 #include void exit(int status) 进程正常结束 三、实验步骤(附程序原码)实验一:创建文件wang.c,编写C语言程序,实现在程序运行时通过系统调用fork()创建两个子进程,使父,子三进程并发进行,父亲进程执行时屏幕显示“parent”,儿子进程执行时屏幕显示“son”,女儿进程执行时屏幕显示“daugher”。程序如下:(进程一)#includeint main() int p1,p2,i; while(p1=fork()=

      4、-1); if(p1=0) for(i=0;i4;i+) printf(daughter%dn,i); else while(p2=fork()=-1); if(p2=0) for(i=0;i4;i+) printf(son%dn,i); else for(i=0;i4;i+) printf(parent%dn,i); (进程二)#includeint main() int pid; pid=fork(); switch(pid) case -1:printf(fork failn);exit(1); case 0:printf(subprocessn);exit(0); default:wait(0);printf(completedn);exit(0); 实验二:编写程序,用fork创建两个子进程,再用系统调用signal让父进程捕捉键盘上传来的中断信号,捕捉到中断信号后,父进程用系统调用kill向两个子进程发出信号,子进程终止。父进程等待两个子进程终止后终止。程序代码如下#include#include#includevoid waiting(),stop();int wait_

      5、mark;int main() int p1,p2,stdout; signal(SIGINT,stop); while(p1=fork()=-1); if(p10) while(p2=fork()=-1); if(p20) wait_mark=1; sleep(5); waiting(); kill(p1,16); kill(p2,17); wait(0); wait(0); printf(Parent process is killed!n); exit(0); else wait_mark=1; signal(17,stop); waiting(); lockf(stdout,1,0); printf(Child process 2 is killed by parent!n); lockf(stdout,0,0); exit(0); else wait_mark=1; signal(16,stop); waiting(); lockf(stdout,1,0); printf(Child process 1 is killed by parent!n); lockf(stdout

      6、,0,0); exit(0); void waiting() while(wait_mark!=0); void stop() wait_mark=0; 四、运行结果及其结果分析实验一:结果分析:0:在子进程中,pid变量保存的fork()返回值为0,表示当前进程是子进程。0:在父进程中,pid变量保存的fork()返回值为子进程的pid值。-1:创建失败。实验二:结果分析:从键盘输入中断信号,父进程收到中断信号用系统调用kill向两个子进程发出信号,子进程收到信号后分别输出Child process 1 is killed by parent!,Child process 2 is killed by parent!结束进程并exit(0),父进程收到两个exit(0)后输出Parent process is killed!结束进程。五、思考题1、当首次调用新创建进程时,其入口在哪里?解:调用fork函数的下一条语句开始。2、可执行文件加载时进行了哪些处理?解:可执行文件加载时首先是创建一个新进程的fork系统调用,然后用于实现进程自我终止的exit系统调用;改变进程原有代码的exec系统调用;用于将调用进程挂起并等待子进程终止的wait系统调用;获得进程标识符的getpid系统调用等处理过程。3、什么是进程同步?wait( )是如何实现进程同步的?解:异步环境下的一组并发进程因直接制约而互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。解:首先程序在调用fork()机那里了一个子进程后,马上调用wait(),使父进程在子进程调用之前一直处于睡眠状态,这样就使子进程先运行,子进程运行exec()装入命令后,然后调用wait(0),使子进程和父进程并发执行,实现进程同步。-

      《操作系统进程控制实验报告分析解析》由会员206****923分享,可在线阅读,更多相关《操作系统进程控制实验报告分析解析》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.