- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows进程编程
第二章 Windows程序运行原理 电子科技大学软件学院--杨尚明 主要内容 2.1 进程的概念 2.2 进程控制 2.3 进程间通信 进程(Process) 概念; 进程创建 CreateProcess 函数的使用; 系统进程获取与终止方法; 使用管程实现进程通信。 进程概念 进程是正在运行的程序的实例。 每个运行项目都对应一个进程,每个进程至少包含一个线程,它从main()函数开始执行,直到执行return语句返回,主线程结束,该进程也被从内存中卸载。 进程由如下几个部分组成: 与程序相关联的可执行代码的映像; 内存空间(通常是虚拟内存中的一些区域),其中保存可执行代码、进程的特定数据、用于记录活动例程和其他事件的调用栈、用于保存实时产生的中间计算结果的堆(heap); 分配给进程的资源的操作系统描述符(比如文件句柄)以及其他数据资源; 安全属性: 进程的所有者和权限; 处理器的状态: 寄存器的内容、物理内存地址等。 进程的状态 创建子进程API函数 CreateProcess函数,其原型为: BOOL CreateProcess( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, // 见p152(初步了解) LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, LPSTARTURINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); CreateProcess() 的功能是建立并执行child process? PROCESS_INFORMATION结构 创建子进程API函数变量含义 系统进程的获取 使用ToolHelp函数可以获得当前系统正在运行的进程: 用CreateToolHelp32Snapshot获得当前系统内执行进程快照; 使用Process32First函数和Process32Next函数遍历快照中记录列表; CreateToolHelp32Snapshot还可以获取进程使用的堆、模块及线程的列表、堆等对象; 使用PROCESSENTRY32 结构获取相关属性。 系统进程的获取 CreateToolHelp32Snapshot函数: HANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlage, // 指定快照中须返回的对象 DWORD the32ProcessID // 要获取的进程ID ); dwFlage的取值情况: TH32CS_SNAPHELPLIST // 指定进程的堆 TH32CS_SNAPMODULE // 指定进程的模块 TH32CS_SNAPPROCESS // 系统范围内的进程 TH32CS_SNAPTHREAD // 系统范围内的线程 保护进程 保护进程不被其它进程非法关闭 HOOK(9.3节 HOOK API)掉系统对有关ToolHelp和Process Status函数的调用 HOOK掉其它进程对TerminateProcess 函数的调用 Assignment 1.分析Windows多任务下cpu支持的不同模式的意义,并说明对象句柄在其中的作用。 2.编写程序创建两个以上子进程,用进程快照函数列出创建进程的基本信息,使用PROCESSENTRY32 结构尽可能列出你的电脑当前运行的进程、线程详细信息。 3*. 分析对比Unix系统与Windows系统的各自创建和管理进程相关函数的特征。 * * 第二章 Windows 进程编程 ? “进程”(Process)和“线程”(Thread)是操作系统控制多任务的两个重要概念。 早期的Windows 3.x只能依靠应用程序之间的协同来实现协同式多任务,而Windows 9x以
您可能关注的文档
- What_will_you_do_this_weekend?.ppt
- WHUT过程控制系统与仪表课程设计.doc
- wi093017 四厂锅炉作业指导书.doc
- Where is the post office课件.ppt
- Will_people_have_robots课件1 reading.ppt
- win7 64位系统下错误1067导致无法使用无线网络的解决办法.pptx
- Win7专业版系统下磁盘是否出现坏道的检查方法.pptx
- Win7系统安装.net framework后提示HRESULT 0xc8000222错误.pptx
- Win7系统安装失败的原因.pptx
- Windows7旗舰版系统文件出现损坏无法修复如何解决.pptx
最近下载
- 胰岛素抵抗和代谢综合征课件.pptx VIP
- 胰岛素抵抗和代谢综合征.ppt VIP
- GB/T 17747.1-2011_天然气压缩因子的计算 第1部分:导论和指南.pdf
- 《基础护理学》第7章 休息与活动(含答案).docx
- 城市中心区综合性公园使用现状调查研究————以成都市人民公园为例.docx
- 产品档案管理制度及流程.pdf
- 中华民族一家亲,同心共筑中国梦.pptx VIP
- “社工+志愿者”联动模式的思考及对策研究--以惠州市河背社区志愿者项目为例.docx
- 国家开放大学,地域文化,人文武隆形考一 (3).pptx VIP
- (黑龙江省)新课标高中信息技术会考试题 学科整合 试题及答案..doc VIP
文档评论(0)