版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河北工业大学试验一进程控制与描述通过对Windows编程,深入熟悉操作系统的基本概念,很好地理解Windows的构造。通过创立进程、观测正在运行的进程和WindowsProfessional下的GUI应用程序,使用Vi施,该措施GUI类型的应用程序的原则入口点。也可以运用任何其他文本编辑器键入程序代码,假如这样,例如使用WORD来键入在程序1-1的GUI应用程序中,首先需要Windows.h头文献,以便获得传送给WinMainO和MessageBoxOAPI函数的数接着的pragma指令指示编译器/连接器找到User32.LIB库文献并将其与产生的EXE文献连接起来。这样就可以运行简朴的命令行命令CLMsgBox.CPP来创立这一应用程序,假如没有pragma指令,则MessageBox()API函数就成为未定义的了。这一指令是VisualStudioC++编译器特有的。接下来是WinMainO)措施。其中有四个由实际的低级入口点传递来数据装在内存的何处。句柄的数值实际上是EXE文献映像的基地址,一般为0x00400000。下一种参数hPrevInstance是为向后参数告诉应用程序怎样显示它的主窗口(选项包括最小化、最大化和正常)。最终,程序调用MessageBox(OAPI函数并退出。假如在进入消息循环之前就结束运行的话弹出一种消息框,标题为Grectings,内容为Hello,WindowsXp,中间有一种确认按钮。进程对象操作系统将目前运行的应用程序看作是进程对象。运用系统提供的惟一的称本试验表达了一种简朴的进程句柄的应用。在系统中运行的任何进程都可调用GeiCurrentProcess()API函数,此函数可返回标识进程自身的句柄。然后就可在Windows需要该程序1-2:获得和使用进程的句柄程序1-2中列出的是一种获得进程句柄的措施。对于进程句柄可进行的惟一有用的操作是在API调用时,将其作为参数传送给系统,正如程序1-2中对GetPriorityClass)API函数的调用那样。在这种状况下,系统向进程对象内“窥视”,以决定OpenProcess)和CreateProcessoAPI函数也可以用于提取进程句柄。前者提取的是已经存在的进程的句柄,而后者创立Currentprocesspri进程优先权为Normal。程序1-3显示怎样找出系统中正在运行的所有进程,怎样运用OpenProcess()API函数来获得每一种访问进程的深入信息。程序1-3运用句柄查出进程的详细信息程序1-3程序首先运用Windows的新特性,即工具协助库来获得目前运行的所有进程的快照。然后应用程序进入快照中跟踪每一进程的有关时间,示例中是通过打开的进程句柄和GetProcessTimesOAPI来直询得到有关时间的。接下来,一种定制的协助函数获得了几种返回的数值,然后计算进程在内核模式下消耗的时间占总时间的比例。程序的其他部分比较简朴,只是将有关信息显示给顾客,清除进程句柄,然后继续循环,直到所有进程都计算过为止。回回C:\PrograFiles\IicrosoftYisualStudio\IyProjectProcessID:4.EXEfile:Systen,xinkernelProcessID:532,EXEfile:WINLOGON.EXE,xinkernelProcessID:576,EXEfile:SERUICESProcessID:588,EXEfile:LSASS.EXE,xProcessID:748,EXEfile:SUCHOST.EXE,xinkernelProcessID:804,EXEfile:SUCHOST.EXE,xinkeProcessID:868,EXEfile:SUCHOST.EXE,xinProcessID:956,EXEfile:SUCHOST.EXE,xinkernelProcessID:988,EXEfile:SUCHProcessID:1160,EXEfile:SPOOLSU.EXProcessID:EXEfile:EXPLORER.EXE,*inkeProcessID:1EXEfile:IGFXTRAYEXExinProcessID:1520,EXEfile:HKCHD.EXE,xinkernelmodProcessID:1528,EXEfile:GFXPERS.EXE,xinProcessID:1544,EXEfile:SHSTAT.ProcessID:1648,EXEfile:IGFXSRUC.EXE,xinProcessID:1696,EXEfile:CTFHONEXE,xinProcessID:1996,EXEfile:Mcshield.exe,xinkernelProcessID:172,EXEfile:HDM.EXE,xinkernelmoProcessID:336,EXEfile:sqlservr.exe,xinProcessID:948,EXEfile:UPHCLEANEXE,xinProcessID:2408,EXEfile:ALG.EXE,xinkernelmodeProcessID:2496,EXEfile:SUCHOSI.EXE,名in第二部分:进程的“毕生”1、创立进程创立子进程本程序展示的是一种简朴的使用CreateProcesso)API函数的例子。首先形成简朴的命令行,提供目前的EXE文献的指定文献名和代表生成克隆进程的号码。大多数参数都可取缺省值,不过创立标志参数使用了:行为像一种子进程的标志,指示新进程分派它自己的控制台,这使得运行示例程序时,在任务栏上产生许多活动标识。然后该克隆进程的创立措施的句柄并返回mainO函数。在关闭程序之前,每一进程的执行主线程暂停一下,以便让顾客看到其中的至少一种窗口。CreateProcess(函数有5个关键参数?本试验程序中设置的各个参数的值是:a.(LPCTSTRIpApplicationName)sz,/产生这个EXE的应用程序的名称:b.(LPTSTRIpCommandLine)szCmdLine,//告诉其行为像一种子进程的标志:c.(BOOLblnheritHandles)FALSE,//不继承句柄:d.(LPSTARTUPINFOIpStartuplnfo)&si,//启动e.(LPPROCESS_INFORMATIONIpProcesslnformation)&pi://返回的进程信息;ProcessID:3180,CloneID:aProcessID:3180,CloneID:a2、正在运行的进程ProcessID:4004,requires0STaskManagershouldnownow目前PID信息:_4664系统提醒信息:TaskManagershouldnownowi接着,程序演示了怎样使用GetVersionEx()API函数来提取OSVERSIONINFOEX构造。这一数据块中包括了操作系统的版本信息,其中,“OS:5.0”表达目前运行的操作系统是:Windows。最终一段程序运用了操作系统的版本信息,以确认运行的是Windows。代码接着将目前进程的优先级提高到比单击Cul+Alt+Del键,进入“Windows任务管理器”,在“应用程序”选项卡中右键单击本任务,在快捷菜单中选择“转到进程”命令。在“Windows任务管理器”的“进程”选项卡中,与本任务对应的进程映像名称是(为何?):右键单击该进程名,在快捷菜单中选择“设置优先级”命令,可以调整该进程的优先级。如设置为“高”后重新运行程序,屏幕显示有变化吗?没有。3、终止进程在其他线程中进行别的处理工作,同步等待着父进程使用ReleaseMutexOAPI发出“死亡”信号。然后用SleepOAPI调用来模拟父进程处理其他工作,等完毕时,指令子进程终止。行期关闭(这是由编译器提供的缺省行为)之后来调用这一函数。当它转向受信状态时,一般可创立一种每个活动线程都可等待和停止的终止事件。在正常的终止操作中,进程的每个工作线程都要终止,由主线程调用ExitProcesso。接着,管理层对进程增长的所有对象释放引用,并将用GetExitCodeProcsso)建立的退出代码从STILLACTIVE变化为在ExitProcesso调用中返回的值。最终,主等到所有打开的句柄都关闭之后,管理层的对象管理器才销毁进程对象自身。还没有一种函数可获得终止后的进程对象为其参数,从而使其“复活”。当进程对象引用一种终止了的对象时,有好几种API函数仍然是有用的。进程可使用退出代码将终止方式告知给调用GetExitCodeProcesso的其他进程。同步,GetProcessTimesOAPI函数可向主调1)_Creatingthec表达:_父进程正在创立子进程。子进程等待父进程2)Tellingthechildprocesstoqu本次试验让我明白进程是程序的一次执行过程,是系统进行处理机调度和资源分派的基本单位。(未引入线程之前)。进程是操作系统构造的基础:是一种正在执行的程序:计算机中正在运行的程序实例:可以分派给处理器并由处理器执行的一种实体;由单一次序的执行显示,一种目前状态和一组有关的系统资源所描述的活动单元,对父进程理解。试验二并发与调度1、试验目的在本试验中,通过对事件和互斥体对象的理解,来加深对Windows线程同步的理解。通过度析试验程序,理解管理事件对象的API。理解在进程中怎样使用事件对象,在进程中怎样使用互斥体对本程序中显示的类CCountUpDown使用了一种互斥体来保证对两个线程间单一数值的访问。每个线程都企图获得控制权来变化该数值,然后将该数值写入输出流中。创立者实际上创立的是互斥体对象,计数措施执行等待并释放互斥体所需的资源(因而也就是共享资源)。分析程序的运行成果,可以看到线程(加和减线程)的交替执行(由于SleepOAPI容许Windows切换线程)。在每次运行之后,数值应当返回初始值(0),由于在每次运行之后写入线程在等待队列中变成最终一种,内核保证它在其他线程工作时不1)请描述运行成果(假如运行不成功,则也许1)请描述运行成果(假如运行不成功,则也许的原因是什么?):thread:228value:1acce thread:228value;Iaccthread:3480value:Baccthread:228value:1accthread:3480value:Baccthread:228value:1accthread:3400valuethread:3488value:Bacthread:228value:1accethread:3488value:Baccechread:228value:iaethread:3480value:Bacchread:228value:1acctluread:3488value:Bathread:3408value:Bacthread:228value:1acthread:3400value:Baccthread:228value:1acthread:3490value:Faccthread:3400value:Fa2)根据运行输出成果,对照分析程序,可以看出程序运行的流程吗?请简朴描述:Windows提供的线程间通讯类内查对象容许同一进程或跨进程的线程之间互相发送信息,包括文献、文献映射、邮件位和命名管道等,其中最常用的是文献和文献映射。此类对象容许一种线程很轻易地向同一进程或其他进程中运行成果(假如运行不成功,则也许的原因是什么?):运行成果(假如运行不成功,则也许的原因是什么?):C:\PrograFiles\IicrosoftYisualStudioLyProjects\sa\Debug\sa.exe1)程序中启动了多少个单独的读写线程?2)使用了哪个系统API函数来创立线程例程?3)文献的读和写操作分别使用了哪个API函数?每次运行进程时,都可看到程序中的每个线程从前面的线程中读取数据并将数据增长,文献中的数值持续增长。这个示请注意程序中写入之前文献指针的重置。重置文献指针是必要的,由于该指针在读取结束时将处在前四个字节之后,同一指针还要用于向文献写入数据。假如函数向该处写入新数值,则下次进程运行时,只能读到本来的数值。那么:4)在程序中,重置文献指针使用了哪一种函数?5)从输出成果,对照分析程序,可以看出程序运行的流程吗?请简朴描述:首先创立一种线程,读nValue的值,然后nValue值加一后,将nValue值重新写入文献。反复上述过程100次。1)程序中用来创立一种文献映射对象的系统API函数是哪个?Create():2)在文献映射上创立和关闭文献视图分别使用了哪一种系统函数?3)运行时,程序首先通过(MakeSharedFile0:)函数创立一种小型的文献映射对象(hMapping),接着,使用系统API函数(CreateMutex0;)再创立一种保护其应用的互斥体(g_hMutexMapping)。然后,应用程序创立100个线程,每个都容许再通过函数(MapViewOfFile0:)操作将视图映射到文献,将高32位看作有符号整数,将该数值增长(即命令:++(*pnData):)·再将新数值显示在控制台上。每个线程清除文献的视图并在退出之前释放互斥体的语句是ReleaseMutex(g_hMutexMapping);4)将程序中的语句::Sleep(500);删除(例如在语句前面加上“//”)后,重新编译运行,成果有变化吗?为何?有变化。100个线程一闪而过,不能看清成果。本次试验让我明白了操作系统中的事件和互斥体对象,以及线程同步的概念。学习了进程中怎样使则他们可以任意并发,当这些进程没有访问互出现错误,这时我们必须通过某种手段来同步进程间并发的次序,这尚有,并发执行的进程或线程间,有时为了需要,会互相之间进行数据的互换,即试验三生产者-消费者算法模拟试验一、试验目的2、通过对“生产者-消费者”问题编程实现,理解线程创立、同步信号量、互斥信号量、临界区的创立和使用,初步理3、深入理解P、V原语和信号量在线程互斥和同步机制中的运用。尝试变化某些参数,例如:变化缓冲区数、增长(减少)线程数、变化延迟数、增长(减少)生产者进程、增长(减少)1、empty_semaphore=CreateSemaphore(NULL2、h_mutex=CreateMutex(NULL,F4、h_Thread[i]=CreateThread(NULL,0.(LP5、h_Thread[i]=CreateThread(NULL,0,(LP4、请补全上述程序,写出程序的运行成果。程 P Pc生产者1发送生产请求信号.库产者3爱送生产话求信号.座产暑1发送生产请求信号.审产暑1爱送生产语求信号:座产者3爱送生产语求信号.康产者4发送生产请求信号:座产者3并菇在缓冲区B生产产品.康产者1开始在绒冲区1车产产品.生产者4开始在缓冲区2生产产品.生产者3完成生产过程:生产者1完成生产过程:生产者4元成生产过程:薯1开菇磊掇产嚣:匡产者3完成生产过程:生产者1完成生产过程:生产者4元成生产过程:缓冲区t11:1缓冲区t21:4?蜓者者52乔脏乔笙蜴销逊?13开始5缓产按任意键返回:消消自525消演消成功3:消费者2成功消费1:绣冲区(B1:-1缓冲区[11:-14首先生产者3生产了产品3,然后生产者1生产了产品1,最终生产者4生产了产品4.消费时,消费者5消费产品3,然后消费2消费产品1,最终消费者5消费产品4.入页号和辅存地址:28入页号和辅存地址:49入页号和辅存地址:88入页号和辅存地址:-15入主存块号,主存块数要不大于5,<以-1结束):33.9.-1简入指合性质(1-修改,-不需要,其他-结束程序运行>和逻辑地址:164输出逻辑地址是:abb对应物理地址是:26bb入指合性质(1-修改,a-不需要,其他-结束程序运行>和逻辑地址:01088发生缺页中断4将页B写回磁盘第8块淘汰主存块,3中的负a.从磁盘第9块中调入页4第三次时,输入13000,此时淘汰的页4修改正,因此要将页4写回磁盘第5000(4)理解并掌握Windows中鼠标、键盘功能键个数121---------------功能键个数121---------------鼠标改为右手习惯2----------------鼠标改为左丰习惯3----------------获得键盘类型和功能键个数请输入选项:3BN增强型(181或182楗)键盘叭播放音乐等功能。如上图,我选择了选项3,图显示我的键盘类型为IBM增强型(101或101键)键盘,功能键个数为12.试验六文献系统1.文献信息命令Ctrl+Z:终止目前活动。显示1s命令的手册页面(man1s),然后使用Ctrl-z中断输出。当你接下Ctrl+Z的Copyright1991-1994,1997,1998,,,FreeThisisfreesoftwarewithABSOLUTELYNOWAtest:ASCIItext2)可执行(或二进制)文献:包括32位的可执行文献和可扩展链接格式(ELF)编码文献,和其他动态链接的可执环节5:使用strings命令。fuxin@fuxin-K42JZ:~$strings/u环节6:使用cat命令显示文献的内容。键入1s/dev>devl环节7:使用more命令显示文献的内容。环节8:使用head命令显示文献的一部分。1)单独使用head命令,显示主目录中dev1文献的开始2)使用带-n选项的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度临时工劳动协议样本版A版
- 《语文大自然的语言》课件
- 2024年产品开发保密协议标准模板
- 2024年桥梁梁板工程装配式建筑承包安装及运输优化合同2篇
- 2024年度演出经纪合同标的艺人演出安排与报酬协议3篇
- 《数量积和向量积》课件
- 2024年度企业间代付货款合同模板
- 临床护理师资培训班
- 2024年企业核心资料保密协议承诺版
- 2024年2024钛合金航空航天材料供应合同
- 国有资产管理培训课件资料
- 锂电池电池组技术方案
- 量子机器学习及区块链技术导论
- 电子电路原理及应用
- 承包土地种植艾草计划书
- 人工智能法学前沿理论与实证研究
- 《合同交底范本》课件
- 驾驶员心理健康教育培训课件
- 下步工作计划及思路
- 2023-2024学年广东省深圳市福田区八年级(上)学期期末联考数学试题(含解析)
- 教科版科学四年级上册全册教案教学设计
评论
0/150
提交评论