操作系统实验报告Word文档格式.docx
《操作系统实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《操作系统实验报告Word文档格式.docx(42页珍藏版)》请在冰点文库上搜索。
存储管理
5.1提高Windows2000内存性能(阅读)………………………18
5.2Windows2000内存结构……………………………………20
5.3Windows2000虚拟内存……………………………………21
2.2Windows2000系统管理
(实验估计时间:
60分钟)
Ø
背景知识
实验目的
工具/准备工作
实验内容与步骤
(参照已经发布的实验描述http:
//202.113.13.91/teacher/yuxue/2007-os.htm)
实验内容与步骤
1.计算机管理
2.事件查看器
3.性能监视
4.服务
5.数据库(ODBC)
为了帮助用户管理和监视系统,Windows2000提供了多种系统管理工具,其中最主要的有计算机管理、事件查看器和性能监视等。
步骤1:
登录进入Windows2000Professional。
步骤2:
在“开始”菜单中单击“设置”-“控制面板”命令,双击“管理工具”图标。
在本地计算机“管理工具”组中,有哪些系统管理工具,基本功能是什么:
1)__________________________________________________________________
2)__________________________________________________________________
3)__________________________________________________________________
4)__________________________________________________________________
5)__________________________________________________________________
6)__________________________________________________________________
7)__________________________________________________________________
8)__________________________________________________________________
9)__________________________________________________________________
10)_________________________________________________________________
1.计算机管理
使用“计算机管理”可通过一个合并的桌面工具来管理本地或远程计算机,它将几个Windows2000管理实用程序合并到一个控制台目录树中,使管理员可以轻松地访问特定计算机的管理属性和工具。
步骤3:
在“管理工具”窗口中,双击“计算机管理”图标。
“计算机管理”使用的窗口与“Windows资源管理器”相似。
在用于导航和工具选择的控制台目录树中有“系统工具”、“存储”及“服务和应用程序”等节点,窗口右侧“名称”窗格中显示了工具的名称、类型或可用的子工具等。
它们是:
1)系统工具,填入表2-3中。
表2-3实验记录
名称
类型
描述
2)存储,填入表2-4中。
表2-4实验记录
3)服务和应用程序,填入表2-5中。
表2-5实验记录
2.事件查看器
事件查看器不但可以记录各种应用程序错误、损坏的文件、丢失的数据以及其他问题,而且还可以把系统和网络的问题作为事件记录下来。
管理员通过查看在事件查看器中显示的系统信息,可以迅速诊断和纠正可能发生的错误和问题。
步骤4:
在“管理工具”窗口中,双击“事件查看器”图标。
在Windows2000事件查看器中,管理员可以查看到三种类型的本地事件日志,请填入表2-6中。
表2-6实验记录
当前大小
步骤5:
在事件查看器中观察“应用程序日志”:
本地计算机中,共有______________个应用程序日志事件。
步骤6:
单击“查看”菜单中的“筛选”命令,系统日志包括的事件类型有:
3.性能监视
“性能”监视工具通过图表、日志和报告,使管理员可以看到特定的组件和应用进程的资源使用情况。
利用性能监视器,可以测量计算机的性能,识别以及诊断计算机可能发生的错误,并且可以为某应用程序或者附加硬件制作计划。
另外,当资源使用达到某一限定值时,也可以使用警报来通知管理员。
步骤7:
在“管理工具”窗口中,双击“性能”图标。
“性能”窗口的控制台目录树中包括的节点有:
2)_______________________________________________,其中的子节点填入表2-7中。
表2-7实验记录
4.服务
步骤8:
在“管理工具”窗口中,双击“服务”图标。
在你的本地计算机中,管理着__________________个系统服务项目。
通过观察,重点描述你所感兴趣的5个系统服务项目:
________________________________________________________________________
5.数据源(ODBC)
ODBC,即开放数据库连接。
通过ODBC可以访问来自多种数据库管理系统的数据。
例如,ODBC数据源会允许一个访问SQL数据库中数据的程序,同时访问VisualFoxPro数据库中的数据。
为此,必须为系统添加称为“驱动程序”软件组件。
步骤9:
在“管理工具”窗口中,双击“数据源(ODBC)”图标,打开“ODBC数据源管理器”对话框,请描述其中各选项卡的功能,填入表2-8中。
表2-8实验记录
选项卡
功能描述
用户DSN
系统DSN
文件DSN
驱动程序
跟踪
连接池
3.2Windows2000编程
120分钟)
//202.113.13.91/teacher/yuxue/2006-os.htm)
1.简单的控制台应用程序
2.GUI应用程序
3.进程对象
1.简单的控制台应用程序
我们先来创建一个名为“Hello,World”的应用程序。
在“开始”菜单中单击“程序”-“附件”-“记事本”命令,将清单3-l中的程序键入记事本中,并把代码保存为Hello.cpp。
清单3-1一个简单的Windows2000控制台应用程序
//hello项目
#include<
iostream>
voidmain()
{
std:
:
cout<
<
“Hello,Windows2000”<
std:
endl;
}
在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,并利用简单的标准命令行:
C:
\>
CLHello.cpp
来创建可执行的Hello.EXE。
操作能否正常进行?
如果不行,则可能的原因是什么?
____________________________________________________________________
运行Hello.EXE程序,产生用户键入的一行文字。
运行结果(如果运行不成功,则可能的原因是什么?
):
____________________________________________________________________
2.GUI应用程序
在下面的实验中,C++编译器创建一个GUI应用程序,代码中包括了WinMain()方法,这是GUI类型的应用程序的标准入口点。
在“开始”菜单中单击“程序”-“附件”-“记事本”命令,将清单3-2中的程序键入记事本中,并把代码保存为3-2.cpp。
清单3-2Windows2000的GUI应用程序
在“命令提示符”窗口运行CL.EXE,产生3-2.EXE文件:
CL3-2.cpp
在清单3-2的GUI应用程序中,首先需要Windows.h头文件,以便获得传送给WinMain()和MessageBox()API函数的数据类型定义。
接着的pragma指令指示编译器/连接器找到User32.LIB库文件并将其与产生的EXE文件连接起来。
这样就可以运行简单的命令行命令CLMsgBox.CPP来创建这一应用程序,如果没有pragma指令,则MessageBox()API函数就成为未定义的了。
这一指令是VisualStudioC++编译器特有的。
接下来是WinMain()方法。
其中有四个由实际的低级入口点传递来的参数。
hInstance参数用来装入与代码相连的图标或位图一类的资源,无论何时,都可用GetModuleHandle()API函数将这些资源提取出来。
系统利用实例句柄来指明代码和初始的数据装在内存的何处。
句柄的数值实际上是EXE文件映像的基地址,通常为0x00400000。
下一个参数hPrevInstance是为向后兼容而设的,现在系统将其设为NULL。
应用程序的命令行(不包括程序的名称)是lpCmdLine参数。
另外,系统利用nCmdShow参数告诉应用程序如何显示它的主窗口(选项包括最小化、最大化和正常)。
最后,程序调用MessageBox()API函数并退出。
如果在进入消息循环之前就结束运行的话,最后必须返回0。
运行结果(试将其中的信息与清单3-1程序的运行结果进行比较):
3.进程对象
操作系统将当前运行的应用程序看作是进程对象。
利用系统提供的惟一的称为句柄(HANDLE)的号码,就可与进程对象交互。
这一号码只对当前进程有效。
本实验表示了一个简单的进程句柄的应用。
在系统中运行的任何进程都可调用GetCurrentProcess()API函数,此函数可返回标识进程本身的句柄。
然后就可在Windows需要该进程的有关情况时,利用这一句柄来提供。
将清单3-3.cpp程序键入记事本中,并把代码保存为3-3.cpp。
清单3-3中列出的是一种获得进程句柄的方法。
对于进程句柄可进行的惟一有用的操作是在API调用时,将其作为参数传送给系统,正如清单3-3中对GetPriorityClass()API函数的调用那样。
在这种情况下,系统向进程对象内“窥视”,以决定其优先级,然后将此优先级返回给应用程序。
OpenProcess()和CreateProcess()API函数也可以用于提取进程句柄。
前者提取的是已经存在的进程的句柄,而后者创建一个新进程,并将其句柄提供出来。
在“命令提示符”窗口运行CL.EXE,产生3-3.EXE文件:
CL3-3.cpp
运行结果:
__________________________________________________________
将清单3-4.cpp程序键入记事本中,并把代码保存为3-4.cpp。
清单3-4显示如何找出系统中正在运行的所有进程,如何利用OpenProcess()API函数来获得每一个访问进程的进一步信息。
清单3-4利用句柄查出进程的详细信息
清单3-4程序首先利用Windows2000的新特性,即工具帮助库来获得当前运行的所有进程的快照。
然后应用程序进入快照中的每一个进程,得到其以PROCESSENTRY32结构表示的属性。
这一结构用来向OpenProcess()API函数提供进程的ID。
Windows跟踪每一进程的有关时间,示例中是通过打开的进程句柄和GetProcessTimes()API来直询得到有关时间的。
接下来,一个定制的帮助函数取得了几个返回的数值,然后计算进程在内核模式下消耗的时间占总时间的百分比。
程序的其余部分比较简单,只是将有关信息显示给用户,清除进程句柄,然后继续循环,直到所有进程都计算过为止。
步骤10:
在“命令提示符”窗口运行CL.EXE,产生3-4.EXE文件:
CL3-4.cpp
3.3Windows2000进程的“一生”
Ø
1.创建进程
2.正在运行的进程
3.终止进程
1.创建进程
本实验显示了创建子进程的基本框架。
该程序只是再一次地启动自身,显示它的系统进程ID和它在进程列表中的位置。
在“开始”菜单中单击“程序”-“MicrosoftVisualStudio6.0”–“MicrosoftVisualC++6.0”命令,进入VisualC++窗口。
在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序3-5.cpp。
清单3-5创建子进程
单击“Build”菜单中的“Compile3-5.cpp”命令,系统显示:
Thisbuildcommandrequiresanactiveprojectworkspace.Wouldyouliketo
createadefaultprojectworkspace?
(build命令需要一个活动的项目工作空间。
你是否希望建立一个缺省的
项目工作空间?
)
单击“是”按钮确认。
系统对3-5.cpp进行编译。
编译完成后,单击“Build”菜单中的“Build3-5.exe”命令,建立3-5.exe可执行文件。
在工具栏单击“ExecuteProgram”(执行程序)按钮,或者按Ctrl+F5键,或者单击“Build”菜单中的“Execute3-5.exe”命令,执行3-5.exe程序。
按Ctrl+S键可暂停程序的执行,按Ctrl+Pause(Break)键可终止程序的执行。
清单3-5展示的是一个简单的使用CreateProcess()API函数的例子。
首先形成简单的命令行,提供当前的EXE文件的指定文件名和代表生成克隆进程的号码。
大多数参数都可取缺省值,但是创建标志参数使用了:
____________________