共享内存【1】

共享内存总结:   http://www.embedu.org/Column/Column250.htm

用tmpfs的例子:  http://www.chinaunix.net/old_jh/4/243074.html

randisk写得很全: http://linux.chinaunix.net/techdoc/beginner/2008/01/29/977725.shtml

性能测试:http://leeon.me/a/linux-ramdisk-tmpfs-ramfs


共享内存的实现原理?都是使用文件,然后文件放在tmpfs中。POSIX的实现是在用户态建立tmpfs的,所以API跟文件映射很像,SV是内核态,对用户不可见。

tmpfs是类似ramdisk一样的技术,估计是ramdisk的升级版。


1.先看ramdisk怎么用


(1)格式化文件系统。ramdisk设备文件在/devram*中,默认有16个,从0到15.用mke2fs格式化。

administrator@ubuntu:/etc$ ll /dev/ram*
brw-rw---- 1 root disk 1,  0 2013-05-21 13:37 /dev/ram0
brw-rw---- 1 root disk 1,  1 2013-05-21 09:09 /dev/ram1
brw-rw---- 1 root disk 1, 10 2013-05-21 09:09 /dev/ram10
brw-rw---- 1 root disk 1, 11 2013-05-21 09:09 /dev/ram11
brw-rw---- 1 root disk 1, 12 2013-05-21 09:09 /dev/ram12
brw-rw---- 1 root disk 1, 13 2013-05-21 09:09 /dev/ram13
brw-rw---- 1 root disk 1, 14 2013-05-21 09:09 /dev/ram14
brw-rw---- 1 root disk 1, 15 2013-05-21 09:09 /dev/ram15
brw-rw---- 1 root disk 1,  2 2013-05-21 09:09 /dev/ram2
brw-rw---- 1 root disk 1,  3 2013-05-21 09:09 /dev/ram3
brw-rw---- 1 root disk 1,  4 2013-05-21 09:09 /dev/ram4
brw-rw---- 1 root disk 1,  5 2013-05-21 09:09 /dev/ram5
brw-rw---- 1 root disk 1,  6 2013-05-21 09:09 /dev/ram6
brw-rw---- 1 root disk 1,  7 2013-05-21 09:09 /dev/ram7
brw-rw---- 1 root disk 1,  8 2013-05-21 09:09 /dev/ram8
brw-rw---- 1 root disk 1,  9 2013-05-21 09:09 /dev/ram9
administrator@ubuntu:/etc$ sudo mke2fs /dev/ram1
mke2fs 1.41.14 (22-Dec-2010)
文件系统标签=
操作系统:Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
16384 inodes, 65536 blocks
3276 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=67108864
8 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345

正在写入inode表: 完成                            
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
administrator@ubuntu:/etc$ 
(2)建立目录,挂载。

administrator@ubuntu:/etc$ sudo mkdir /mnt/tmp
administrator@ubuntu:/etc$ sudo mount /dev/ram1 /mnt/tmp
administrator@ubuntu:/etc$ 
(3)使用。。。

(4)卸载。

umount /mnt/tmp

tmpfs的优点是什么呢?首先是大小可变被。

mpfs是一种基于内存的文件系统,它和虚拟磁盘ramdisk比较类似像,但不完全相同,和ramdisk一样,tmpfs可以使用RAM,但它也可以使用swap分区来存储。而且传统的ramdisk是个块设备,要用mkfs来格式化它,才能真正地使用它;而tmpfs是一个文件系统,并不是块设备,只是安装它,就可以使用了。tmpfs是最好的基于RAM的文件系统。


测试速度:mount后

administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.056575 秒,927 MB/秒
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.0554443 秒,946 MB/秒
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.0591893 秒,886 MB/秒
umount后:

administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.130509 秒,402 MB/秒
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.217134 秒,241 MB/秒
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.215663 秒,243 MB/秒
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.129891 秒,404 MB/秒



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值