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

操作系统实验报告一

9页
  • 卖家[上传人]:工****
  • 文档编号:470547179
  • 上传时间:2023-07-28
  • 文档格式:DOCX
  • 文档大小:257.12KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、姓名:* 班级:2010级软件工程学号:* 日期:2012年10月19日一、 实验题目 Windows 2000进程的“一生”二、 实验目的1) 通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows 2000进程的“一生”。2) 通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法。二、 实验内容本实验分为三个小实验分别为实验1.1、实验1.2、实验1.3,每个小实验的实验题目、实验目的、实验内容、实验过程、回答问题、实验总结分别如下:一、 实验题目 实验1.1:创建进程二、 实验目的1)通过创建进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows 2000进程的“一生”。2) 通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法。三、实验内容:1) 调试实验3-5中的程序。2) 观察并分析程序。四、实验过程及结果:步骤1:登录进入Windows 2000 Professional。步骤2:在“开始”菜单中单击“程序”-“Microsoft Visual Studio

      2、6.0”“Microsoft Visual C+ 6.0”命令,进入Visual C+窗口。步骤3:在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序3-5.cpp。步骤4:单击“Build”菜单中的“Compile 3-5.cpp”命令编辑3-5.cpp步骤5:编译完成后,单击“Build”菜单中的“Build 3-5.exe”命令,建立3-5.exe可执行文件。步骤6:在工具栏单击“Execute Program”(执行程序) 按钮,或者按Ctrl + F5键,或者单击“Build”菜单中的“Execute 3-5.exe”命令,执行3-5.exe程序。步骤7:按Ctrl + S键可暂停程序的执行,按Ctrl + Pause (Break) 键可终止程序的执行。运行结果分析:答:程序的运行结果如下图所示:图一图二分析运行结果:创建标志参数CREATE_NEW_CONSOLE指示新进程分配它自己的控制台,所以在运行程序时,在任务栏上产生许多活动标记,如图一所示,一共产生了25个窗口,即创建了25个新进程。然后该克隆进程的创建方法关闭传递过来的句柄并返回main() 函数

      3、。在关闭程序之前,每一进程的执行主线程暂停一下,以便让用户看到其中的至少一个窗口。利用GetCurrentProcessId()函数获得进程的ID号,并输出。五、回答问题:1)(结合背景知识回答)该程序中使用的CreateProcess() API函数,此函数的大多数参数都可取缺省值,但是创建标志参数使用了:CREATE_NEW_CONSOLE_标志,指示新进程分配它自己的控制台,这使得运行示例程序时,在任务栏上产生许多活动标记。然后该克隆进程的创建方法关闭传递过来的句柄并返回main() 函数。在关闭程序之前,每一进程的执行主线程暂停一下,以便让用户看到其中的至少一个窗口。2)CreateProcess() 函数有_10_个核心参数?本实验程序中设置的各个参数的值是:参数名称使用目的设置的各个参数的值LPCTSTR lpApplivationName全部或部分地指明包括可执行代码的EXE文件的文件名szFilenameLPCTSTR lpCommandLine向可执行文件发送的参数szCmdLineLPSECURIITY_ATTRIBUTES lpProcessAttributes返

      4、回进程句柄的安全属性。主要指明这一句柄是否应该由其他子进程所继承NULLLPSECURIITY_ATTRIBUTES lpThreadAttributes返回进程的主线程的句柄的安全属性NULLBOOL bInheritHandle一种标志,告诉系统允许新进程继承创建者进程的句柄FALSEDWORD dwCreationFlage特殊的创建标志 (如CREATE_SUSPENDED) 的位标记CREATE_NEW_CONSOLELPVOID lpEnvironment向新进程发送的一套环境变量;如为null值则发送调用者环境NULLLPCTSTR lpCurrentDirectory新进程的启动目录NULLSTARTUPINFO lpStartupInfoSTARTUPINFO结构,包括新进程的输入和输出配置的详情&siLPPROCESS_INFORMATION lpProcessInformation调用的结果块;发送新应用程序的进程和主线程的句柄和ID&pi3)部分程序在Visual C+环境完成编译、链接之后,还可以在Windows 2000的“命令提示符”状态下尝试执行该程序,

      5、看看与在可视化界面下运行的结果有没有不同?为什么?答:在命令提示符下运行结果如下所示,与在可视化界面下运行结果是一样的。原因:六、实验总结经过本次实验,学习了进程创建的方法,CreateProcess()的一些用法,它的10个参数的含义等等,在做实验的过程中遇到了以下问题:修改代码后,编译连接都没有问题,但运行时程序一直不停止,怎么关也关不掉程序,只能关机。解决方法是:去上机时电脑上有一个程序,跟我自己修改后的程序代码一样的,但运行后可以自动停止。现在仍不明白为什么原来的一样的代码运行后停止不了,周围很多同学也遇到了同样的问题。在main()中的代码if (argc 1) / 从第二个参数中提取克隆ID:sscanf(argv1 , %d , &nClone) ; 看不懂,不知道是怎么获得参数nClone的。询问了周围的同学及学长,但问题仍未解决一开始不知道进程的ID号具体是什么含义,但经过查找资料了解到:操作系统通过进程ID来标识一个进程,进程ID是进程的唯一标识,在任务管理器中点击进程后点击查看,点击选择列,在PID前面勾选,就会显示出每个进程的ID号了。一、实验题目实验1.2:正

      6、在运行的进程二、实验目的1) 通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows 2000进程的“一生”。2) 通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法。三、实验内容:1) 调试实验3-6中的程序。2) 观察并分析程序。四、实验过程及结果:步骤1:在Visual C+ 窗口的工具栏中单击“打开”按钮,在“打开”对话框中找到并打开实验源程序3-6.cpp。步骤2:单击“Build”菜单中的“Compile 3-6.cpp”命令,再单击“是”按钮确认。系统对3-6.cpp进行编译。步骤3:编译完成后,单击“Build”菜单中的“Build 3-6.exe”命令,建立3-6.exe可执行文件。步骤4:在工具栏单击“Execute Program” (执行程序) 按钮,执行3-6.exe程序。步骤5:单击Ctrl + Alt + Del键,进入“Windows任务管理器”,在“应用程序”选项卡中右键单击“3-6”任务,在快捷菜单中选择“转到进程”命令。在“Windows任务管理器”的“进程”选项卡中,与

      7、“3-6”任务对应的进程映像名称是 (为什么?) :答:对应的进程映像名称是VCSPAWN.exe,这是因为Windows 7 的兼容性问题,非得用VCSPAWN.EXE来启动PE格式的文件。_右键单击该进程名,在快捷菜单中选择“设置优先级”命令,可以调整该进程的优先级,如设置为“高”后重新运行3-6.exe程序,屏幕显示有变化吗?为什么?答:只有进程的ID号变了,其他没有变化,因为程序的输出语句是以下语句:std : cout Process ID: dwIdThis, requires OS: wMajorReqwMinorReqstd : endl ;std : cout Running on OS: osvix.dwMajorVersion.osvix.dwMinorVersionstd : endl;std:cout Task Manager should now indicate this process is high priority.std : endl;即输出进程的ID号、进程和报告所需的版本、版本信息和报告,出了进程的ID号会变化外,无论怎么设置优先级,输出都不会

      8、发生变化。因为是随机获取进程,所以进程的ID号几乎每次运行都会发生变化。另外,如果是windows2000系统,程序也利用SetPriorityClass()函数将该进程的优先级设为了High。设置优先级为高后程序运行如下:描述运行结果:答:程序运行结果的截图如下所示:运行结果显示,该进程的ID号为3148,该进程和报告所需的OS版本是10,运行的操作系统版本是6.1。该进程被设置成了高优先级。_五、回答问题:1)分析清单3-6中的程序,简述该程序是如何获得当前的PID和所需的进程版本信息?答:利用GetCurrentProcessId()API函数来获得当前的PID,与GetCurrentProcess() 相似,对该函数的调用不能失败,但返回的PID在整个系统中都可使用。通过GetProcessVersion()函数获得这一进程和报告所需的版本信息。2)在本程序中用到了哪些主要Windows API函数?答:GetCurrentProcessId()API函数、GetProcessVersion()API函数、GetVersionEx()函数、GetCurrentProcess()函数、SetPriorityClass()函数六、实验总结通过该实验学习了获得运行进程和操作系统的版本信息,怎么改变进程优先级等,遇到了一些小的问题,都通过自己上网查资料或者询问周围同学解决了,但对于此程序仍存在以下疑问:该程序为什么没有让输出进程的优先级?这样通过在任务管理器中更改进程优先级后输出结果会有变化。除了前面输出的进程ID号,程序输出所需OS版本和运行的OS版本都不会变化(不变化电脑的情况下),还有最后输出的明明是一条语句,不会变化,再怎么改变进程优先级,程序输出都会是Task Manager should now indicate this process is high priority.,不明白问题为什么那样问?一、实验题目:实验1.3:终止程序二、实验目的:1) 通过观察终止进程的程序设计和调试操作

      《操作系统实验报告一》由会员工****分享,可在线阅读,更多相关《操作系统实验报告一》请在金锄头文库上搜索。

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