徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
安装
比浏览器更快的访问!
 

Fetch-and-add

指数 Fetch-and-add

fetch-and-add是CPU指令(FAA),对内存位置执行增加一个数量的原子操作。具体内容为: FAA可用于实现互斥锁、信号量。 1991年,证明fetch-and-add具有一个有限的数,能解决不超过两个并发进程的无等待consensus问题。.

3 关系: Read-modify-write排号自旋锁检查并设置

Read-modify-write

读-修改-写(read-modify-write)是计算机科学中的一个原子操作(atomic operation,类似的还有test-and-set, fetch-and-add, compare-and-swap等),操作过程是读一个内存位置(或IO端口),修改其值,再写回原位置。 必须要先读操作的一个原因是,系统架构往往只允许字(word)级的读写,必须先读出那些不做修改的比特,保持不变再写回。写成C语言语句类似于: Read-modify-write指令用于IO端口时,可能会产生出乎意料的结果,如无法给一个比特置位。这往往是因为写操作并不影响到读操作的源寄存器。 RAID也使用这一术语描述原子操作的read-modify-write序列。 Such RAID levels include RAID 4, RAID 5 and RAID 6.

新!!: Fetch-and-add和Read-modify-write · 查看更多 »

排号自旋锁

排号自旋锁是计算机科学中的一种多线程同步机制。类似于自旋锁,但每一个申请排队自旋锁的线程获得一个排队号(ticket)。至多一个线程拥有自旋锁,当它释放锁时,把自身的ticket加1作为下一个可获得锁的ticket,持有该ticket的线程在自旋检查时就可发现已经获得了自旋锁。这种机制类似于一些提供社会服务的场所(如银行):进门的顾客从排号机获取一个等待号,然后不断检查当前可服务的号,直至轮到其手持的号。 这是一种先进先出(FIFO)的公平性机制。.

新!!: Fetch-and-add和排号自旋锁 · 查看更多 »

检查并设置

在計算機科學中,檢查並設置(test-and-set-lock,TSL)是一種不可中斷的原子運算。TSL对某個記憶體位置写入1(set)並返回其舊值。 在多个进程可同時访问記憶體同个地址时,如果一個程式正在執行TSL,其他程式在它執行完成前不能執行TSL。中央處理器可提供TSL指令,或利用如雙埠隨機存取記憶體(Dual-ported RAM)等其它電子元件所提供的機制实现TSL。 下述为一種利用TSL指令來實現自旋鎖: 當舊值為 0 時,這程序可以得到鎖。否則的話,它會一直嘗試將 1 寫入記憶體位置,直到舊值為 0。 锁(lock)的状态一般是0(未锁)与1(已锁)。因此下列test_and_set的实现是等价的:.

新!!: Fetch-and-add和检查并设置 · 查看更多 »

传出传入
嘿!我们在Facebook上吧! »