




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..实验一:进度控制描绘与控制Windows“任务管理器”的进度管理一、实验名称Windows“任务管理器”的进度管理二、实验目的经过在Windows任务管理器中对程序进度进行响应的管理操作,熟习操作系统进度管理的观点,学习察看操作系统运转的动向性能。三、实验容与步骤使用任务管理器停止进度显示其余进度计数器更更正在运转的程序的优先级启动并进入Windows环境,单击Ctrl+Alt+Del键,或许右键单击任务栏,在快捷菜单中单击“任务管理器”命令,翻开“任务管理器”窗口。在本次实验中,你使用的操作系统版本是:_______Windows_XP______________________目前机器中由你翻开,正在运转的应用程序有:1)_______________2)实验一___3)操作系统_____________4)百度首页________Windows“任务管理器”的窗口由____4__个选项卡构成,分别是:应用程序_______________进度________________________性能___________________联网__________________目前“进度”选项卡显示的栏目分别是(可挪动窗口下方的游标/箭头,或使窗口最大化进行察看):Word资料...使用任务管理器停止进度步骤1:单击“进度”选项卡,一共显示了__40___个进度。请试着划分一下,此中:系统(SYSTEM)进度有____25__个,填入表3-1中。表3-1实验记录WmiprvseSYSTEM005376kcidaemonSYSTEM00300kcidaemonSYSTEM00856kcidaemonSYSTEM50284kcisvcSYSTEM00924kcsrssSYSTEM007412kmqtgsvcSYSTEM004144kmqsvcSYSTEM006632ksnmpSYSTEM004340ktcpservcsSYSTEM003840kSmssSYSTEM00404kSystemSYSTEM00300kSystemIdleProcessSYSTEM9928kWord资料...winlogonSYSTEM001684kservicesSYSTEM005776klsassSYSTEM001100ksvchostSYSTEM005324kmDNSResponderSYSTEM003920ksvchostSYSTEM0018716kinetinfoSYSTEM0010608ksamserviceSYSTEM002460kPGPservSYSTEM006880kPandoraServiceSYSTEM009148kspoolsvSYSTEM005688kMDMSYSTEM003416k服务(SERVICE)进度有_____5个,填入表3-2中。表3-2实验记录映像名称用户名SvchostLOCALSERVICEalgLOCALSERVICEmsdtcNETWORKSERVICESvchostNETWORKSERVICESvchostNETWORKSERVICE
CPU存使用003996k003960k005228k005048k003888k用户进度有___10___个,填入表3-3中。表3-3实验记录映像名称用户名CPU存使用realschedAdministrator00356kBufmonitorAdministrator002988kCtfmonAdministrator003512kNCClt.dllAdministrator009932kLenRCClientAdministrator004588kPGPtrayAdministrator0015100kSogouCloudAdministrator004920kExplorerAdministrator0010436kTaskmgrAdministrator002708kWord资料...WINWORDAdministrator0071188k步骤2:单击要停止的进度,而后单击“结束进度”按钮。停止进度,将结束它直接或间接创立的全部子进度。比如,假如停止了电子程序(如Outlook98)的进度树,那么同时也停止了有关的进度,如MAPI后台办理程序mapisp32.exe。请将停止某进度后的操作结果与原记录数据对照,发生了什么:________________停止QQ.exe后QQExternal.exe也会结束,______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________显示其余进度记数器在“进度”选项卡上单击“查察”菜单,而后单击“选择列”命令。单击要增添显示为列标题的项目,而后单击“确立”。为对进度列表进行排序,可在“进度”选项卡上单击要依据其进行排序的列标题。而为了要反转排序次序,可再次单击列标题。经过调整,“进度”选项卡此刻显示的项目分别是:___映像名称、PID、用户名、回话ID、CPU、CPU时间、工作设置(存)、峰值工作设置(存)、工作设置增量(存)、存(专用工作集)、I/O读取、I/O写入、命令行、描绘经过对“查察”菜单的选择操作,能够在“任务管理器”中改正显示选项:·在“应用程序”选项卡上,能够按详尽信息、大图标或小图标查察。·在“性能”选项卡上,能够改正CPU记录图,并显示核时间。“显示核时间”选项在“CPU使用”和“CPU使用记录”图表上增添红线。红线指示核操作占用的CPU资源数目。更更正在运转的程序的优先级要查察正在运转的程序的优先级,可单击“进度”选项卡,单击“查察”菜单,单击“选择列”“基本优先级”命令,而后单击“确立”按钮。为更更正在运转的程序的优先级,可在“进度”选项卡上右键单击您要改正的程序,指向“设置优先级”,而后单击所需的选项。改正良程的优先级能够使其运转更快或更慢(取决于是提高仍是降低了优先级),但也可能对其余进度的性能有相反的影响。记录操作后所领会的结果:改变优先级可能造成系统不稳固。在多办理器计算机上,用户还能够给办理器指派进度,将程序或进度的履行限制在选定的办理器上,但这有可能致使整体性能的降落。[2]WindowsServer2003进度的“一世”一、实验名称WindowsServer2003进度的“一世”二、实验目的经过创立进度、察看正在运转的进度和停止进度的程序设计和调试操作,进一步熟Word资料...悉操作系统的进度观点,理解WindowsServer2003进度的“一世”。经过阅读和剖析实验程序,学习创立进度、察看进度和停止进度的程序设计方法。三、实验容与步骤创立进度正在运转的进度停止进度Windows所创立的每个进度都是以调用________CreateProcess( )____________API函数开始和以调用_____________ExitProcess( )或___________TerminateProcess( )_______API函数停止。创立进度本实验显示了创立子进度的基本框架。该程序不过再一次地启动自己,显示它的系统进程ID和它在进度列表中的地点。步骤1:登录进入WindowsServer2003。步骤2:在“开始”菜单中单击“程序-”“MicrosoftVisualStudio6.0”–“MicrosoftVisualC++6.0”命令,进入VisualC++窗口。步骤3:在工具栏单击“翻开”按钮,在“翻开”对话框中找到并翻开实验源程序3-5.cpp。清单3-5创立子进度//proccreate项目#include<windows.h>#include<iostream>#include<stdio.h>//创立传达过来的进度的克隆过程并赋于其ID值voidStartClone(intnCloneID){//提取用于目前可履行文件的文件名TCHARszFilename[MAX_PATH];::GetModuleFileName(NULL,szFilename,MAX_PATH);格式化用于子进度的命令行并通知其EXE文件名和克隆IDTCHARszCmdLine[MAX_PATH];::sprintf(szCmdLine,“””%d”,szFilename,nCloneID);用于子进度的STARTUPINFO构造STARTUPINFOsi;::ZeroMemory(reinterpret_cast<void*>(&si),sizeof(si));si.cb=sizeof(si);//一定是本构造的大小返回的用于子进度的进度信息PROCESS_INFORMATIONpi;利用相同的可履行文件和命令行创立进度,并赋于其子进度的性质BOOLbCreateOK=::CreateProcess(szFilename,//产生这个EXE的应用程序的名称szCmdLine,//告诉其行为像一个子进度的标记NULL,//缺省的进度安全性NULL,//缺省的线程安全性FALSE,//不继承句柄CREATE_NEW_CONSOLE,//使用新的控制台Word资料...NULL,//新的环境NULL,//目前目录&si,//启动信息&pi);//返回的进度信息//对子进度开释引用if(bCreateOK){CloseHandle(pi.hProcess);CloseHandle(pi.hThread);}}intmain(intargc,char*argv[]){确立进度在列表中的地点intnClone(0);if(argc>1){//从第二个参数中提取克隆ID::sscanf(argv[1],“%d”,&nClone);}显示进度地点std::cout<<“ProcessID:“<<::GetCurrentProcessId( )“,CloneID:“<<nClonestd::endl;检查能否有创立子进度的需要constintc_nCloneMax=25;if(nClone<C_nCloneMax){发送新进度的命令行和克隆号StartClone(++nClone);}//在停止以前暂停一下(l/2秒)::Sleep(500);return0;}步骤4:单击“Build”菜单中的“Compile3-5.cpp”命令,系统显示:Thisbuildcommandrequiresanactiveprojectworkspace.Wouldyouliketocreateadefaultprojectworkspace?(build命令需要一个活动的项目工作空间。你能否希望成立一个缺省的项目工作空间?)单击“是”按钮确认。系统对3-5.cpp进行编译。步骤5:编译达成后,单击“Build”菜单中的“Build3-5.exe”命令,成立3-5.exe可履行文件。操作可否正常进行?假如不可以,则可能的原由是什么?____不可以正确运转,由于程序中出现了好多的语法和拼写方面的错误__________________________________________________________步骤6:在工具栏单击“ExecuteProgram”(履行程序)按钮,或许按Ctrl+F5键,或许单击“Build”菜单中的“Execute3-5.exe”命令,履行3-5.exe程序。步骤7:按Ctrl+S键可暂停程序的履行,按Ctrl+Pause(Break)键可停止程序的履行。Word资料...清单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。程序运转时屏幕显示的信息是:正在运转的进度本实验的程序中列出了用于进度信息查问的API函数GetProcessVersion( )与GetVersionEx( )的共同作用,可确立运转进度的操作系统的版本号。步骤8:在VisualC++窗口的工具栏中单击“翻开”按钮,在“翻开”对话框中找到并翻开实验源程序3-6.cpp。清单3-6使用进度和操作系统的版本信息//version项目include<windows.h>include<iostream>利用进度和操作系统的版本信息的简单示例Word资料...voidmain( ){提取这个进度的ID号DWORDdwIdThis=::GetCurrentProcessId( );//获取这一进度和报告所需的版本,也能够发送0以便指明这一进度DWORDdwVerReq=::GetProcessVersion(dwIdThis);WORDwMajorReq=(WORD)dwVerReq>16);WORDwMinorReq=(WORD)dwVerReq&0xffff);std::cout<<“ProcessID:“<<dwIdThis<<“,requiresOS:“<<wMajorReq<<wMinorReq<<std::endl;//设置版本信息的数据构造,以便保留操作系统的版本信息OSVERSIONINFOEXosvix;::ZeroMemory(&osvix,sizeof(osvix));osvix.dwOSVersionInfoSize=sizeof(osvix);//提取版本信息和报告::GetVersionEx(reinterpret_cast<LPOSVERSIONINFO>(&osvix));std::cout<<“RunningonOS:“<<osvix.dwMajorVersion<<“.”<<osvix.dwMinorVersion<<std::endl;//假如是NTS(WindowsServer2003)系统,则提高其优先权if(osvix.dwPlatformld==VER_PLATFORM_WIN32_NT&&osvix.dwMajorVersion>=5){//改变优先级::SetPriorityClass(::GetCurrentProcess( ),//利用这一进度HIGH_PRIORITY_CLASS);//改变成high//报告给用户std::cout<<“TaskManagershouldnownowindicatethis”“processishighpriority.”<<std::endl;}}步骤9:单击“Build”菜单中的“Compile3-6.cpp”命令,再单击“是”按钮确认。系统对3-6.cpp进行编译。步骤10:编译达成后,单击“Build”菜单中的“Build3-6.exe”命令,成立3-6.exe可履行文件。操作可否正常进行?假如不可以,则可能的原由是什么?__不可以正常运转,由于程序中出现很多语法和拼写方面的错误_______________________________________________________________________________________________________________________________________________步骤11:在工具栏单击“ExecuteProgram”(履行程序)按钮,履行3-6.exe程序。运转结果:Word资料...目前PID信息:___5310OS:00___________________________________目前操作系统版本:__6.1_____________________________________________________系统提示信息:_TaskManagershouldnownowindicatethisprocessishighpriority._____________________________________________________________________________清单3-6中的程序向读者表示了怎样获取目前的PID和所需的进度版本信息。为了运转这一程序,系统办理了全部的版本不兼容问题。接着,程序演示了怎样使用GetVersionEx( )API函数来提取OSVERSIONINFOEX构造。这一数据块中包含了操作系统的版本信息。此中,“OS:5.0”表示目前运转的操作系统是:________________WindowsServer2003_______________________________清单3-6的最后一段程序利用了操作系统的版本信息,以确认运转的是WindowsServer2003。代码接着将目行进度的优先级提高到比正常级别高。步骤12:单击Ctrl+Alt+Del键,进入“Windows任务管理器”,在“应用程序”选项卡中右键单击“3-6”任务,在快捷菜单中选择“转到进度”命令。在“Windows任务管理器”的“进度”选项卡中,与“3-6”任务对应的进度映像名称是(为何?):_____________VCSPAWN.EXE___________________右键单击该进度名,在快捷菜单中选择“设置优先级”命令,能够调整该进度的优先级,如设置为“高”后从头运转3-6.exe程序,屏幕显示有变化吗?为何?______PID信息变成4488OS:00_________________________________________________________________________________________________________________________________________________________________________除了改变进度的优先级之外,还能够对正在运转的进度履行几项其余的操作,只需获取其进程句柄即可。SetProcessAffinityMask( )API函数同意开发人员将线程映照到办理器上;SetProcessPriorityBoost( )API可封闭前台应用程序优先级的提高;而SetProcessWorkingSet( )API可调理进度可用的非页面RAM的容量;还有一个只对目行进度可用的API函数,即SetProcessShutdownParameters( ),可告诉系统怎样停止该进度。停止进度在清单3-7列出的程序中,先创立一个子进度,而后指令它发出“自杀弹”互斥体去停止自己的运转。Word资料...步骤13:在VisualC++窗口的工具栏中单击“翻开”按钮,在“翻开”对话框中找到并翻开实验源程序3-7.cpp。清单3-7指令其子进度来“杀掉”自己的父进度//procterm项目include<windows.h>include<iostream>include<stdio.h>staticLPCTSTRg_szMutexName=“”;创立目行进度的克隆进度的简单方法voidStartClone( ){提取目前可履行文件的文件名TCHARszFilename[MAX_PATH];::GetModuleFileName(NULL,szFilename,MAX_PATH);格式化用于子进度的命令行,指明它是一个EXE文件和子进度TCHARszCmdLine[MAX_PATH];::sprintf(szCmdLine,“”%s\“child”,szFilename);子进度的启动信息构造STARTUPINFOsi;::ZeroMemory(reinterpret_cast<void*>(&si),sizeof(si));si.cb=sizeof(si);//应该是此构造的大小返回的用于子进度的进度信息PROCESS_INFORMATIONpi;用相同的可履行文件名和命令行创立进度,并指明它是一个子进度BOOLbCreateOK=::CreateProcess(szFilename,//产生的应用程序名称(本EXE文件)szCmdLine,//告诉我们这是一个子进度的标记NULL,//用于进度的缺省的安全性NULL,//用于线程的缺省安全性FALSE,//不继承句柄CREATE_NEW_CONSOLE,//创立新窗口,使输出更直观NULL,//新环境NULL,//目前目录&si,//启动信息构造&pi);//返回的进度信息//开释指向子进度的引用if(bCreateOK){::CloseHandle(pi.hProcess);::CloseHandle(pi.hThread);}}voidParent( ){//创立“自杀”互斥程序体HANDLEhMutexSuicide=::CreateMutex(NULL,//缺省的安全性TRUE,//最先拥有的g_szMutexName);//为其命名if(hMutexSuicide!=NULL){Word资料...创立子进度std::cout<<“Creatingthechildprocess.”<<std::endl;::StartClone( );暂停::sleep(5000);指令子进度“杀”掉自己std::cout<<“Tellingthechildprocesstoquit.”<<std::endl;::ReleaseMutex(hMutexSuicide);除去句柄::CloseHandle(hMutexSuicide);}}voidChild( ){//翻开“自杀”互斥体HANDLEhMutexSuicide=::OpenMutex(SYNCHRONIZE,//翻开用于同步FALSE,//不需要向下传达g_szMutexName);//名称if(hMutexSuicide!=NULL){//报告正在等候指令std::cout<<“Childwaitingforsuicideinstructions.”<<std::endl;::WaitForSingleObject(hMutexSuicide,INFINITE);//准备好停止,除去句柄std::cout<<“Childquiting.”<<std::endl;::CloseHandle(hMutexSuicide);}}intmain(intarqc,char*argv[]){决定其行为是父进度仍是子进度if(argc>l&&::strcmp(argv[l],“child”)==0){Child( );}else{Parent( );}return0;}清单3-7中的程序说了然一个进度从“生”到“死”的整个一世。第一次履行时,它创立一个子进度,其行为好像“父亲”。在创立子进度以前,先创立一个互斥的查对象,其行为关于子进度来说,好像一个“自杀弹”。当创立子进度时,就翻开了互斥体并在其余线程中进行别的办理工作,同时等候着父进度使用ReleaseMutex( )API发出“死亡”信号。而后用Sleep( )API调用来模拟父进度办理其余工作,等达成时,指令子进度停止。当调用ExitProcess( )时要当心,进度中的全部线程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖北省建筑安全员B证考试题库
- 2025年杭州医学院单招职业倾向性测试题库一套
- 2025年贵州交通职业技术学院单招职业技能测试题库含答案
- 2025年黑龙江农业经济职业学院单招职业倾向性测试题库及答案一套
- 2025年甘肃畜牧工程职业技术学院单招职业技能测试题库附答案
- 中国黄金授权合同范本
- 保洁食堂厨房合同范本
- 生态旅游景区的环境监测与预警管理
- 科技产品发布的精彩汇报设计
- 读后续写+以友谊为主题+讲义 高三下学期2月素质检测考试英语试题
- 出租共享菜园合同范例
- 八年级班主任学生心理健康计划
- 整体施工劳务服务方案
- 传统节日端午节模板37
- 2025年泰山职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 2025春季开学第一次全体教师会上校长讲话稿
- 【历史】唐朝建立与“贞观之治”课件-2024~2025学年统编版七年级历史下册
- 2024化工园区危险品运输车辆停车场建设规范
- 第1课 精美绝伦的传统工艺 课件 2023-2024学年赣美版初中美术八年级下册
- 云南省地质灾害群测群防手册
- 上海幼儿园保教质量评价体系
评论
0/150
提交评论