全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统课程设计实验报告实验名称: 进程控制 姓名/学号: xx 20091758 一、实验目的设计并实现Unix的“time”命令。“mytime”命令通过命令行参数接受要运行的程序,创建一个独立的进程来运行该程序,并记录程序运行的时间。二、实验内容一、在Windows下实现: 使用CreateProcess()来创建进程 使用WaitForSingleObject()在“mytime”命令和新创建的进程之间同步 调用GetSystemTime()来获取时间在Linux下实现: 使用fork()/execv()来创建进程运行程序 使用wait()等待新创建的进程结束 调用gettimeofday()来获取时间mytime的用法:$ mytime.exe program1三、实验环境 操作系统:Windows7旗舰版 处理器:Intel Core2 Duo p7450 2.13GHz 内存:2.00GB 32位操作系统 LINUX版本信息:Linux ubuntu 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux 四、程序设计与实现一.windows下的实验 1、创建进程之前先用系统函数getsystemtime获取当前时间 。 SYSTEMTIME systime; GetSystemTime(&systime); 2、调用createprocess函数创建进程:BOOL bRet = CreateProcess( NULL, /不在此指定可执行文件的文件名 argv1, /命令行参数 NULL, /默认进程安全性 NULL, /默认线程安全性 FALSE, /当前进程内的句柄不可以被子进程继承 CREATE_NEW_CONSOLE, /为新进程创建一个新的控制台窗口 NULL, /使用本进程的环境变量 NULL, /使用本进程的驱动器和目录 &si, /父进程传给子进程的一些信息 &pi); /保存新进程信息的结构 由于要使用命令行来创建进程,所以我的createprocess函数第一个参数设置为NULL,通过第二个参数在命令行里实现创建进程。3、使用等待函数来等待所创建进程的死亡。 WaitForSingleObject(pi.hProcess,INFINITE);4、再次取得系统当前时间,与上次取得时间作差,得到进程运行时间。 具体做法是:将两次时间对应位作差,然后换算成相应秒数。t=(systime.wHour-h)*3600+(systime.wMinute-m)*60+systime.wSecond-s+(systime.wMilliseconds-ms)/1000;二Linux下的实验 1、创建进程之前先得到系统时间 struct timeval start; struct timeval end; gettimeofday(&start,NULL); 2、用fork函数创建进程,这时函数会返回两个值,需要通过返回值来判断是子进程还是父进程。 pc = fork(); if ( pc 0 ) /* 如果出错 */ exit(1); else if ( pc = 0) /* 如果是子进程 */else /* 如果是父进程 */3、如果是子进程运行,则在子进程中调用execv函数在命令行中来运行一个程序。execv(argv1,&argv1);4、如果是父进程在运行,则先等待子进程结束,然后获取时间。pr = wait(NULL);/* 等待子进程结束 */gettimeofday(&end,NULL);5、计算程序运行时间。time =end.tv_sec-start.tv_sec;printf(programm running %ld 秒n,time);五、实验结果和分析 一、windows下实验结果 程序运行时程序运行结束:实验结果分析:程序正确运行,显示出程序开始和结束时间,并计算出程序运行时间。Linux系统下实验:一、调用扫雷程序二、关闭扫雷程序,计算运行时间:实验结果分析:程序正确运行,调用一个游戏程序,并计算程序运行时间。五、讨论、心得 在w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (完整版)苏教六年级下册期末数学质量测试试卷A卷及答案解析
- 家庭教育指导师的职业素养提升途径与方法探讨重点强调
- 效率提升专员团队效率提升激励方案
- 抵押贷款业务贷后管理规范
- 图书馆数字化建设与阅读推广
- 投资银行部高级经理业务知识竞赛方案
- 小微企业财务管理年度工作计划表
- 2025江铜南方公司第三批次一般管理岗社会招聘6人(广东)笔试历年参考题库附带答案详解
- 2025江西九江德安县水利水电建筑工程公司招聘拟聘用人员笔试历年参考题库附带答案详解
- 大气治理企业内部管理制度
- Unit+2+Bridging+Cultures+单元整体教学说课课件 高中英语人教版(2019)选择性必修第二册单元整体教学设计
- 国家自然科学基金PPT
- GB/T 31020-2014移动实验室移动特性
- 教代会财务工作报告5篇
- 希特《战略管理:竞争与全球化》第11版配套教学课件
- 特教概论知识点
- 感染组:乙肝基因分型和乙肝耐药检测-课件
- 心脏结构和功能
- 饼干工艺流程图及说明参考范本
- 提高预制T梁预应力张拉一次合格率-QC小组总结
- 汽车底盘的故障诊断与维修毕业论文1
评论
0/150
提交评论