《操作系统教程》
实验报告书
专业班级 | 物141班 |
学 号 | 149074353 |
姓 名 | 程裕博 |
指导教师 | 郭玉华 |
安徽工业大学计算机
实验一 WINDOWS进程初识
1、实验目的
(1)学会使用VC编写基本的Win32 Consol Application(控制
(2)台应用程序)。
(3)掌握WINDOWS API的使用方法。
(4)编写测试程序,理解用户态运行和核心态运行。
2、实验内容和步骤
(1)编写基本的Win32 Consol Application
步骤1:登录进入Windows,启动VC++ 6.0。
步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location” 处输入工程目录。创建一
个新的控制台应用程序工程。
步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File” 处输入C/C++源程序的文件名。
步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。
步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:
E:\课程\os课\os实验\程序\os11\debug&
运行结果 (如果运行不成功,则可能的原因是什么?) :
运行成功,截图:
(2)计算进程在核心态运行和用户态运行的时间
步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。
步骤2: 在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。
步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。
E:\课程\os课\os实验\程序\os12\debug>
步骤4:运行结果 (如果运行不成功,则可能的原因是什么?):
process ID: 3716,EXE ,%d in Kernel mode: 60
步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。
屏蔽i循环:
process ID: 1412,EXE ,%d in Kernel mode: 62
屏蔽j循环:
process ID: 1816,EXE ,%d in Kernel mode: 34
调整循环变量i的循环次数:
process ID: 2616,EXE ,%d in Kernel mode: 64
调整循环变量j的循环次数:
process ID: 1868,EXE ,%d in Kernel mode: 50
3、实验结论
对Win32 Consol Application有进一步的认识,WIN32 API也就是Windows 32平台的应用程序编程接口。用户态运行和核心态运行,核心态就是一个是直接的代码运行,即win32consol Application下代码运行;而用户态是在DOS下运行的,对编译好的程序进行的运行,核心态速度较快,没有太多的约束,而用户态的运行需要时间较长,由于有相应的约束。
实验二 进程管理
1、实验目的
1) 通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows进程的“一生”。
2) 通过阅读和分析实验程序,学习创建进程、观察进程、终止进程以及父子进程同步的基本程序设计方法。
createprocessa2、实验内容和步骤
(1). 创建进程
本实验显示了创建子进程的基本框架。该程序只是再一次地启动自身,显示它的系统进程ID和它在进程列表中的位置。
步骤1:创建一个“Win32 Consol Application”工程,然后拷贝清单2-1中的程序,编译成可执行文件。
步骤2:在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果:
范例:E:\课程\os课\os实验\程序\os11\debug>os21
(假设编译生成的可执行文件是)
ProcessID:3012, Clone ID:0
Process ID:2748, Clone ID:1
Process ID:4044, Clone ID:2
Process ID:2896, Clone ID:3
Process ID:1588, Clone ID:4
Process ID:2144, Clone ID:5
按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性:
步骤3:在“命令提示符”窗口加入参数重新运行生成的可执行文件。运行结果:
范例:E:\课程\os课\os实验\程序\os11\debug>os21 3
(假设编译生成的可执行文件是)
Process ID:3112, Clone ID:3
Process ID:1380, Clone ID:4
Process ID:3576, Clone ID:5
按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性:
步骤4:修改清单2-1中的程序,将nClone的定义和初始化方法按程序注释中的修改方法进行修改,编译成可执行文件(执行前请先保存已经完成的工作)。再按步骤2中的方式运行,看看结果会有什么不一样。运行结果:
Process ID:3112, Clone ID:3
Process ID:1380, Clone ID:4
Process ID:3576, Clone ID:5
从中你可以得出什么结论:
nClone的作用:控制ID的起始值,并控制其输出窗口的数量。_
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论