好文档 - 专业文书写作范文服务资料分享网站

操作系统实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

操作系统教程 实验指导书

阮越 许文方

实验一 windows进程初识 1、 实验目的

(1) 学会使用vc编写基本的win32 consol application(控制台应用程序)。 (2) 掌握windows api的使用方法。

(3) 编写测试程序,理解用户态运行和核心态运行。 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>hello.exe

运行结果 (如果运行不成功,则可能的原因是什么?) : 答:运行成功,结果:

(2)计算进程在核心态运行和用户态运行的时间

步骤1:按照(1)中的步骤创建一个新的“win32 consol application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。

步骤2: 在创建一个新的“win32 consol application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。

步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。

e:\\课程\\os课\\os实验\\程序\\os12\\debug>time test.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?)

因为此程序是个死循环,所以运行时间为无穷大。______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________步骤5:分别屏蔽while循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环:

_______________________________________________________________________________屏蔽j循环:

_______________________________________________________________________________调整循环变量i的循环次数:

_______________________________________________________________________________调整循环变量j的循环次数:

_______________________________________________________________________________ 3、 实验结论

通过实验可以得知运行一个程序cpu的使用情况是不同的,同时与循环的次数无关,和当前计算的复杂情况有关。实验得出的数据可以可以说明这一点。 实验二 进程管理 1、实验目的

1) 通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解windows进程的“一生”。

2) 通过阅读和分析实验程序,学习创建进程、观察进程、终止进程以及父子进程同步的基本程序设计方法。

2、实验内容和步骤 (1). 创建进程

本实验显示了创建子进程的基本框架。该程序只是再一次地启动自身,显示它的系统进程id和它在进程列表中的位置。

步骤1:创建一个“win32 consol application”工程,然后拷贝清单2-1中的程序,编译成可执行文件。

步骤2:在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果: 范例:e:\\课程\\os课\\os实验\\程序\\os11\\debug>os21 (假设编译生成的可执行文件是os21.exe)

______________________________ _____ ______ _______ _________

___ ______________________________________

______________________________________

________________________________

____________________________________

_________________________________

按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性: pid:3676 , 句柄数:11

内存使用:1080k

页面错误:263 页面缓存:15k

步骤3:在“命令提示符”窗口加入参数重新运行生成的可执行文件。运行结果: 范例:e:\\课程\\os课\\os实验\\程序\\os11\\debug>os21 3 (假设编译生成的可执行文件是os21.exe)

按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性: pid:2821 句柄数:7

内存使用:832k 页面错误:263 页面缓存:15k

步骤4:修改清单2-1中的程序,将nclone的定义和初始化方法按程序注释中的修改方法进行修改,编译成可执行文件(执行前请先保存已经完成的工作)。再按步骤2中的方式运行,看看结果会有什么不一样。运行结果: 第一次修改:结果不变。

第二次修改:是一个死循环,不断的弹出此窗口:

从中你可以得出什么结论:

nclone的作用:_控制程序的执行,当nclone大于等于5时可跳出程序。 ________________________________________________________________

_____________________________________________________________________ 变量的定义和初始化方法(位置)对程序的执行结果有影响吗?为什么?________________ ____有,nclone被修改后会对程序的结束控制产生影响 _______________________________________________________________________________ (2). 父子进程的简单通信及终止进程

步骤1:创建一个“win32 consol application”工程,然后拷贝清单2-2中的程序,编译成可执行文件。

步骤2:在vc的工具栏单击“execute program”(执行程序) 按钮,或者按ctrl + f5键,或者在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果: 范例:e:\\课程\\os课\\os实验\\程序\\os11\\debug>os22 (假设编译生成的可执行文件是 os22.exe)

步骤3:按源程序中注释中的提示,修改源程序2-2,编译执行(执行前请先保存已经完成的工作)。运行结果: 不断的弹出:

在程序中加入跟踪语句,或调试运行程序,同时参考msdn中的帮助文件createprocess()的使用方法,理解父子进程如何传递参数。给出程序执行过程的大概描述: 通过main(int argc, char* argv[])传递参数,每次运行时先检测argc的值,若小于1,程序运行结束,否则继续往下执行。

操作系统实验报告

操作系统教程实验指导书阮越许文方实验一windows进程初识1、实验目的(1)学会使用vc编写基本的win32consolapplication(控制台应用程序)。(2)掌握windowsapi的使用方法。(3)编写测试程序,理解用户态运行和核心态
推荐度:
点击下载文档文档为doc格式
4rihj1266d5gf8w599hz
领取福利

微信扫码领取福利

微信扫码分享