- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
進程控制与描述实验报告
一、实验目的
利用Windows提供的API函数,编写程序,实现进程的创建和终止(如创建写字板进程及终止该进程),加深对操作系统进程概念的理解,观察操作系统进程运行的动态性能,获得包含多进程的应用程序编程经验。
二、实验内容
编写一个在dos界面下的简单进程控制系统,实现根据用户选项进行进程的创建、终止,并提供进程的状态。
(1)进程的创建和终止。编写一段程序,可以创建一个进程,并终止当前创建的进程。试观察记录程序执行的结果,并分析原因。
(2)利用VC++6.0实现上述程序设计和调试操作,对于进程创建的成功与否、终止进程操作的成功与否提供一定的提示框。
(3)通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法
三、实验步骤
创建进程
使用了Windows提供的CreateProcess函数来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。
函数原型:
BOOL CreateProcess{
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes。
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
};
一个线程调用该函数首先创建一个进程内核对象用来管理此新进程,随后系统为新进程创建虚拟地址空间,并将可执行文件的代码和数据加载到这个地址空间,接着系统为新进程的主线程创建一个线程内核对象。
本程序所使用的函数中各参数的解释:
lpApplicationName
指向一个NULL结尾的、用来指定可执行模块的字符串。这个字符串可以使可执行模块的绝对路径,也可以是相对路径,在后一种情况下,函数使用当前驱动器和目录建立可执行模块的路径。
这个参数可以被设为NULL,在这种情况下,可执行模块的名字必须处于 lpCommandLine 参数的最前面并由空格符与后面的字符分开。
lpCommandLine
传递给新进程的命令行字符串,应当为非常量字符串的地址。可以设定一个完整的命令行,如果第一个标记没有扩展名,CreateProcess将其假设为.exe。如果找不到该文件,CreateProcess按环境设置目录搜索运行。
bInheritHandles
决定子进程对父进程继承性,一般设为FALSE。
dwCreationFlags
用于标识标志,以便用于规定如何来创建新进程。
lpStartupInfo
指向一个用于决定新进程的主窗体如何显示的STARTUPINFO结构体。
lpProcessInformation
指向一个用来接收新进程的识别信息的PROCESS_INFORMATION结构体。
在使用CreateProcess函数之前首先要对STARTUPINFO结构体进行初始化,来指定新的进程如何显示,这里对参数不再详细展开。
PROCESS_INFORMATION结构体
typedef struct _PROCESS_INFORMATION {
HANDLE hProcess; // 存放每个对象的与进程相关的句柄
HANDLE hThread; // 返回的线程句柄
DWORD dwProcessId; // 用来存放进程ID号
DWORD dwThreadId; // 用来存放线程ID号
}PROCESS_INFORMATION,*PPROCESS_INFORMATION,*LPPROCESS_INFORMATION;
调用Createprocess()函数后,会自动地对该结构进行填充。
创建新进程可使系统建立一个进程内核对象和一个线程内核对象。在创建进程的时候,系统为每个对象赋予一个初始使用计数值1 。然后,在createProcess返回之前,该函数打开进程对象和线程对象,并将每个对象的与进程相关的句柄放入PROCESS_INFORMATIO结构的hProcess和hThread成员中。当CreateProcess在内部打开这些对象时,每个对象的使用计数就变为2。
终
您可能关注的文档
- 進化生物学.docx
- 進化生物学复习提纲.doc
- 進化生物学论文论生物多样性与海南国际旅游岛建设.doc
- 進化神经网络的雷达目标识别.docx
- 進化生物学课程论文.doc
- 進化计算遗传算法随机神经网络波耳兹曼机硕士论文.doc
- 進化论在科学上的种种难题.docx
- 進化论的由来与论点.docx
- 進厂交通洞锁口混凝土衬砌扣件式钢管脚手架设计与计算书.doc
- 進厂原料快速检测方法的建立.doc
- 农业物联网在蔬菜种植领域的应用与效益分析.docx
- 大学生思想政治教育获得感的提升路径与方法探讨.docx
- 2025年跨境美妆护肤电商物流配送联盟物流人才培养与培训体系研究报告.docx
- 2025年线上职业技能鉴定平台技术与市场协同发展研究.docx
- 地下管线优化布局方案.docx
- 2025年气候变化对全球农业气候变化适应技术发展动态报告.docx
- 在线教育平台内容生态建设策略与教育市场潜力分析.docx
- Unit5Actions.期末派生法背记单词沪教牛津版英语九年级上-册.docx
- 农业现代化助力:2025年无人机灌溉技术应用案例解析.docx
- GBT-氧化钨中氧原子个数的测定 硫代硫酸钠滴定法及编制说明.pdf
最近下载
- 冠心病合并房颤的抗凝抗栓策略.ppt VIP
- 副高中医护理试题及答案.docx
- 员工职业发展通道设计课程.ppt VIP
- 注册安全工程师中级其他安全生产专业实务(电气安全)模拟试卷3.pdf VIP
- VDI2230高强度螺栓连接的系统计算中文版.pdf VIP
- 汉威KB500可燃气体报警控制器使用说明书.pdf
- 2024-2030全球摩托车和机车头盔行业调研及趋势分析报告.docx
- 2024-2030全球全面式蓝牙摩托车头盔行业调研及趋势分析报告.docx
- 神木市东安煤业有限公司煤炭资源整合项目(0.60Mt_a)(重大变动)环境影响报告书.pdf VIP
- (高清版)DB11∕T 1702-2019 生活饮用水样品采集技术规范.pdf VIP
文档评论(0)