操作系统原理实验2+岳青山+0907052247
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《操作系统原理》实验报告
实验序号:2 实验项目名称: Windows 基本进程管理
1、实验目的
通过观察任务管理器,来观察各个进程的动态信息。
2、实验工具
(1)一台WindowsXP操作系统的计算机。
(2)计算机装有Microsoft Visual Studio C++6.0专业版或企业版。
3、预备知识
·任务管理器,了解用户计算机上正在运行的程序和进程的相关信息。
·Windows环境中的编程。
相关内容参见本次实验参考资料部分。
4、基本实验
1)观察任务管理器
步骤一:进入WindowsXP。
步骤二:按Ctrl+Alt+Delete(或按Ctrl+Shift+Esc)键都可以调出任务管理器。
步骤三:单击“查看”→“选择列”选项,可以看到一些选项,
这里,可以查看每个进程的PID,CPU使用时间,内存的使用情况,当前的进程是系统的还是用户的,每个句柄的数量,每个进程的优先级,等等。
步骤四:单击“性能”标签,在所示的“性能”选项卡中可以看到CPU的使用情况、内存的使用情况。
2)通过命令观察进程情况、
步骤一:单击“开始”→“运行”选项,输入cmd“命令提示符”下。
步骤二:输入tasklist。
步骤三:继续输入tasklist/?来寻找帮助,里面有更详细的解释。
3)通过命令来关闭一个进程
步骤一:单击“开始”→“运行”选项,输入cmd“命令提示符”下。
步骤二:输入tasklist后回车执行。
步骤三:继续输入taskkill/PID 208/T
5、实验编程
进行一个简单的Windows的图形用户接口(GUI)编程。
步骤一:进入WindowsXP。
步骤二:进入Microsoft Visual Studio C++6.0。
步骤三:在菜单栏中单击“文件”→“新建”→“文件”→C++Source File,选择路径(如D:\1.cpp),并命名为1.cpp。
步骤四:将下面的程序源代码输入。
步骤五:单击Windows系统的“开始”→“运行”选项,输入cmd。
步骤六:依次输入命令为
cd \
d:// 这里是存放的源程序地方,如果是放在其他地方,则利用cd命令进入源程序的地方CL 1.cpp// 对这是源程序进行编程
步骤七:若没有错误,则会自动生成1.exe和1.obj文件,双击“1.exe”,即可看到结果。源代码如下:
# include < windows.h>
# include < stdio.h>
//告诉连接器与包括MessageBox API函数的user32库进行连接
# pragma comment(lib,”user32.lib”)
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
∷MessageBox(
NULL, //没有父窗口
“hello windows XP”, // 消息框中的文本显示hello windows XP
“提示”,//消息框的标题
MB OK); // 其中只有一个OK按钮
//返回0以便通知系统不进入消息循环
return 0;
}
6、扩展实验
1、获得和使用进程的句柄
步骤一:进入WindowsXP。
步骤二:Microsoft Visual Studio C++6.0。
步骤三:在菜单栏中单击“文件”→“新建”→“文件”→C++Source File,选择路径(如:D:\2.cpp。
步骤四:将下面的程序源代码输入。
步骤五:单击Windows 系统的“开始”→“运行”选项,输入cmd。
步骤六:依次输入命令为:
cd\
d://这里是存放的源程序地方,如果是放在其他地方,则利用cd命令进入源程序的地方CL 2.cpp//对这是源程序进行编译
步骤七:若没有错误,则会自动生成2.exe和2.obj文件,双击2.exe,
程序源代码如下:
#include < windows.h >
#include < iostream.h >
#include < stdio.h >
//确定自己的优先权的简单应用程序
void main()
﹛
//从当前过程中提取句柄
HANDLE hProcessThis=::GetCurrentProcess();
//请求内核提供该过程所属的优先权类
DWORD dwPriority=::GetPriorityClass(hProcessThis);
//发出消息,为用户描述该类
std::cout〈〈“current process priority:”;
switch(dwPriority)
﹛
case HIGH PRIORITY CLASS:
std::cont<<”High”;
break;
case NORMAL PRIORITY CLASS:
std::coutg<<”Normal”,
break;
case IDLE PRIORITY CLASS;
std::cout<<”Idle”;
break;
case REALTIME PRIORITY CLASS:
std::cout<<”Realtime”;
break;
default:
std::cout<<”
break;
﹜
Std::cout< Getchar(); ﹜ 2)利用句柄来获得进程的详细信息 步骤一:进入进入WindowsXP。 步骤二:Microsoft Visual Studio C++6.0。 步骤三:在菜单栏中单击“文件”→“新建”→“文件”→C++Source File,选择路径(如D:\3.cpp),并命名为3.cpp。 步骤四:将下面的程序源代码输入。 步骤五:单击Windows系统的“开始”→“运行”选项,输入cmd。 步骤六:依次输入命令为: cd\ d://这里是存放的源程序地方,如果是放在其他地方,则利用cd命令进入源程序的地方CL 3.cpp//对这是源程序进行编译 步骤七:若没有错误,则会自动生成3.exe和3.obj文件,双击”3.exe”, 程序源代码如下: #include < windows.h > #include < tlhelp32.h > #include < iostream.h > #include < stdio.h > //当在用户模式机内模式下都提供所耗时间时,在内核模式下进行所耗时间的64位计算的