操作系统windows实验报告Word文件下载.docx
- 文档编号:17493701
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:18
- 大小:132.66KB
操作系统windows实验报告Word文件下载.docx
《操作系统windows实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《操作系统windows实验报告Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
5.数据源(ODBC):
即开放数据库连接。
添加、删除以及配置ODBC数据源和驱动程序,
通过ODBC可以访问来自多种数据库管理系统的数据。
6.性能:
显示系统性能图表以及配置数据日志和警报。
7.组建服务:
配置并管理COM+应用程序。
1.计算机管理
使用“计算机管理”可通过一个合并的桌面工具来管理本地或远程计算机,它将几个Windows2000管理实用程序合并到一个控制台目录树中,使管理员可以轻松地访问特定计算机的管理属性和工具。
步骤3:
在“管理工具”窗口中,双击“计算机管理”图标。
“计算机管理”使用的窗口与“Windows资源管理器”相似。
在用于导航和工具选择的控制台目录树中有“系统工具”、“存储”及“服务和应用程序”等节点,窗口右侧“名称”窗格中显示了工具的名称、类型或可用的子工具等。
它们是:
1)系统工具,填入表2-3中。
表2-3实验记录
名称
类型
描述
事件查看器
扩展管理单元
显示事件日志
共享文件夹
显示共享文件夹、目前会话及打开文件
本地用户和组
管理本地用户和组
性能日志和警报
配置性能数据日志和警报
设备管理器
2)存储,填入表2-4中。
表2-4实验记录
可移动存储
编录可移动媒体并管理自动库
磁盘碎片整理程序
扩展名管理单元
对本地卷上的文件和文件夹进行碎片整理
磁盘管理(本地)
管理单元
逻辑磁盘管理器
3)服务和应用程序,填入表2-5中。
表2-5实验记录
服务
启动、终止并设置windows服务
WMI控件
配置和控制windowsManagementInstrumentation(WMI)服务
SQLServer配置管理器
2.事件查看器
事件查看器不但可以记录各种应用程序错误、损坏的文件、丢失的数据以及其他问题,而且还可以把系统和网络的问题作为事件记录下来。
管理员通过查看在事件查看器中显示的系统信息,可以迅速诊断和纠正可能发生的错误和问题。
步骤4:
在“管理工具”窗口中,双击“事件查看器”图标。
在Windows2000事件查看器中,管理员可以查看到三种类型的本地事件日志,请填入表2-6中。
表2-6实验记录
当前大小
应用程序
日志
应用程序错误记录
512KB
安全性
安全审核记录
64.0KB
系统
日志
系统错误记录
512KB
步骤5:
在事件查看器中观察“应用程序日志”:
本地计算机中,共有____2204_______个应用程序日志事件。
步骤6:
单击“查看”菜单中的“筛选”命令,系统日志包括的事件类型有:
1.信息
2.警告
3.错误
4.成功审核
5.失败审核
6.性能监视
“性能”监视工具通过图表、日志和报告,使管理员可以看到特定的组件和应用进程的资源使用情况。
利用性能监视器,可以测量计算机的性能,识别以及诊断计算机可能发生的错误,并且可以为某应用程序或者附加硬件制作计划。
另外,当资源使用达到某一限定值时,也可以使用警报来通知管理员。
步骤7:
在“管理工具”窗口中,双击“性能”图标。
“性能”窗口的控制台目录树中包括的节点有:
1.系统监视器
2.性能日志和警报,其中的子节点填入表2-7中。
表2-7实验记录
计数器日志
配置性能数据计数器日志
跟踪日志
配置跟踪事件日志
警报
配置性能警报
4.服务
步骤8:
在“管理工具”窗口中,双击“服务”图标。
在你的本地计算机中,管理着___59_____个系统服务项目。
通过观察,重点描述你所感兴趣的5个系统服务项目:
1.ApplicationLayerGatewayServers:
为Internet连接共享和windows防火墙提供第三方协议插件的支持。
2.AdobeFlashPlayerUpdateServers:
此服务可使您安装的AdobeFlashPlayer能及时获得最新新增功能和安全修补程序。
3.DHCPClient:
通过注册和更改IP地址以及DNS名称来管理网络配置。
4.EventLog:
启用在事件查看器基于Windows的程序和组件颁发的事件日志消息。
无法终止此服务。
5.FastUserSwitchingCompatibility:
为在多用户下需要协助的应用程序提供管理。
5.数据源(ODBC)
ODBC,即开放数据库连接。
例如,ODBC数据源会允许一个访问SQL数据库中数据的程序,同时访问VisualFoxPro数据库中的数据。
为此,必须为系统添加称为“驱动程序”软件组件。
步骤9:
在“管理工具”窗口中,双击“数据源(ODBC)”图标,打开“ODBC数据源管理器”对话框,请描述其中各选项卡的功能,填入表2-8中。
表2-8实验记录
选项卡
功能描述
用户DSN
ODBC用户数据源存储了如何与指定数据提供程序连接的信息。
用户数据源只对当前用户可见,而且只能用于当前机器上。
系统DSN
ODBC系统数据源存储了如何与指定数据提供程序连接的信息。
系统数据源对当前机器上的所有用户可见,包括NT服务。
文件DSN
ODBC文件数据源允许用户连接到数据提供程序。
文件DSN可以由安装了相同驱动程序的用户共享。
驱动程序
ODBS驱动程序允许支持ODBC的程序从ODBC数据源获取信息。
要安装新的驱动程序,请使用其安装程序。
跟踪
ODBC跟踪允许创建调用ODBC驱动程序的日志,以供技术支持人员查看,也有助于您调试应用程序。
Studio跟踪启用MicrosoftVisualStudio的ODBC跟踪。
连接池
连接池允许应用程序重用打开连接句柄,此操作将节省到服务器的往返过程。
实验二:
进程控制与描述
2.1Windows2000编程
120分钟)
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。
操作能否正常进行?
如果不行,则可能的原因是什么?
不行,可能原因是:
需要添加环境变量CL.EXE
Dos中提示:
‘CL’不是内部或外部命令,也不是可运行的程序或批处理文件。
步骤4:
运行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
实验三Windows2000进程的“一生”
实验内容与步骤:
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文件的指定文件名和代表生成克隆进程的号码。
大多数参数都可取缺省值,但是创建标志参数使用了:
createnewconsole标志,指示新进程分配它自己的控制台,这使得运行示例程序时,在任务栏上产生许多活动标记。
然后该克隆进程的创建方法关闭传递过来的句柄并返回main()函数。
在关闭程序之前,每一进程的执行主线程暂停一下,以便让用户看到其中的至少一个窗口。
CreateProcess()函数有____10____个核心参数?
本实验程序中设置的各个参数的值是:
a._szFilename_______________________________________________;
b._szCmdLine______________________________________________;
c.___NULL______________________________________________;
d.____NULL_____________________________________________;
e._FALSE______________________________________________;
f.___CREATE_NEW_CONSOLE_____________________________________________;
g._____NULL____________________________________________;
h.______NULL____________________________________________;
i.&
si
j.&
pi
程序运行时屏幕显示的信息是:
ProcessID:
4204,CloneID:
Pressanykeytocontinue
提示:
部分程序在VisualC++环境完成编译、链接之后,还可以在Windows2000的“命令提示符”状态下尝试执行该程序,看看与在可视化界面下运行的结果有没有不同?
为什么?
2.正在运行的进程
本实验的程序中列出了用于进程信息查询的API函数GetProcessVersion()与GetVersionEx()的共同作用,可确定运行进程的操作系统的版本号。
在VisualC++窗口的工具栏中单击“打开”按钮,在“打开”对话框中找到并打开实验源程序3-6.cpp。
清单3-6使用进程和操作系统的版本信息
单击“Build”菜单中的“Compile3-6.cpp”命令,再单击“是”按钮确认。
系统对3-6.cpp进行编译。
编译完成后,单击“Build”菜单中的“Build3-6.exe”命令,建立3-6.exe可执行文件。
能够正常运行
步骤11:
在工具栏单击“ExecuteProgram”(执行程序)按钮,执行3-6.exe程序。
当前PID信息:
2712,requiresos:
10
当前操作系统版本:
Runningonos:
5.1
系统提示信息:
TaskManagershouldnowindicatethisprocessishighpriority
清单3-6中的程序向读者表明了如何获得当前的PID和所需的进程版本信息。
为了运行这一程序,系统处理了所有的版本不兼容问题。
接着,程序演示了如何使用GetVersionEx()API函数来提取OSVERSIONINFOEX结构。
这一数据块中包括了操作系统的版本信息。
其中,“OS:
5.0”表示当前运行的操作系统是:
Windows2000当前版本为OS:
5.0
清单3-6的最后一段程序利用了操作系统的版本信息,以确认运行的是Windows2000。
代码接着将当前进程的优先级提高到比正常级别高。
步骤12:
单击Ctrl+Alt+Del键,进入“Windows任务管理器”,在“应用程序”选项卡中右键单击“3-6”任务,在快捷菜单中选择“转到进程”命令。
在“Windows任务管理器”的“进程”选项卡中,与“3-6”任务对应的进程映像名称是(为什么?
____________MSDEV.EXE________________________________________________________
右键单击该进程名,在快捷菜单中选择“设置优先级”命令,可以调整该进程的优先级,如设置为“高”后重新运行3-6.exe程序,屏幕显示有变化吗?
屏幕显示有变化,运行结果为:
除了改变进程的优先级以外,还可以对正在运行的进程执行几项其他的操作,只要获得其进程句柄即可。
SetProcessAffinityMask()API函数允许开发人员将线程映射到处理器上;
SetProcessPriorityBoost()API可关闭前台应用程序优先级的提升;
而SetProcessWorkingSet()API可调节进程可用的非页面RAM的容量;
还有一个只对当前进程可用的API函数,即SetProcessShutdownParameters(),可告诉系统如何终止该进程。
3.终止进程
在清单3-7列出的程序中,先创建一个子进程,然后指令它发出“自杀弹”互斥体去终止自身的运行。
步骤13:
在VisualC++窗口的工具栏中单击“打开”按钮,在“打开”对话框中找到并打开实验源程序3-7.cpp。
清单3-7指令其子进程来“杀掉”自己的父进程
清单3-7中的程序说明了一个进程从“生”到“死”的整个一生。
第一次执行时,它创建一个子进程,其行为如同“父亲”。
在创建子进程之前,先创建一个互斥的内核对象,其行为对于子进程来说,如同一个“自杀弹”。
当创建子进程时,就打开了互斥体并在其他线程中进行别的处理工作,同时等待着父进程使用ReleaseMutex()API发出“死亡”信号。
然后用Sleep()API调用来模拟父进程处理其他工作,等完成时,指令子进程终止。
当调用ExitProcess()时要小心,进程中的所有线程都被立刻通知停止。
在设计应用程序时,必须让主线程在正常的C++运行期关闭(这是由编译器提供的缺省行为)之后来调用这一函数。
当它转向受信状态时,通常可创建一个每个活动线程都可等待和停止的终止事件。
在正常的终止操作中,进程的每个工作线程都要终止,由主线程调用ExitProcess()。
接着,管理层对进程增加的所有对象释放引用,并将用GetExitCodeProcess()建立的退出代码从STILL_ACTIVE改变为在ExitProcess()调用中返回的值。
最后,主线程对象也如同进程对象一样转变为受信状态。
等到所有打开的句柄都关闭之后,管理层的对象管理器才销毁进程对象本身。
还没有一种函数可取得终止后的进程对象为其参数,从而使其“复活”。
当进程对象引用一个终止了的对象时,有好几个API函数仍然是有用的。
进程可使用退出代码将终止方式通知给调用GetExitCodeProcess()的其他进程。
同时,GetProcessTimes()API函数可向主调者显示进程的终止时间。
步骤14:
单击“Build”菜单中的“Compile3-7.cpp”命
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 windows 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)