http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_ServerIpcMemoryCreate: shmget(key=5432001, size=415776768, 03600) failed: Invalid argument This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter. You can either reduce the Read More
http://coolshell.cn/articles/8239.html关于无锁队列的实现,网上有很多文章,虽然本文可能和那些文章有所重复,但是我还是想以我自己的方式把这些文章中的重要的知识点串起来和大家讲一讲这个技术。下面开始正文。关于CAS等原子操作在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set,或是 Compare & Swap,现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是CMPXCHG汇编指令。有了这个原子操作,我们就可以用其来实现各种无锁(lock free)的数据结构。这个操作用C语言来描述就是 Read More
http://coolshell.cn/articles/8239.htmlCAS的ABA问题所谓ABA(见维基百科的ABA词条),问题基本是这个样子:进程P1在共享变量中读到值为AP1被抢占了,进程P2执行P2把共享变量里的值从A改成了B,再改回到A,此时被P1抢占。P1回来看到共享变量里的值没有被改变,于是继续执行。虽然P1以为变量值没有改变,继续执行了,但是这个会引发一些潜在的问题。ABA问题最容易发生在lock free 的算法中的,CAS首当其冲,因为CAS判断的是指针的地址。如果这个地址被重用了呢,问题就很大了。(地址被重用是很经常发生的,一个内存分配后释放了,再分配,很有可能还是 Read More
转http://blog.csdn.net/realxie/article/details/7317630http://en.wikipedia.org/wiki/MESI_protocolMESI(Modified Exclusive Shared Or Invalid)(也称为伊利诺斯协议,是因为该协议由伊利诺斯州立大学提出)是一种广泛使用的支持写回策略的缓存一致性协议,该协议被应用在Intel奔腾系列的CPU中,详见“support the more efficient write-back cache in addition to thewrite-throughcache previ Read More
转:http://www.cnblogs.com/lucifer1982/archive/2009/04/08/1431992.htmlhttp://en.wikipedia.org/wiki/Compare-and-swapIncomputer science,compare-and-swap(CAS) is anatomicinstructionused inmultithreadingto achievesynchronization. It compares the contents of a memory location to a given value and, only if Read More
VI中的多行删除与复制法一:单行删除,:1(待删除行)d多行删除 ,:1,10d法二:光标所在行,dd光标所在行以下的N行,Ndd方法1:光标放到第6行,输入:2yy光标放到第9行,输入:p此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。方法2:命令行模式下输入6,9 co 12复制第6行到第9行之间的内容到第12行后面。方法3:有时候不想费劲看多少行或复制大量行时,可以使用标签来替代光标移到起始行,输入ma光标移到结束行,输入mb光标移到粘贴行,输入mc然后 :'a,'b co 'c 把 co 改成 m 就成剪切了要删除多行的话,可以 Read More
1.文件介绍/etc/fstab这个文件描述系统中各种文件系统的信息,应用程序读取这个文件,然后根据其内容进行自动挂载的工作。作为系统配置文件,fstab通常都位于/etc目录下,它包括了所有分区和存储设备的信息,以及它们应该挂载到哪里,以什么样子的方式挂载。如果遇到一些类似于无法挂载你的windows分区,无法使用你的光驱,无法对某个分区进行写入操作什么的,那么基本上可以断定,你的fstab内容有问题了。也就是说,你可以通过修改它来搞定这些问题.2.系统环境(1)系统:centos 6.3 x86_64(2)分区情况:fstab文件:附:分区卷标的查看和修改1.查看分区的label ... Read More
Fstab 文件大家都很熟悉,Linux 在启动的时候通过 fstab 中的信息挂载各个分区,一个典型的分区条目就像这样:/dev/sdb5 /mnt/usb vfat utf8,umask=0 0 0/dev/sda4 为需要挂载的分区,sda4 是 Linux 检测硬盘时按顺序给分区的命名,一般来讲,这个名称并不会变化,但是如果你有多块硬盘,硬盘在电脑中的顺序变化的时候,相同的名称可能代表着不同的硬盘分区,如果你是从 USB 设备启动,与其他 USB 设备的插入顺序也会导致分区识别的困难。这个时候 UUID 就派上用场了,UUID 全称是 Universally Unique Identi Read More
gcc是C编译器;g++是C++编译器;linux下cc一般是一个符号连接,指向gcc;gcc和g++都是GUN(组织)的编译器。而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Linux/Unix都是大小写敏感的系统,这点一定要注意。cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection,GNU编译器套装。gcc原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C、C++、Objective-C、Ada、Fortran、Java)。因此,它们是不一样的,一个是古老的C编译器,一个是GNU编译 Read More
今天在虚拟机上用GCC编译一个程序的时候,出现了下面的错误:make: warning: Clock skew detected. Your build may be incomplete 试了make clean后再make,仍然是同样的问题,并且make clean/make时,一直循环不停止。最后发现这个错误的原因在于系统时间比文件修改时间早,看了下我的系统时间竟然还是2012-01-13,而今天都已经是2012-01-31呢,于是修改时间后重新编译,问题解决。Linux下用date命令可查询和修改系统时间(root权限才可修改)date查询系统时间date -s 1/31/2012命. Read More