试验五进程的创建与控制_第1页
试验五进程的创建与控制_第2页
试验五进程的创建与控制_第3页
试验五进程的创建与控制_第4页
试验五进程的创建与控制_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2015-2016(2)操作系统实验 5 学号: 姓名: 实验五 进程的创建与控制一、实验目的进程是操作系统中最重要的概念之一,任何程序的执行都要借助于进程来启动、运行和控制。通过该实验,一方面让学生理解程序和进程之间的一对多联系,体会程序的静态性和进程的动态性,另一方面也感受我们所使用的操作系统对进程的支持情况。二、实验预习.什么是进程? 一个进程在其生存期中至少要经历哪几种状态? 一个程序是否只能被一个进程启动?进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。一个进程在其 生存期中至少要经历就绪、执行、阻塞状态三种状态,一个程序不仅仅只能被一个进程启动。.操作系统是根据什

2、么信息来感知进程的存在的?操作系统根据进程控制块(PCB来感知进程的存在。三、实验内容和要求.在实验室已经安装的 Visual C+ 6.0 环境下创建一个进程,来运行一个Windows系统自带的记事本程序(notepad.exe ),设计出来的界面大体如下图:要求通过点击界面上的按钮,分别启动、阻塞、唤醒、终止记事本、关闭记事本进程空间。.自己建立一个可执行程序,用几个不同的进程来运行它。可参考如下步骤:(1)自己用VB建立一个应用程序 hello.exe,保存起来,为下一步做准备。(2)在VC环境下设计界面大体如下:两个进程(P1、P2)运行同一个程序(hello.exe )启动进程1 (

3、运行hello.exe )挂起进程1唤醒进程1终止进程1启动进程2 (运行hello.exe )挂起进程2唤醒进程2终止进程2【实验步骤】.在Visual C+ 6.0环境下创建一个进程,设计出来的界面大体如下图所示,分别有启动、 阻塞、唤醒、终止记事本、关闭记事本等进程的按钮,来运行一个Windows系统自带的记事本程序(notepad.exe )。2016-4-252015-2016(2)操作系统实验 5 学号: 姓名: 区 VCCCC确定 I取消 I进程创建与控制启动记事本挂起记事本I 激活记事本I 终止记事本I进程退出每个按钮对应的代码如下:PROCESS_INFORMATION pi

4、;HCURSOR CVccccDlg:OnQueryDragIcon() return (HCURSOR) m_hIcon;/启动记事本 void CVccccDlg:OnButton1() STARTUPINFO si;memset(&si,0,sizeof(si); si.cb=sizeof(si);CreateProcess(NULL, notepad.exe, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS| CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);/挂起记事本void CVccccDlg:OnButton2

5、() SuspendThread(pi.hThread);2016-4-252015-2016(2)操作系统实验 5 学号: 姓名: )/激活记事本void CVccccDlg:OnButton3() (ResumeThread(pi.hThread); )/终止记事本void CVccccDlg:OnButton4() (TerminateProcess(pi.hProcess,0); )/进程退出void CVccccDlg:OnButton5() (ExitProcess(0); ).(1)在VB环境下建立一个可执行程序hello.exe并保存运行的结果如图1所示,然后在VC环境下设计用

6、两个进程(P1、P2)运行同一个程序(hello.exe ),界面设计如图2所 示。其中包括启动进程 1 (运行hello.exe )、挂起进程1、唤醒进程1、终止进程1、启动 进程2 (运行hello.exe )、挂起进程2、唤醒进程2、终止进程2。图1 VB环境下的可执行程序界面2016-4-252015-2016(2)操作系统实验 5 学号: 姓名: 5Q VCCC确定取消茂逾程1 |挂起进程1 |嗔醒进程1 |终止进程1退出 |启动进程2 I挂起避程之唤醒进程一 |终止进程-图2 VC环境下的进程设计界面 (2)对于图2-2所示的界面所对应的代码如下:启动进程1PROCESS_INFO

7、RMATION pi;void CVcccDlg:OnButton1() STARTUPINFO si;memset(&si,0,sizeof(si);si.cb=sizeof(si);CreateProcess(NULL,hello.exe,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS| CREATE_NEW_CONSOLE, NULL,NULL,&si, &pi);/挂起进程1void CVcccDlg:OnButton2()SuspendThread(pi.hThread);/唤醒进程12016-4-252015-2016(2)操作系统实验 5 学号: 姓名

8、: void CVcccDlg二OnButton3()(ResumeThread(pi.hThread);/终止进程1void CVcccDlg二OnButton4() (TerminateProcess(pi.hProcess,0);/退出void CVcccDlg二OnButton9()(ExitProcess(0);/启动进程2PROCESS_INFORMATION pi2;void CVcccDlg二OnButton5() (STARTUPINFO si2;memset(&si2,0,sizeof(si2);si2.cb=sizeof(si2);CreateProcess(NULL,h

9、ello.exe,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS| CREATE_NEW_CONSOLE, NULL, NULL, &si2, &pi2);/挂起进程2void CVcccDlg二OnButton6() (SuspendThread(pi2.hThread);/唤醒进程2void CVcccDlg二OnButton7() (ResumeThread(pi2.hThread);2016-4-252015-2016(2)操作系统实验 5 学号: 姓名: /终止进程2void CVcccDlg二OnButton8() (TerminateProcess(pi2.hProcess,0);(3)编译以上代码后的运行结果如下图3所示,当按钮启动进程1时会启动进程hello.exe,此时继续启动进程 2,也会启动进程hello.exe并能够运行;若点击任何一个进程挂起,则该 进程将会不能够再运行,窗口处于灰色,表示不能够执行,知道单击唤醒进程按钮才能够继续执行进行。图3运行界面 四、实验小结在本次实验中,我学习和理解了进程和程序的关系,明白任何程序的执行都是要依赖于进程来进行启

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论