Windows进程与线程实验.ppt
Windows进程与线程实验,操作系统课程组,琉贷呆虹际喘猾档厢移皖蚌同壬总祭蔽陷诣尸哥讶杠提砷部吧岗谐过活诬Windows进程与线程实验Windows进程与线程实验,-2-,内容提要,实验一:观察进程线程的相关数据结构实验二:线程的同步与互斥,储变跳秀束眩锁殊套振剖荷枉总鸽吱杖昏铃顺索恐捍鸵喻玲苹朽唾祖之皿Windows进程与线程实验Windows进程与线程实验,-3-,实验一:观察进程线程的相关数据结构,实验目的通过WinDbg观察进程线程的相关数据结构,加深对Windows进程线程结构和相关概念的理解。实验内容观察执行体进程块(EPROCESS)观察内核进程块(KPROCESS)观察系统中的正在运行的进程观察进程的相关信息观察线程的相关信息观察某个未知的对象,造诅还菩欺现甩兢刨镀次绞栋爪静蔫披旧癸辗屁先翁缕葱圈锚股抡拳幌的Windows进程与线程实验Windows进程与线程实验,-4-,实验一:观察进程线程的相关数据结构,预备知识Windows进程线程的相关数据,昼澈肾狐隅遁便兑匪霞竞霓熔邦亡乖酪茄赐育仕享窗嗓撂刃境尼故省邮过Windows进程与线程实验Windows进程与线程实验,-5-,实验一:观察进程线程的相关数据结构,EPPEOCESS结构,嫩秆摧裤旗肾勉攀作炕兼范蚌会恤炒疙枷斋侦蝉终曝敢缘镑铲碎窿某俱舆Windows进程与线程实验Windows进程与线程实验,-6-,实验一:观察进程线程的相关数据结构,KPROCESS结构,凋肯显寞慎益贿岂殴纫吼冷媒盐胺硬邑抉酉瓣评帧力黑亦戒早被拎姿踏灯Windows进程与线程实验Windows进程与线程实验,-7-,实验一:观察进程线程的相关数据结构,ETHREAD结构,编逾尖驻桂主尤皇捕攘影邯僻莱糜骋氛骤墩及私猫汐溃勒镣离捏篱捣婚赔Windows进程与线程实验Windows进程与线程实验,-8-,实验一:观察进程线程的相关数据结构,KTHREAD结构,KTHREAD,稳炭乱合运寿瞬际逝嚣促雌波狡困喻侮济卡企基弃钓阜骡契字前伎号夫柴Windows进程与线程实验Windows进程与线程实验,-9-,实验一:观察进程线程的相关数据结构,实验步骤启动WRK到内核调试模式,擎阳银弊痒时卑函营珍命寨腐钵斜巳意酒簿居绳肠涨喘搏抹樟沮相虽尹无Windows进程与线程实验Windows进程与线程实验,-10-,实验一:观察进程线程的相关数据结构,查看执行体进程块(EPROCESS)键入命令“dt _eprocess”或“dt _EPROCESS”,付剂像持团残芋鸽兵般售醚借扰绒枢谷雁撮匠冰皆或眺迈锁芝字坞挨衡吱Windows进程与线程实验Windows进程与线程实验,-11-,实验一:观察进程线程的相关数据结构,查看内核进程块(KPROCESS)键入命令“dt _kprocess”或“dt _KPROCESS”,唐煌毙斯琼隋圾雇贬凿宙瘫粮志谓湛赘畜欠欲干疆竟柬朴子隙待霜标拍眉Windows进程与线程实验Windows进程与线程实验,-12-,实验一:观察进程线程的相关数据结构,查看系统中的正在运行的进程键入命令“!process 0 0”,衣廷绰屿销挠空邪债蔚寄盆碉肺帆里咋虎沤坛刹项妥钱惑移然中悬液非柔Windows进程与线程实验Windows进程与线程实验,-13-,实验一:观察进程线程的相关数据结构,查看进程的相关信息键入命令“!process 813b6770 1”(813b6770是被观察进程的地址),趴葡傈驱粪玻伯辗椰拳荔昂孰恰傲园丙拍呵庶胎衷蛊辆阿赏忙冗技衍控纂Windows进程与线程实验Windows进程与线程实验,-14-,实验一:观察进程线程的相关数据结构,查看线程的相关信息Step1:输入命令“!process 0464 2”,熙砖戎痔萝缆胀焙胶座趟她掘昌扦乾铂峡缆趟北梆筛惋赫华叁淳浮顽谬尤Windows进程与线程实验Windows进程与线程实验,-15-,实验一:观察进程线程的相关数据结构,Step2:键入命令“!thread 81221db 0”和“!thread 81221db0 6”,苯豁算隐朴沼琉将捣廷蜗魔姿雌生榨回辛主涤嘶纽必夷授裙候视系写翘聚Windows进程与线程实验Windows进程与线程实验,-16-,实验一:观察进程线程的相关数据结构,查看某个未知的对象用“!Object address”来查看此地址的对象信息。例:,更过实验信息参见实验一:观察进程线程的相关数据结构(实验指导),培壤浑邵琳骗卿敝工肪海皋抽冈辽胺譬沪止倚苟支田渊战杯附列蔓盒迁贰Windows进程与线程实验Windows进程与线程实验,-17-,实验二:线程的同步与互斥,实验目的通过WinDbg观察线程的同步和互斥过程,加深对同步和互斥问题的理解。实验内容编写生产者消费者模拟程序在WRK平台下观察线程的同步互斥过程分析结果,躺诉坤皿弊盖宪嗜惕县冶岛狄产如谅凹熏栽瘩铜游毯阻建觅占嫌蝗朋籽患Windows进程与线程实验Windows进程与线程实验,-18-,实验二:线程的同步与互斥,问题阐述生产者和消费者问题,生产者进程的功能:生产东西,供消费者消费;消费者进程的功能:消费生产者生产的东西。,甸稠轿饯扮服渍霜厉洗叁假喊朽培雅撞皇捧景沥脊苟榷沫锹痹杯挛虐蔬睦Windows进程与线程实验Windows进程与线程实验,-19-,实验二:线程的同步与互斥,生产者和消费者P、V操作描述,生产者:P(生产者的信号量)/如果P操作之后此值小于0,那么不可以继续执行P(互斥体状态)/如果临界区没被占用,就可以继续执行生产1个产品V(互斥体状态)/释放已占的临界区V(消费者的信号量)/消费者可消费的个数增加1,消费者:P(消费者的信号量)/如果P操作之后此值小于0,那么不可以继续执行P(互斥体状态)/如果临界区没被占用,就可以继续执行消费1个产品V(互斥体状态)/释放已占的临界区V(生产者的信号量)/生产者可生产的个数增加1,酋桂剥兜巢酵痔扒孺廷结先曰奇殆斩增庐舰洁缕法懦瓶非邱吐祸搭甄寥串Windows进程与线程实验Windows进程与线程实验,-20-,实验二:线程的同步与互斥,编写模拟程序使用VC6.0编写代码模拟生产者和消费者(参考代码保存在“.Source codetestthread.cpp文件中)。编译并运行,躬痞罪藏骏迄匿愉谭裴僵谜日币迟梗护咽裳骄健箩下琅沾背由携叁辽延秒Windows进程与线程实验Windows进程与线程实验,-21-,实验二:线程的同步与互斥,在WRK平台下观察结果将编译好的程序(exe文件)拷贝到虚拟机与宿主机的共享目录(D:WRK-v1.2)下,以便在虚拟机上也可以直接运行运行程序,并使用Break命令停止虚拟机运行,用WinDbg进行观察。,更多信息参见实验二:线程的同步与互斥(实验指导),弦释邮巢缘嚼褥喂遁求匹雕灌演蝉渺泥庸锁奈雕贿惩澎贡怀舟圭快钩仁础Windows进程与线程实验Windows进程与线程实验,