西电计算机操作系统进程通信

西电计算机操作系统进程通信

ID:37423396

大小:401.00 KB

页数:16页

时间:2019-05-23

西电计算机操作系统进程通信_第1页
西电计算机操作系统进程通信_第2页
西电计算机操作系统进程通信_第3页
西电计算机操作系统进程通信_第4页
西电计算机操作系统进程通信_第5页
资源描述:

《西电计算机操作系统进程通信》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、西安电子科技大学《操作系统原理》实验报告西安电子科技大学计算机学院实验报告题目:进程通信班级:姓名:学号:西安电子科技大学《操作系统原理》实验报告内容摘要:通信进程个数2个采用的通信方式匿名管道实验内容补充说明无一、分析和设计1.理论分析匿名管道主要用在本地父子进程之间的通信,首先由父进程创建一个匿名管道,在创建成功后,便可以获得匿名管道的读写句柄,然后父进程就可以向匿名管道中写入和读取数据。要实现父子间通信,就要父进程中创建一个子进程,子进程可以继承和使用父进程的一些句柄。在创建子进程的过程中,必须将子进程的标准输入句柄设置为父进程的读管道的句柄,子进程的标准输出句柄设置

2、为父进程的写管道的句柄,这样,父子进程之间就可以通信了。2.总体设计管道一先由父进程创建一个匿名管道,再由父进程获得读写句柄,构建读写的方式;由父进程创建子进程,实现父进程一样的通信功能。父进程子进程管道二二、详细实现1、父进程的实现1)消息以及成员函数和成员变量的声明public:西安电子科技大学《操作系统原理》实验报告afx_msgvoidOnBnClickedBtnCreatePipe();//创建匿名管道afx_msgvoidOnBnClickedBtnWritePipe();//写匿名管道afx_msgvoidOnBnClickedBtnReadPipe();//

3、读匿名管道voidParentReadPipe(void);//定义父进程读匿名管道的成员函数voidParentWritePipe(void);//定义父进程写匿名管道的成员函数voidCreateSecurityAttributes(PSECURITY_ATTRIBUTESpSa);//创建SECURITY_ATTRIBUTES结构的成员函数voidCreateStartUpInfo(LPSTARTUPINFOlpStartUpInfo);//创建STARTUPINFO结构的成员函数voidCreateNoNamedPipe(void);//创建匿名管道的成员函数//分

4、别代表要从匿名管道中读的数据和要写到匿名管道中的数据CStringm_CStrReadPipe;CStringm_CStrWritePipe;//保存创建匿名管道后所得到的对匿名管道的读写句柄HANDLEhPipeRead;HANDLEhPipeWrite;//保证匿名管道只创建一次BOOLm_PipeIsCreated;西安电子科技大学《操作系统原理》实验报告2)消息处理函数//创建匿名管道按钮的消息处理函数voidCNoNamedPipeParentDlg::OnBnClickedBtnCreatePipe(){if(m_PipeIsCreated==FALSE){th

5、is->CreateNoNamedPipe();}}//写入数据到匿名管道中按钮的消息处理函数voidCNoNamedPipeParentDlg::OnBnClickedBtnWritePipe(){this->ParentWritePipe();}//从匿名管道中读取数据按钮的消息处理函数voidCNoNamedPipeParentDlg::OnBnClickedBtnReadPipe(){this->ParentReadPipe();}//接收数据voidCNoNamedPipeParentDlg::ParentReadPipe(void);//发送数据voidCNoN

6、amedPipeParentDlg::ParentWritePipe(void)//创建SECURITY_ATTRIBUTES结构voidCNoNamedPipeParentDlg::CreateSecurityAttributes(PSECURITY_ATTRIBUTESpSa){//这里必须将bInheritHandle设置为TRUE,//从而使得子进程可以继承父进程创建的匿名管道的句柄pSa->bInheritHandle=TRUE;pSa->lpSecurityDescriptor=NULL;pSa->nLength=sizeof(SECURITY_ATTRIBUT

7、ES);}//用来初始化新进程的STARTUPINFO成员voidCNoNamedPipeParentDlg::CreateStartUpInfo(LPSTARTUPINFOlpStartUpInfo)//创建匿名管道voidCNoNamedPipeParentDlg::CreateNoNamedPipe(void);2、子进程的实现1)消息以及成员函数和成员变量的声明:protected:HICONm_hIcon;西安电子科技大学《操作系统原理》实验报告//生成的消息映射函数virtualBOOLOnInitDi

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

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

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