共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。
采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据[1]:一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域。而是保持共享区域,直到通信完毕为止,这样,数据内容一直保存在共享内存中,并没有写回文件。共享内存中的内容往往是在解除映射时才写回文件的。因此,采用共享内存的通信方式效率是非常高的。
Linux的2.2.x内核支持多种共享内存方式,如mmap()系统调用,Posix共享内存,以及系统V共享内存。linux发行版本如Redhat 8.0支持mmap()系统调用及系统V共享内存,但还 ......
在共享内存(上)中,主要围绕着系统调用mmap()进行讨论的,本部分将讨论系统V共享内存,并通过实验结果对比来阐述两者的异同。系统V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面。
系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信。也就是说,每个共享内存区域对应特殊文件系统shm中的一个文件(这是通过shmid_kernel结构联系起来的),后面还将阐述。
1、系统V共享内存原理
进程间需要共享的数据被放在一个叫做IPC共享内存区域的地方,所有需要访问该共享区域的进程都要把该共享区域映射到本进程的地址空间中去。系统V共享内存通过shmget获得或创建一个IPC共享内存区域,并返回相应的标识符。内核在保证shmget获得或创建一个共享内存区,初始化该共享内存区相应的shmid_kernel结构注同时,还将在特殊文件系统shm中,创建并打开一个同名文件,并在内存中建立起该文件的相应dentry及inode结构,新打开的文件不属于任何一个进程(任何进程都可以访问该共享内 ......
vmware虚拟linux局域网中上网
对于初学linux的朋友,最好是在windows下用vmware虚拟一个linux,如果是局域网,可以使用NAT方式最为简单。
用VMnet8,安装好后,选择NAT方式,然后在windows主机上用ipconfig查看VMnet8的IP地址,运行->cmd->ipconfig -all
一般是192.168.X.1/255.255.255.0
此时VMnet8的设置如果是自动获取IP,现在改成静态IP,并把此IP直接填入VMnet8里,注意不要设网关。
同时在vmware网络设置里的NAT项中查看VMnet8,一般是192.168.X.2/255.255.255.0......
这个地址就是VMnet8,NAT的网关。
现在在LINUX下把网卡IP设置成和VMnet8一个网段的IP(192.168.X.Z/255.255.255.0),网关设置成刚才查看的那个IP192.168.X.2即可.
在Linux下把DNS设置成你Host OS上网的DNS。
就可以上网了。
本文通过vmwarte+ubuntu7.10,vmware+fc9.0.
......
下载SmartFoxServerPro,地址:http://www.smartfoxserver.com/products/pro.php
解压:
gzip -d filename.tar.gz
tar xf filename.tar
进入解压后的文件夹,执行安装:
./install
安装过程中要输入安装路径。
安装完成后,进入安装目录下的Server文件夹,执行./sfs start开启服务器。
命令:
./sfs start 开启服务器
./sfs stop 关闭服务器
./sfs restart 重启服务器
./sfs status 显示服务器状态 ......
/ 根目录
/bin 常用的命令 binary file 的目录
/boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内
/boot/grub/menu.lst GRUB设置
/boot/vmlinuz 内核
/boot/initrd 核心解压缩所需 RAM Disk
/dev 系统周边设备
/etc 系统相关设定文件
/etc/DIR_COLORS   ......
uname -a 查看内核版本
ls -al 显示所有文件的属性
pwd 显示当前路径
cd - 返回上一次目录 cd ~ 返回主目录
date s 设置时间、日期
cal ......