基于Unix平台的使用共享内存的IPC设计(附程序代码)(新品)
无需注册登录,支付后按照提示操作即可获取该资料.
摘 要
随着手机用户的逐渐增多,短信息已经成为使用手机用户最经常使用的业务之一。除了大量使用手机用户到手机用户的点对点短信业务之外,从信息平台到手机用户的短信信息服务业务也在快速的发展,该业务已经成为广大用户及时方便有效地获取信息的一种手段.在广大服务提供商(SP)的支持下,用户可以采用短信点播或网站定制的方式得到大量的有用信息,但服务提供商(SP)由于其业务数据量非常大,为了让系统处理数据量的速度加快,同时也为了提高对服务器资源的使用率,大部分系统在进行进程间的数据通信时候采用的是共享内存通信方式来实现多个进程间消息的共享,传递与通知。
通过该题目的设计与实现,可以使自己对UNIX技术的掌握程度更加熟练,对共享内存的原理,效率,函数,模型,能够有更加深入的理解,并且能够利用共享内存来实现简单的进程之间数据的通信。最后通过和其他进程之间通信方式的对比来体现出共享内存的高效性。
在UNIX中有多种进程间通信的方法,比如管道,消息队列等,这些方式都有一个共同的特点,需要借助第三方对象进行通信,这样在无形中增加了系统的时间消耗。而共享内存正好弥补了这些缺陷,共享内存可以被多个进程直接访问,从而加快了进程通信的速度,因此共享内存是最快的IPC通信手段。
关键字:共享内存,进程间通信,消息队列
Design and Implementation of IPC with the exploit of a shared memory on the Basis of UNIX
Abstract
With the gradual increase of mobile phone clients, short messages have become a most frequent-used business of mobile phone clients.Expect for the point-to-point short messages among mobile phone clients, the short message service from short message platform to mobile phone clients also develops very fast, which has become a convenient and efficient method to get information for the clients. Due to the support of SP, the clients can get extensive useful information through short message request or custom-built order in the website.However, owing to the extensive data volume of SP service, most of time shared memory communication is adopted to share the information among a plurality of courses when the system has to exchange, transmit and inform information of the interprocesses, therefore, the data-handling speed of the system can be accelerated and the usage rate of resources in the server can be improved.
The author of this thesis can grasp UNIX technology more proficient through the design and implement of the thesis, can get a more thorough understand towards the shared memory in the perspectives such as principles, efficiency, functions, and models. The author is able to utilize a shared memory to achieve the data communication in the simple courses as well as to prove the high efficiency of the shared memory through the comparison and contrast with the communication method of other courses.
Many methods of interprocess communication are available, such as pipes, message queues. These methods all share the same character, that is, they all need to draw the supports from a third party in order to communicate, which consumes more system time imperceptibly. However, the shared memory happens to make up these defects, because the shared memory can be directly visited by many processes so as to accelerate the speed of process communication. Therefore, the shared memory is the quickest IPC method.
Key words: shared memory, interprocess communication, message queues
共享内存定义
共享内存是最快的可用IPC(进程间通信)形式。它允许多个不相关的进程去访问同一部分逻辑内存。共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在进程的地址空间中。其他进程可以把同一段共享内存段“连接到”它们自己的地址空间里去。所有进程都可以访问共享内存中的地址。如果一个进程向这段共享内存写了数据,所做的改动会立刻被有访问同一段共享内存的其他进程看到。因此共享内存对于数据的传输是非常高效的。
共享内存函数
(1)mmap函数
void * mmap ( void * addr , size_t len ,int prot ,int flags ,int fd ,
off_t offset);
(2)munmap 函数
int munmap ( void * addr , size_t len );
(3)msync 函数
int msync ( void * addr , size_t len , int flags );
(4)shm_open函数
int shm_open ( const char *name ,int flag ,mode_t mode);
(5)shm_unlink函数
int shm_unlink ( const char * name);
(6)ftruncate 函数
int ftruncate ( int fd ,off_t length);
(7)fstat 函数
int fstat ( int fd , struct stat * buf );
共享内存的原理
共享内存是最有用的进程间通信方式之一,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。
目 录
任务书 I
摘 要 II
ABSTRACT III
第1章 UNIX概述 1
1.1 UNIX历史 1
1.2 UNIX安全性 1
1.2.1 安全机制 1
1.2.2 账号安全性 1
1.2.3 访问站点安全性 2
1.3 UNIX的操作方式 3
1.4 UNIX操作系统与WINDOWS操作系统 3
1.5 UNIX实现通信方式 4
第2章 共享内存定义和函数 5
2.1 共享内存定义 5
2.2 共享内存函数 5
第3章 其他进程间通信方式 6
(优秀毕业设计:www.2bysj.cn)
3.1 SOCKET通信 6
3.1.1 Socket原理 6
3.1.2 Socket类型 6
3.1.3 Socket函数 7
3.1.4 Socket实例 9
3.2 系统消息队列 11
3.2.1 消息队列原理 11
3.2.2 消息队列类型 11
3.2.3 消息队列函数 11
3.2.4 消息队列实例 14
第4章 共享内存研究原理 16
4.1 共享内存的原理 16
4.2 共享内存的效率 16
4.3 共享内存的函数 18
4.4 共享内存的模型 21
4.4.1 “1-1”模型 21
4.4.2 “N-N”模型 22
4.4.3 “1-N-N”模型 22
4.5 共享内存的应用 23
4.5.1 无亲缘关系进程间共享内存区 23
4.5.2 有亲缘关系进程间共享内存区 25
第5章 共享内存封装 27
5.1 封装介绍 27
5.2 封装优点 27
5.3 函数界面 28
5.3.1 共享内存函数封装的原理 28
5.3.2 共享内存函数封装的介绍 28
5.3.3 共享内存函数封装的实例 30
第6章 进程间通信方式性能对比 32
6.1 对比目的 32
6.2 对比条件 32
6.3 环境配置 32
6.4 对比结果 33
第7章 结 论 34
参考文献 35
致 谢 36