西安电子科技大学 《操作系统原理》实验报告 题目: 进程通信实验报告 班级: 030912 姓名: 王增祥 学号: 03091168 实验内容补充说明: 一、分析和设计 1. 理论分析 每个Windows进程都是由一个执行体进程块(EPROCESS)表示。API函数CreatProcess可以创建进程,采用管道技术可以实现进程间的相互通信。建立pipe, 进程以及其子进程就可以对该管道进程读写共享,管道读写操作利用,write、 read、 close进行。父进程利用pipe发送消息,子进程利用该pipe接收父进程发来的消息;子进程利用管道向父进程发送应答,父进程利用该pipe接受应答。 2. 总体设计 1、 利用CreatProcess函数创建进程。 2、创建管道,实现进程间的通信 二、详细实现 1、创建界面,采用Botton、列表框等控件创建父子界面如下图: 父进程界面: 子进程界面: 其中父进程各个空间创建类向导如图: 子进程创建类向导如图: 2.父进程编写 ( 1)创建管道: ( 2)创建子进程: ( 3)消息发送 ( 4)消息接受 3.子进程编写 ( 1)发送消息 ( 2)读消息 三、实验结果 点击创建子进程按钮: 在创建子进程之后进行进程间的通信如下图 四、心得体会 1、 从试验的角度了解了进程间是怎样利用管道进行通信的,了解了进程间通信的实际过程 2、进一步掌握了MFC的初步编程技巧,知道了怎样调试程序。 3进一步了解了,API函数的应用,明白了怎样进行界面编程。 4、进一步熟悉了在进行进程通信的编写过程中的各个细节。 六、附录 Process_Father.cpp #include "stdafx.h" #include "Process_Father.h" //包含已编写的Process_Father.h头文件 #include "Process_FatherDlg.h" //包含已编写的Process_FatherDlg.h头文件 //进行宏定义 #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif //创建父进程 BEGIN_MESSAGE_MAP(CProcess_FatherApp, CWinApp) //{{AFX_MSG_MAP(CProcess_FatherApp) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() // CProcess_FatherApp construction CProcess_FatherApp::CProcess_FatherApp() { // TODO: add construction co...