摘要: 原文:http://oyjh1986.blog.163.com/blog/static/1960160762011830476639/Unix IO模型/IO复用select及epoll/存储映射IO mmap2011-09-30 17:34:06|分类:Linux操作系统|字号订阅 据Unix网络编程,Unix主要有阻塞IO、非阻塞IO、信号驱动IO、IO复用、异步IO;前五种都是同步,只有最后一种才是异步IO。1、 先贴上Unix网络编程的几张大图: 同步IO和异步IO的区别就在于:数据拷贝的时候进程是否阻塞! 阻塞IO和非阻塞IO的区别就在于:应用程序的调用是否立即返回!阻塞IO:从图中 阅读全文
posted @ 2012-09-17 16:23 庄庄庄 阅读(1086) 评论(0) 推荐(0) 编辑
摘要: 原文:http://www.phreedom.org/research/tinype/Tiny PETranslations:português brasileiroCreating the smallest possible PE executableThis work was inspired by the Tiny PEchallengeby Gil Dabah. The object of the challenge was to write the smallest PE file that downloads a file from the Internet and ex 阅读全文
posted @ 2012-09-17 13:08 庄庄庄 阅读(478) 评论(0) 推荐(0) 编辑
摘要: ---------- SUB_FUN.C#include "mul_cp.h"extern char *src_addr, *dest_addr;static char *sub_bar(int gain, int all, char *buf, int len, int num){ int block = len/num; if(len % num != 0) block += 1; int i; for(i = 0; i<block; i++) if(i <= block * gain /all) buf[i] = ... 阅读全文
posted @ 2012-09-17 12:57 庄庄庄 阅读(323) 评论(0) 推荐(0) 编辑
摘要: http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index2.html系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信。也就是说,每个共享内存区域对应特殊文件系统shm中的一个文件(这是通过shmid_kernel结构联系起来的),后面还将阐述。1、系统V共享内存原理进程间需要共享的数据被放在一个叫做IPC共享内存区域的地方,所有需要访问该共享区域的进程都要把该共享区域映射到本进程的地址空间中去。系统V共享内存通过shmget获得或创建一个IPC共享内存区域, 阅读全文
posted @ 2012-09-17 02:07 庄庄庄 阅读(648) 评论(0) 推荐(0) 编辑
摘要: http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据[1]:一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域。而是保持共享区域,直到通信完毕为止,这样,数据内容一直保存在共享内存中,并没有写回文件。共享内存中的内容 阅读全文
posted @ 2012-09-17 02:05 庄庄庄 阅读(188) 评论(0) 推荐(0) 编辑