西安电子科技大学
《操作系统原理》实验报告
题目:  进程通信实验报告               
班级:  030912       
姓名:    王增祥     
学号:  03091168       

实验内容补充说明:
一、分析和设计
1 理论分析
  每个Windows进程都是由一个执行体进程块(EPROCESS)表示。API函数CreatProcess
以创建进程,采用管道技术可以实现进程间的相互通信。建立pipe,进程以及其子进程就可以对该管道进程读写共享,管道读写操作利用,write进程间通信实验报告心得readclose进行。父进程利用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 code here,
    // Place all significant initialization in InitInstance
}
// The one and only CProcess_FatherApp object
CProcess_FatherApp theApp;
// CProcess_FatherApp initialization
BOOL CProcess_FatherApp::InitInstance()
{
    AfxEnableControlContainer();
#ifdef _AFXDLL
    Enable3dControls();            // Call this when using MFC in a shared DLL
#else

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。