操作系统实验报告_进程与进程通信(4)

2020-12-24 21:22

上海交通大学网络教育学院--计算机专业--操作系统作业---操作系统实验报告_进程与进程通信

在前面的例子中就是允许插队,这样会导致超过允许服务的进程上限

5.2、 共享内存实现邮箱的数据结构

由于共享内存的方法不直接提供队列功能故采用循环队列思想模拟缓冲区,下面是

共享内存的头部,用来存储索引信息

struct

{

DWORD MsgSize; //单个消息大小:字节数

int MsgMaxCount; //消息的总数

int MsgNum; //消息的个数

int ReadIndex; //可读消息索引

int WriteIndex; //可写消息索引

};

5.3、 “实时”显示内容的处理与内存泄漏

这个显示消息的函数每隔50ms执行一次,所以实际上是是查询方式来实现实时显

在此模式下可以发现一些被人遗忘的内存释放,我在实现这个函数时候发现进程占

用内存和执行时间成正比,最后才发现内存泄漏的地方,尤其是读取共享内存的指针特别占内存

5.4、 相关代码

5.4.1、 声明类

1) enum operation {SpaceEnum,SendEnum,ReceiveEnum,MutexEnum};

2) typedef struct _MSGQ_HEADER

3) {

4)

5)

6)

7)

8)

9)

10)

11)

12)

13)

14)

15)

16) DWORD MsgSize; //单个消息大小:字节数 int MsgMaxCount; //消息的总数 int MsgNum; //消息的个数 int ReadIndex; //可读消息索引 int WriteIndex; //可写消息索引 }MSGQ_HEADER, *PMSGQ_HEADER; class CMsgQ:public QDialog { public: CMsgQ(){} BOOL Create(LPCTSTR **strname,int nowProcess,int

*MsgMaxCount,DWORD *MsgSize);

17)

maxProcess,int


操作系统实验报告_进程与进程通信(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:洋流的影响

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: