进程控制与描述,实验报告

进程控制与描述,实验报告

ID:30454717

大小:20.12 KB

页数:10页

时间:2018-12-30

进程控制与描述,实验报告_第1页
进程控制与描述,实验报告_第2页
进程控制与描述,实验报告_第3页
进程控制与描述,实验报告_第4页
进程控制与描述,实验报告_第5页
资源描述:

《进程控制与描述,实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划进程控制与描述,实验报告  实验一进程控制与描述  一、实验目的  1.利用Windows提供的API函数,编写程序,实现进程的创建和终止。  2.加深对操作系统进程概念的理解,观察操作系统进程运行的动态性能,获得包含多进程的应用程序编程经验。  二、实验内容与步骤  1.进程的创建和终止。编写一段程序,可以创建一个进程,并终止当前创建的进程。试观察记录程序执行的结果,并分析原因。  2.利用VC++实现上述程序设计和调试操作,对于进程创建的成功与否、终止进程操作的成功与

2、否提供一定的提示框。  3.通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法。  三、实验中遇到的问题及解决方法  1.进程的句柄与退出代码  查阅相关资料,对句柄的概念有一个初步的了解:  从数据类型上来看它只是一个32位(或64位)的无符号整数。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  在Windows环境中,句柄是用来标识项目的。WINDOWS程序中并不是用

3、物理地址来标识一个内存块,文件,任务或动态装入模块的。相反,WINDOWSAPI给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。  在程序设计中,句柄是一种特殊的智能指针。当一个应用程序要引用其他系统所管理的内存块或对象时,就要使用句柄。  句柄与普通指针的区别在于,指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。  在本实验中,CreateProcess()中创建了进程pi,可直接用获取。  2.句柄和进程ID的区别  句柄实际是一个指针,他指向

4、一块包含具体信息数据的内存,可以当做索引,所以进程句柄是当你要访问该进程时取得的,使用完毕必须释放。  id一般是一个标识符,用来区别不同项一个进程在不同的调用时间中有可能句柄的值是不一样的,但是ID只有也只能有一个。  四、思考  1.对可执行文件分配内存,执行。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  2.编译程序读取源程序,对之进行词法和语法的分析,将高级语言指令转换为效的汇编代

5、码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。  3.系统为所有用户进程维护了一个tasktable,在这里面存放着指向每个进程的进程控制块的指针。在某次时钟中断中,轮到一个进程被唤醒,CPU读取该进程PCB结构中那个指向TTS的指针。各进程的TTS构成一个表,表的段描述符存放于GDT或者LDT。然后CPU读取TTS中的各项数据并且根据它的各项值来设置寄存器,包括CS和IP,而这就是进程的入口。接下来,CPU开始执行进程的指令。  源代码:  #include#include#includeusingnamespacestd;intmai

6、n()  {STARTUPINFOsi;memset(&si,0,sizeof(STARTUPINFO));//初始化si在内存块中的值  =sizeof(STARTUPINFO);  =STARTF_USESHOWWINDOW;  =SW_SHOW;PROCESS_INFORMATIONpi;//必备参数设置结束目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  if(!CreateProce

7、ss(TEXT("c:\windows\system32\"),NULL,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi)){  cout>n;  if(n==1){  TerminateProcess(,0);  cout#defineTRUE1#defineFALSE0#defineMAXPRI100#defineNIL-1struct{intid;  charstatus;intnextwr;intpriority;}pcb[3];

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。