scispace - formally typeset

Book ChapterDOI

How a Rainbow Coloring Function Can Simulate Wait-Free Handshaking

22 Aug 1994-pp 546-555

Abstract: How to construct shared data objects is a fundamental issue in asynchronous concurrent systems, since these objects provide the means for communication and synchronization between processes in these systems. Constructions which guarantee that concurrent access to the shared object by processes is free from waiting are of particular interest, since they may help to increase the amount of parallelism in such systems. The problem of constructing a k-valued wait-free shared register out of binary subregisters of the same type where each write access consists of one subwrite (constructions with one-write) has received some attention, since it lies at the heart of studying lower bounds of the complexities of register constructions and trade-offs between them. The first such construction was for the safe register case which uses k binary safe registers and exploits the properties of a rainbow coloring function of a hypercube. The best known construction for the regular/atomic case uses ( 2 k ) binary regular/atomic registers. In this work we show how the rainbow coloring function can be extended to simulate a handshaking mechanism between the reader and the writer of the register, thus offering a solution for the atomic register case with one reader, which uses only 3k − 2 binary registers. The lower bound for such a construction is k−1.
Topics: Handshaking (53%), Rainbow coloring (52%)

Content maybe subject to copyright    Report

Centrum voor Wiskunde en Informatica
REPORTRAPPORT
How a Rainbow Coloring Function Can Simulate Wait-free Handshaking
M. Papatriantafilou
Computer Science
/Department of Algorithmics and Architecture
CS-R9437 1994


 !#"$%&')(*+, -"/.1023"5467.8.9:;<>=@?A
BDC5EGFIHJCLKMCONJCPQEGF COHRPSCT#U VXW
Y[ZC\F]U]^A_6`[a>b/c/d6`[cMe>f\gbhdji
K8klF]U F]NmNJCJnpon7F qmCrn
Y6ZsC\FtU]^ `ju$bmv[c#u/e#f5gbhwd8i
xzy{t|m}l~]>~Oz@J|mQQO8A7IQR|Xm673 RQ
xlRAlRjRQ S¡7¢@{t7%£ ¤Q%|l}lI7|X/3
xlRAlRz¥rS£ ¦[wlG~ |O§M£ ¨7]©£ ¢@ª/}lG]7|l«¬Q}lI7|$/IS
®°¯±J²m³\´8µz²
¶X·¸º¹¤·»·l¼½¤¹w¾%¿S»w¹½wÀSÁQ¾tÂÃÃRÁ¹¤Á*·lĤÅ%ÂS»w¹¤½Æ ½ÁDǤ¿R¼SÃRÁrÈjÂQ¼¹¤ÁRÉ6Æ ½Ê½¿ÂDÆ ¼*Á7½¤Ër¼»RÀR¾ ·l¼·l¿S½-»·l¼S»Q¿R¾¾ ÂR¼¹-½¤Ë7½G¹ÊÂQÈj½Ì#½©Æ ¼S»Â
¹wÀSÂS½¤ÂA·lĤÅ%ÂS»w¹¤½AÍ7¾ ·ÎÆ ÃRÂ¹wÀSÂÈjÂÁr¼S½$Ç3·¾z»·lÈÈ¿R¼7Æ »Á¹©Æ ·l¼jÁr¼SÃ½¤Ë¼S»RÀQ¾t·J¼7Æ ÏwÁ¹©Æ ·l¼ÄÂw¹¸$ÂÂQ¼Í7¾ ·r»Â½Ê½¤ÂS½>Æ ¼¹wÀSÂS½¤ÂA½¤Ë7½G¹¤ÂRÈj½Ð
Ñ
·l¼½¤¹w¾%¿S»w¹©Æ ·J¼S½#¸À7Æ »QÀÒl¿SÁQ¾ Ár¼¹¤ÂSÂ¹wÀSÁ¹>»·J¼S»R¿Q¾%¾ ÂQ¼¹>Á7»»SÂ½¤½[¹¤·-¹ÀSÂ½ÀSÁQ¾ ÂSÃ@·lĤÅ%ÂS»w¹ÄËsÍ7¾ ·»SÂ½Ê½¤Â½jÆ ½8ÇG¾ ÂSÂÓÇG¾t·JÈÔ¸MÁQÆ ¹©Æ ¼SÒ
ÁQ¾tÂ@·ÇÓÍSÁQ¾ ¹Æ »R¿É ÁQ¾>Æ ¼¹ÊÂQ¾ Â½¤¹ÌO½Æ ¼S»Â-¹wÀSÂË&ÈjÁwËÕÀSÂ7É Í¹¤·Æ ¼S»R¾ ÂÁ7½ÊÂ-¹wÀSÂ@ÁrÈj·J¿R¼¹A·7ÇÓÍSÁR¾ ÁRÉ É Â7É Æ ½wÈÖÆ ¼½w¿S»QÀ@½¤Ë7½G¹¤ÂRÈj½Ð×jÀSÂ
Í7¾t·JÄÉ ÂQÈØ·7ÇO»·l¼S½¤¹w¾¿S»w¹©Æ ¼SÒAÁÙmÚÎ7ÁRÉ ¿SÂÃÓ¸MÁQÆ ¹¤ÚÇG¾tÂÂ8½ÀSÁQ¾tÂÃ@¾ ÂÒÆ ½G¹ÊÂQ¾\·J¿¹M·Ç$Ä7Æ ¼SÁQ¾ Ë½¿RÄ7¾ ÂSÒRÆ ½¤¹¤ÂQ¾ ½$·Çm¹wÀSÂ8½ÊÁrÈjÂ#¹ËrÍÂ#¸ÀSÂQ¾ Â
ÂÁ7»RÀA¸¾]Æ ¹¤ÂAÁ7»S»Â½Ê½[»S·J¼S½Æ ½G¹¤½6·ÇX·J¼SÂA½¿RÄ¸¾IÆ ¹ÊÂÛSÜSÝlÞ$ßà¤áâ$ÜRàGã©ÝlÞ$ßäÓã¤àGåÝlÞ>æçäáQã¤àæèÀSÁ7½¾tÂ»Â7Æ Î7ÂÃ½¤·lÈjÂAÁ¹G¹ÊÂQ¼¹©Æ ·J¼Ì
½Æ ¼S»ÂÆ ¹É Æ ÂS½>Á¹[¹wÀSÂ-ÀSÂÁQ¾ ¹>·7Ç$½G¹¿ÃQËQÆ ¼SÒÉ ·S¸MÂQ¾6Ä·l¿R¼SÃR½[·Ç/¹ÀSÂ»·lÈÍÉ ÂéRÆ ¹©Æ Â½$·7Ç>¾tÂÒÆ ½¤¹¤ÂQ¾O»·l¼S½G¹¾¿S»w¹©Æ ·l¼S½6Ár¼SÃ-¹w¾tÁ7ÃRÂwÚ%·ê5½
ÄÂw¹%¸MÂÂQ¼#¹wÀSÂQÈÐO×jÀSÂ#ëm¾t½G¹X½¿S»QÀ8»·J¼S½¤¹w¾¿S»¹©Æ ·J¼[¸$Á7½zÇ3·R¾l¹wÀSÂ#½¤ÁÇ3Â¾ ÂSÒRÆ ½G¹ÊÂQ¾J»SÁ7½¤Â[¸À7Æ »QÀÓ¿S½¤Â½[ÙÕÄ7Æ ¼SÁR¾ ËA½¤ÁÇ3Â¾ ÂSÒRÆ ½¤¹¤ÂQ¾ ½MÁr¼SÃ
ÂéJÍÉ ·RÆ ¹¤½j¹wÀSÂ@Í7¾t·JÍÂQ¾ ¹©Æ Â½·7Ç[Á&¾ ÁQÆ ¼RÄ·¸:»·É ·¾]Æ ¼SÒǤ¿R¼S»w¹©Æ ·J¼-·7Ç6Á&ÀËrÍÂQ¾ »R¿RÄ7ÂÐ8×jÀSÂÄÂ½¤¹Óì7¼S·S¸¼»·l¼½¤¹w¾%¿S»w¹©Æ ·J¼Ç3·R¾$¹wÀSÂ
¾ ÂSÒJ¿É ÁQ¾IíÁ¹¤·lÈAÆ »»Á7½ÊÂ¿S½ÊÂ½-îïðñÄ7Æ ¼SÁQ¾ Ë@¾ ÂÒl¿É ÁQ¾]í7Á¹¤·lÈAÆ »¾tÂÒRÆ ½¤¹¤ÂQ¾t½Ð[òt¼A¹wÀ7Æ ½$¸M·¾ì¸MÂA½ÀS·¸:ÀS·S¸¹wÀSÂ¾ ÁQÆ ¼RÄ·S¸»·rÉ ·¾]Æ ¼SÒ
Ǥ¿R¼S»w¹©Æ ·J¼»Ár¼&ÄÂÂé7¹¤ÂQ¼SÃRÂSÃ¹¤·&½©Æ È¿É Á¹¤Â-ÁDÀSÁr¼SÃR½wÀSÁrìÆ ¼SÒDÈjÂ»QÀSÁr¼7Æ ½ÈÖÄÂw¹¸$ÂÂQ¼-¹wÀSÂp¾ ÂSÁ7ÃRÂQ¾[Ár¼SÃp¹wÀSÂ-¸¾IÆ ¹ÊÂQ¾[·7Çj¹wÀSÂ
¾ ÂSÒRÆ ½¤¹¤ÂQ¾%Ì¹wÀR¿S½6·7êmÂQ¾]Æ ¼SÒÁ½Ê·É ¿¹©Æ ·l¼AÇI·¾\¹wÀSÂÁ¹¤·lÈAÆ »¾tÂÒÆ ½¤¹¤ÂQ¾\»SÁ7½¤Âj¸>Æ ¹wÀÝlÞ#æ¾ ÂÁ7ÃRÂR¾%Ì¸AÀ7Æ »RÀ-¿½ÊÂ½6·l¼É ËómÙsô°õÄÆ ¼SÁR¾ Ë
¾ ÂSÒRÆ ½¤¹¤ÂQ¾ ½SÐX×jÀSÂÉ ·S¸MÂQ¾6Ä·l¿R¼SÃÇ3·R¾/½¿S»QÀÁ»S·J¼S½¤¹w¾¿S»¹©Æ ·J¼ÓÆ ½Ù*ôÖö5Ð
÷øùÔù
â$ú%ûlæSÜQàsüAý3þlß7ß7ã ÿÜþ\à¤ã©ÝlÞ




ü

ù
â$ú%ûlæSÜQàsüAý3þlß7ß7ã ÿÜþ\àGãÝlÞ
!#"
$
%
'&
(
æ
!)
läÝlá
*
,+.-
åOáþlßæ7ß
/
$½GËr¼S»QÀR¾t·J¼ËÌ
'"
½¤¹w¾]Æ ÄR¿¹¤ÂÃ
Ñ
·lÈÍR¿¹©Æ ¼Ò\Ì
%
Ár¿É ¹GÚ%¹¤·É ÂR¾ Ár¼S»ÂÌ
0&
ÁrÍRÀ
Ñ
·rÉ ·R¾IÆ ¼SÒlÌm¶zËrÍ7ÂR¾ »Q¿RÄÂRÌ
1
ÀSÁQ¾ ÂSÃ
32
ÂQÈj·¾ Ë
1
Ë7½¤¹¤ÂQÈj½SÌ
4
&ÁQÆ ¹GÚ
5%
ÂÂ
Ñ
·J¼S½¤¹w¾¿S»¹©Æ ·J¼S½
6
Ý\àæ

ö\Ð×jÀ7Æ ½¸M·¾ì¸MÁ7½ÍSÁQ¾ ¹©Æ ÁRÉ É Ë@½¿RÍRÍ·R¾ ¹¤ÂÃÕÄË-¹wÀSÂ
7$
189
ò × ò3ò
;:
OÁ7½Æ »
9
Â½ÊÂÁR¾ »QÀ
<
$»w¹©Æ ·J¼S½
8
¾ ·QÒJ¾tÁrÈ°·Ç6¹wÀSÂ
7$
Ñ
¿R¼SÃRÂQ¾[»·l¼¹w¾ Á7»¹¼S·\Ð
3=0
&ÛÍ7¾ ·Å%Â»¹
>#?
Ñ
@
2
ò3ò èÐO×ÀSÂëO¾ ½¤¹ÓÁr¿¹wÀS·¾6¸MÁ7½ÁRÉ ½Ê·*ÍSÁQ¾ ¹©Æ ÁRÉ É Ëp½¿RÍRÍ7·¾ ¹ÊÂÃ*ÄËsÁ
BACD%'%
Ñ
%
ÂÉ É ·S¸[½À7Æ ÍÐÓ×jÀSÂ½ÊÂ»·l¼SÃÁr¿¹wÀS·R¾z¸MÁ7½ÁRÉ ½Ê·ÕÍSÁQ¾ ¹Æ ÁRÉ É Ë½¿RÍQÍ·¾ ¹¤ÂSÃ&ÄË
EAF4
@
¹wÀR¾ ·l¿SÒJÀ
7A%
8
¾t·ÅÂ»w¹
##?""
GA
:¿R¼SÃRÂQ¾
»·l¼¹w¾ Á7»¹8¼R¿RÈÄÂQ¾
HA/%I
Ú
KJ=
6
Ý\àæ

jõ/ÐX×jÀ7Æ ½jÍSÁrÍÂQ¾l¸>Æ É ÉQÁrÍRÍÂÁR¾\Æ ¼A¹wÀSÂ
8
¾ ·»SÂÂÃrÆ ¼SÒ½$·ÇO¹wÀSÂ
L
màGå
NM
7Þ6àæ7áQÞ[þ\à¤ã©ÝlÞ#þ\ý
ù
)'O7P
zÝ\ß7ãGâ
FO
'ÝlÞ
ø
þ\àGå/ç
æ
!O
þ\à¤ã©Üþ\ý
#Q
8ÝlâzÞ
/*
mþ\à¤ã©ÝlÞ$ßsÝ
R
DüÓÝ
'OSP
$âXàæ7á
ù
ÜQãæ7Þ#Ü7æÛ
ø
Q
ü
ù
.T
0U
AèwÐ
VWYXZ>[>\]_^_`_a[>bc]<Z
degfhih<jlk;mnpoqkFjEr0k;nsnutevcr'fxwvik;eyviegf r0k;er0tmmz'ew{o|owz'n}w~zumk;hiz'nk;j7o~fFmvie fwfzw3zz'e
nuthwvihizYmkr0zoozountowzjf;r0zfxwok;nszphiz;z'h~zYwmfH/vwvikHefhqf|wko~fmzfwffnsk;e
mkr0zoo!zo_~v5r~z'vw~z'm<mzf;k;mBmvwzIw~z'nvcowkBmzHtvimzSw~fw<fqBmvwzS~f;zzr0hito!vi;z7f;r'r0zoo_wkw~z
fxw0f/w~DtonfDviesk;eh|r0kHer0tmmz'ew,mzfH/viepkoovihizG¡3~zumzHtvimz'nsz'ewBw~fxw¡o!k;nszuf;r0wvikHeo

R~ {tIrJ77£ R
¢
~fz'evie£fezr0h¤tovi;zNnpfFeez'mvinshivizoSqfviwvieu|o!k;nszmkrzoo3jlk;mfekFw~z'm¥,kx3z;z'mv¤efe
f;o|/er~mk;ek;toLo|#owz'nyHB~z'mz,okHnzBmkr0zoo!k;monf|Yzqvie~z'mz'ewh|{jfHowz'mw~feskFw~z'mo;w~zNfkx;z
fmkf;r~¦k;thc§o!hikx¨fjf;owYmkr0zoou/kewk£w~zo!z'z©kFjBfgohikxªk;ezF£¥Nkz';z'mIf£efxwtmfh
mkHz'm!w|«wk©mzHtvimz£jlmk;n¬fev¤nhiznz'eDwfxwvik;e®kFjuf.o~fmzfxw0f§k;¯!zrwvie°fe°f;o|/er~mk;ek;to
r0k;ertmmz'ewYo|owz'n±vcowk£;tfFmfewz'zw~fwufe|§mkr0zoorfe.r0k;nshizwz fe|²fHr'r0zoowkw~zkH/¯!zr0w
vie§f³#evwzueDtnuzmNkFj3owz'o_mz'Dfm/hizook;jw~zYz/zr0twvikHe¦o!z'zoNkFjSw~zkFw~zmNmkr0zoozop´Dtr~
fevinshiz'nsz'ew0fxwvik;e vcoqr'fFhihiz¦µS¶·5¸¹»º0¼½½03¾©fvw¿jlmzzo!~fmzyfwfYk;¯!zrw0o3ekFwBk;eh|~zhiview0fDvie
f;/;few0f;zskFjqw~zvie~zmz'ewYfmfhih¤z'hivco!nÀvieÁr0k;er0tmmzewso|owz'noEtwpfh5okg;tfmfewz'zpmzovihiv¤z'er|
wk ~fFhwv¤esjfvihitmzo0>ov¤er0zsfmkr0zooBw~fxwr0mf;o!~zoB~vihizufHr'r0zoov¤e w~zYk;¯!zrw{r'feekFw,hikrw~z
mkH;mzookFjLfe|kFw~z'mmkr0zooviewzeDv¤e{wkf;r'r0zoow~z{ofFnzkH/¯!zrw
Â
o!~fmzÁFfmvcfh¤z w~fxwo!tk;m!w0ork;er0tmmz'ewmzf;fFe.Bmvwzk;z'mfwvikHeou|f§eDtnuz'm kFj
mkr0zoo!zo<viefqfFvw¿jlmz'zSnpfFeez'm_vco<fFhcokNr'fFhihizfµ7¶·5¸¹»º0¼½½3ÃÄ/¶¼½Å¼½ÆF·cÃ¸½¼HÇHjlmk;nÈekx©k;e3zf;/k;w
w~zur0k;eD;zewvikHeswkr'fh¤h>vw{¼½ÆF·cÃ¸½¼7ÉBz';v5owz'mor'feyz{r0hcfHoo!v³#zfHr'r0k;m/vieuwkYw~zowmz'eFw~k;j<w~z
r0k;eo!vcowz'er|g;tfmfewz'zoBw~z|¦mkDvc/zuviegw~zmzozer0zpkFjrk;er0tmmz'ew{kHz'mfxwvik;eos3~mz'z/vieo
kFjrk;eov5owz'er|;tfFmfewz'zo>efnsz'h|²Ã¶!º½Ê½0ÃÃxq¼½ÆËDÌi¶¼·5¸Ífe®¶¸ÎÏ·ÑÐ·5¸Í_~fHzYz'z'e©/z³#ez|
Òfnsk;mwLv¤e£»Ó'Ôfeu~f;z3zr0k;nszqk;j#jltefnsz'ew0fhvinskHm!w0fer0z3vieuw~zqowt#D|Yk;jo~fFmzYmz';vcowz'mo
Â
r'rk;m/v¤epwk w~koz/z³#evwvik;eoÕ¡ÖÑv5×
Â
mz;vcowz'm,v5o,r'fhih¤z§Ã¶!º½BvjviwN;tfmfewz'zoqk;eh|w~fxwfpmzfH
k;z'mfxwvik;euB~vcr~/kDzoIekFw~fFz'er0kHer0tmmz'ewh|{Bvw~fe|uBmvwzfhf|o<mzwtmeoIw~znkDow7mzr0z'ew
FfFhitzBmvwwze£wk w~zYmz';v5owz'm'Y3~zsofxjlz'ezooBmk;z'mw|£z'eo!tmzoNek;w~viesjlkHmBw~zFfh¤tzmz'wtmez
| fmzf;s~vcr~ kxHz'mh5foLvw~smvwzo0ÇDw~vcoFfFhitzqnf|pzHtfFhfFe|koovihizB;fhitzqk;j>w~z,mz';vcowz'm
ÖÑviv5×
Â
mz';vcowz'mvcor'fhihiz.¼½ÆFËDÌ¶F¼{vj!_zov5/zo{z'eotmvieofjlz'ezooviw{;tfmfewz'zo,w~#fwufymzf;¦w~fw
~fz'eoYrk;er0tmmz'ewh|²vw~®k;ezk;msnkHmzmvwzoYmzwtmeofÙØmzf;o!k;efhizÚyFfh¤tzFIB~v5r~©nsvi;~Dw
zzvw~zm,w~zYk;hc£k;ezYkHmNkHezYkFjSw~zFfh¤tzoqmvwwz'e¦|£k;ezkFj7w~zkx;zmhcfFvieYBmvwzoÖlviv¤v5×
Â
mz';vcowz'mv5or'fhihiz.¶F¸ÛÎFÏY·ÑÐNvj!_zo!vc/zoNz'eo!tmvieofxjlz'ezoo<vw;tfmfewz'zoBw~fxwfhw~k;t;~£mzf;fe
mvwzk;z'mfwvikHeoEnpf| k;z'mhcfw~z'mz{zvcow0oqfYf| wk²Øo~mvieÚYzf;r~ykHezkFjLw~z'nv¤efefxwk;nsvcr
;mfvieykFjLwvinsz{~vcr~yhivizovievwoqmzozr0wviHzwvinzuDtmfxwvik;e/viefsqf|w~fxwqw~z{;fhitz¡mz'wtmezy|
zf;r~®mzfHzHtfh5o{w~z;fhitzsBmvwwze©|²w~znskowmzr0z'ewYBmviwzyf;rr0k;m/v¤ewkw~zyo!zHtz'er0zykFj
Øo!~mteÚ{k;z'mfxwvik;eoIvie w~z,wvinsz¡fxvco0LÜr0z'w3jlmk;nªw~z¡fkx;zNr0h5f;oo!v³r'fwvikHe>;mz';v5owz'mo3fmz¡fhco!k
/vcowvieHtvco~zD|w~zNeDtnuz'mkFj<mzf;/z'moEw~fxwnpf|r0k;ertmmz'ewhi|mzfHw~z¡mz';vcowz'mDw~zNeDtnuz'm
kFj3mvwzmo,w~fxw{nf|r0k;er0tmmz'eDwh|mviwzsw~zmz';v5owz'm'f;o,z'hihSfHoNw~zpeDtnuzmkFj3;fhitzo,vwr'fe
w0f;zqkHe
Â
h¤hw~zo!z,/v¤nze#o!vik;eoLvinshi|sf¡~viz'mfmr~|Yk;epmz';v5owz'movw~ ovieHhiz¿Ûmzf;/z'm;o!vie;hiz¿Bmvwz'm
kDk;hizfe®ofxjlzmz';vcowz'mpvie®w~zhikx3zowhiz'Hz'hfe.nuthwvimzf;/z'mnuthwvimvwz'mnuthwviFfFhitz²fxwk;nsvcr
FfFmvcfFhizoview~z~viH~zowhiz';zh
Ý¡zoviwzw~zjf;rw{w~fxw¡w~zmzp~f;o,z'z'e.f;mzfxw/zfhIk;j3mzozfmr~§kHe²/z';zhik;vie vinshiz'nsz'ewf¿
wvik;eoIkFjowmk;eHz'm7mz;vcowz'mok;twEk;j3zfF;z'mSk;ezo¡»ÓxÞD/ß/ÓàDÓxÞÓÔ/ÓxHÓáDÓâÓãDÓßHÞFàDÞ/ÓÞ;Þ
ÞFäDÞxÔÞHwksw~z{zow,kFjIk;tmqDekxhiz/HzFr0kHnfmfxwvi;z'hi|pjlzåmzothiwoq~f;z{fzfFmzowtD|/vie
w~zYr0kowoqviertmmzy|o!t#r~£vinshiz'nsz'ew0fxwvik;eoN ä#Ô<Ó;ÓÞ/Ó0,æE~fFt#/~/tmv<fe¾z'hcr~vie. Ô;Lotn¿
nfmviç'zw~zvcoo!tzo,vieD;k;h¤;zview~zYowtD|£kFjIw~z{viewmv¤e#o!vcrr0k;nshiz/vw|kFjmz';vcowzm¡r0k;eowmtrwv¤k;eo0Õ
´Dvier0zpmz';v5owz'mo{nf|./vèz'm{v¤e©o!z';zmfh3/v¤nze#o!vik;eo<w~zv¤e~z'mz'eDwYr0k;nshizvw|gkFjBr0k;eowmtrwv¤egf
owmk;e£mz';vcowz'mk;tw{kFjzfHz'mk;ezovco{fmk;hiznévw~§nuthwvihizr'f;o!zowkz zfnsviez
Â
ouf
o!zr0k;egowz'w~z|jlkr0toqk;ew3kpfFmfnszwz'moBkFjvieDwz'mzowÕw~zeDtnuz'm,k;jFfFhitzoBfew~zr0k;eo!vco¿
wz'er|gHtfmfFewzzoBk;j7w~zsmz;vcowz'mp~Dto0w~z'|gmk;kozYw~zsmkHhiz'nékFjowtD|/vie w~zsvie~z'mz'eDw
r0kowpkFj¡r0k;eowmtrwv¤enuthwvimzf;/z'm'Eov¤eHhiz¿mvwz'm'7êH¿ÛFfh¤tz©ofjlzFEmz';thcfFmYfFe.fwk;nsvcrmz';vcowzmo
k;tw7kFj>nuthwvimzf;/z'mDo!vie;hiz¿Bmvwz'mÞx¿ÛFfhitz Ölv¤efm!|#×IofxjÑzFHmz';thcfmEfepfwkHnvcrmz;vcowz'mo0Dmzozr¿

«J~
RJª5
ì
/©¡J£ 7[xlR7w%7£ R
í
wvi;z'h|_î#k;hih¤kv¤eBw~z'v¤m3fmzDvcfxwvik;ezBmzjlz'm7wkotr~rk;eowmtrwvik;eoSf;oEê¹ï¶FÌ»Ë½Åqº0¼ÎÏñð¹ïx¶ÌKË½Å
Ã¶!º½ò#¼½ÆËDÌi¶¼Ûò¶¸ÎÏY·ÑÐmz;vcowz'mr0k;eowmtrwvik;eoÁ~zr0kowpnzf;otmzopr0kHeovc/z'mz«fFmzw~zeDtnuz'm
kFj3otmz';v5owz'mo,tozgview~zmz'Hvcowz'm{r0k;eowmtrwvikHegfe£w~zYeDtnuz'm,kFjo!tmzf;oNfFeo!tmvwzo
z'm!jÑk;mnsz¦/tmviezfHr~¦mzf;gkHm,BmvwzYkHz'mfxwvik;egkFj7w~zmz';v5owz'mo_mzo!zrwv¤;z'h|Ydegw~fxw{fFzm
w~zyfmwvcr0th5fmurhcf;oo!zoYzfnsviez©fmz w~ko!zkFj¡ê;¿Û;fhitzjlmk;nóÞ¿ÛFfFhitz²ofjlzyfe©mz'Hthcfmr0k;e¿
owmtrwvikHeo0îLvimowuw~z|¦mk;zw~fw{jlk;m¡w~z r'f;o!zpvie§~vcr~¦w~zsmvwz'mz'm!jlkHmno¡kHeh|k;ezsBmvwz
o!tkHz'mfxwvik;e;êEôyÓo!tmz';v5owz'mofmzezrzoofm|H
Â
oSfNo!zr0kHe#sowz'pw~z|Y;v¤;zfFesfhiHk;mviw~nÙB~vcr~
vinshiz'nsz'ew0ofpofjlzmz'Hvcowz'mto!viepfHoqfez'erk/vieujlterwvik;eyfmfvieDkÙrk;hik;mvieujlterwvik;ek;j<w~z
Öê{ôÁÓx×Û¿/vinsz'eov¤k;efh~|/z'mr0tz¡vw~êr0kHhik;mo0fj5wz'm3mkDview~fwo!tr~£frk;hik;mvieuz/vcowovjLfe
k;eh|§vij,ê§vcouf£kx3zm{kFj¡ÞDõfFewYfe²Ffe²Ò_z'zt3z'eÈ ãvie/z'z'e/z'ewh|¦~f;z o!~kBe²w~zofnsz
mzothwjlk;mw~zmfvieDkx¨r0k;hikHmviekFj,f~|zmr0tzfFew~z|.fhiviz§vwwkw~z ³#hizy/vcowmvitwvik;e
mkHhiz'ny
Â
¼¶·5ÊöÎµÐÎFÌÎ¼0·5ÊÆ{kFjSf~|/z'mr0tz¡vw~gêrk;hik;mo3vcofr0kHhik;mvieso!tr~yw~fwzf;r~£ek/z
kFj3w~zp~D|/zmr0tzp~f;ofez'vi;~Dk;mNviw~zf;r~²kHezskFjw~zêpôÙÓ r0k;h¤k;moNk;w~z'm{w~fevw0o¡kxede
f otozHtz'ew,fz'm äx>æE~fFt/~Dtmvõkofpfe¾²z'hcr~Hvi;zf r0k;eowmt#r0wvikHeyk;jSf êH¿ÛFfhitzmz';t¿
hcfm0÷Ffwk;nsvcrmz'Hvcowz'mk;twqkFj<v¤e#fFm!|pmz;thcfm0÷Ffxwk;nsvcr3kHezo3vie B~vcr~zfHr~ mvwzNz'mjlk;mnpoEk;ehi|k;ez
o!tDmviwzuwkk;ezskFj7w~z'n ~vcoNfFhi;k;mvw~n}mzHtvimzo
î
ù
otmz';vcowz'mo0 dÛw{nutow{zk;v¤ewzkHtw
w~#fwEkFw~ w~zo!z,w3kfFhi;k;mvw~noIvie§ Ô;_fepvie äfmzNjlk;mSw~zNnuthwv¿Ûmzf;/z'mEr'f;o!z,B~vihizw~z|~f;z
w~zmviwz'mz'mjlk;mnúÎÊÌ»Í ÎFÊ½qo!tk;z'mfwvikHez'mqmviwzF/w~zk;ez{otBmviwzF
depw~vcoIfz'mSzBo~kxû~kxüf{mfvieDkûr0kHhik;mvieBýû~vcr~~#fHoz'z'e t#o!zpviepk;m/z'mSwkur0kHe#owmtrw
w~z3zfHzowIk;jw~zBê;¿Û;fhitzjlmk;nþÞ¿Û;fhitzmz'Hvcowz'mo0;efnsz'h|w~zofjlzEk;ezýór'fesz3zDwze#/zwk
o!vinuthcfxwz{fYkz'm!jlth~fFeo~fDv¤enszr~fevco!nÀÖo!z'zu<mk;ns²GÞ/Ó0>´DvimfDvcoDõvimkHtovcoqo!vifHoÿÓäx
feÝN3k;mzwfFhu á/â5×0

¡o!viesw~vcoo!vinuthcfxwvik;e3zYr'fe£Hzw¡f êH¿ÛFfh¤tzjlmk;néÞ¿ÛFfFhitzfxwk;nsvcr
r0k;eowmtrwvik;ey~z'mzw~zmvwz'mBzm!jlk;mnok;ez{mviwzYotk;z'mfxwv¤k;ezm,k;z'mfxwv¤k;efFe#yw~z'mzfmz
ekukxHz'mhcfFviemzfHo0

,tmqr0k;eowmtrwvikHeto!zoEä


ø

ô¦Þuo!tmz'Hvcowz'moBÖl~z'eyêpvcoEfukz'm7kFj
Þw~vcovcoBäHêuô.ÞH×B~vihizNw~z{h¤kz'mqk;tejlkHmBo!tr~gf r0k;eowmtrwv¤k;evco,êôÁÓFB<kw~zzowNk;jLkHtm
DekBhiz/;zw~vcoEvcoEw~z,³#mowBhiviezfFmEk;ez'¿ÑBmvwz¡r0kHeowmtrwvik;e
W

®]_^

y]

_b
[
!
\
#"
]_Z

'[\`a[bc]<Z
Â
ÃÄ¶¼½Å¼½ÆF·cÃ¸½0¼vcoLfepfowmfHrwSfxwfBk;¯!zrwSo~fFmzu|Yf,eDtnuzmk;jr0kHer0tmmz'ewImkrzoo!zo<B~vcr~
nf|²z'vw~zmYmzf;©k;muBmvwzvw
Â
ÐÎÊÃ¸¼ËÐ'¸·ÑÎÊkFj,fmz';v5owz'msr0kHnmvcozouk;jv5×uf¦fwfgowmtr0wtmz
r0k;eo!vcowvieykFj3nsz'nsk;m|²r0z'hih5or'fhih¤z.ÃËö'¼½ÑÆF·cÃ¸½0¼Ã7viv5סfozwYk;j3vievwvcfhFfFhitzo,jlk;m¡w~z otmz';vcowzmo
feYviviv5×fo!zw7kFjmzf;pfeumvwzmkr0z/tmzoL~vcr~YmkDvc/z7w~zqnszfeoLwk¡w~zmkr0zoo!zoIwkfHr'r0zoo
w~zNmz'Hvcowz'mÇDw~zo!z¡mkr0zDtmzofmz¡fh5okumz'jlz'mmzfHo
%$
¼!Î¸ÎÐÎÌ»¾ü~z'eyfumkr0zooEez'zo7wkuzm!jlk;mn
z'vw~z'mufmzfH§k;mfmvwzpk;z'mfxwv¤k;e¦k;e§w~zpmz';vcowzmviw{nut#owv¤eD;k;Hzuw~zpmzo!zrwv¤;zmkr0z/tmzF
¾z,r'fhih/w~v5oLmkr0zooz'vw~z'mq¼½¶;ÅH½¼Sk;mBµI¼·5¸½¼Dmzozrwvi;zh|H<ÜEf;r~Î
&$
½¼¶¸·ÑÎÊg½
'
D½Ð'ËD¸·ÑÎÊ/kHmSo!~k;m!wh|
Î
&$
½0¼¶¸·ÑÎFÊ#vcofo!zHtz'ewvcfhzzr0twv¤k;ekFjLfYmkrz/tmz
)(
oqow0fxwznz'eDwoNÖÃ¸½
*$
#Ã!×0~vcr~ nf|zNz'viw~z'm
mzf;k;m7mviwzBo!tk;z'mfwvikHeok;esw~zNotmz';vcowz'mok;mEo!k;nszhikr'fhr0k;nstw0fxwv¤k;eo<kFjw~zmkr0z/tmzF
de²k;m/z'mwkgf;k;vcgr0kHe/jlto!vik;e¦zwz'z'e²k;z'mfxwv¤k;eoBkHe¦w~z r0k;eowmtrwz§mz';v5owz'mufFegk;z'mfxwvik;eo
k;ew~z{otmz';vcowzmoEtozv¤e w~z{r0k;eowmtrwvikHeHw~z¡wz'mn¨kHzmfxwvik;eo7vcoEtoz k;eh|jlk;m7w~z,jlkHmnsz'm
fegÃËöÎ
&$
½¼¶¸·ÑÎÊÃqvcoEto!zjlk;mEw~zhcfwwz'm'
Â
r0k;eowmtrwv¤k;e
,+
vcor'fhihizµS¶·5¸¹»º0¼½½7vijIfe| k;z'mfwvikHe
v¤hihr0kHnh¤zwzvie fN³#evwzqeDtnuz'mSkFj_owzo0IÉBk;t;~h|ozfFDview~zfvw¿Ñjlmz'zr0k;e/viwvikHemthizokHtw
teDk;te/zYto|qfviwvie¡fHoz'hihf;oEr0k;e/vwvik;efhHfvwvie_~zmzf;o!k;ejlk;mw~zjlk;mnsz'mv5oLkHDDvik;to
~vih¤z,w~z{hcfwwz'mq~k;h5oEzr'ftozkFw~z'm!Bvcozfsmkr0zoonsvi;~Dwqzz/zr0twvie fevie³#evwz¡eDtnz'mkFj
owz'o3qfviwviejlk;mfsr0k;e/viwvikHepwkzr0kHnzNwmtz|yfrmf;o!~zmkrzoo

References
More filters

Journal ArticleDOI
Maurice Herlihy1, Jeannette M. Wing1Institutions (1)
TL;DR: This paper defines linearizability, compares it to other correctness conditions, presents and demonstrates a method for proving the correctness of implementations, and shows how to reason about concurrent objects, given they are linearizable.
Abstract: A concurrent object is a data object shared by concurrent processes. Linearizability is a correctness condition for concurrent objects that exploits the semantics of abstract data types. It permits a high degree of concurrency, yet it permits programmers to specify and reason about concurrent objects using known techniques from the sequential domain. Linearizability provides the illusion that each operation applied by concurrent processes takes effect instantaneously at some point between its invocation and its response, implying that the meaning of a concurrent object's operations can be given by pre- and post-conditions. This paper defines linearizability, compares it to other correctness conditions, presents and demonstrates a method for proving the correctness of implementations, and shows how to reason about concurrent objects, given they are linearizable.

3,191 citations


Journal ArticleDOI
TL;DR: In Part II, the formalism is used to specify several classes of interprocess communication mechanisms and to prove the correctness of algorithms for implementing them.
Abstract: A formalism for specifying and reasoning about concurrent systems is described. Unlike more conventional formalisms, it is not based upon atomic actions. A definition of what it means for one system to implement a higher-level system is given and justified. In Part II, the formalism is used to specify several classes of interprocess communication mechanisms and to prove the correctness of algorithms for implementing them.

848 citations


Journal ArticleDOI
TL;DR: The problem of the mutual exclusion of several independent processes from simultaneous access to a “critical section” is discussed for the case where there are two distinct classes of processes known as “readers” and “writers.”
Abstract: The problem of the mutual exclusion of several independent processes from simultaneous access to a “critical section” is discussed for the case where there are two distinct classes of processes known as “readers” and “writers.” The “readers” may share the section with each other, but the “writers” must have exclusive access. Two solutions are presented: one for the case where we wish minimum delay for the readers; the other for the case where we wish writing to take place as early as possible.

541 citations


Proceedings ArticleDOI
27 Oct 1986
TL;DR: This paper describes two ways to construct multivalued atomic n-writer n-reader registers and applies the method to prove atomicity of the two implementations for atomic multiwriter multireader registers.
Abstract: The contribution of this paper is two-fold. First, we describe two ways to construct multivalued atomic n-writer n-reader registers. The first solution uses atomic 1-writer 1-reader registers and unbounded tags. the other solution uses atomic 1-writer n-reader registers and bounded tags. The second part of the paper develops a general methodology to prove atomicity, by identifying a set of criteria which guaranty an effective construction for the required atomic mapping. We apply the method to prove atomicity of the two implementations for atomic multiwriter multireader registers.

203 citations


Journal ArticleDOI
Gary L. Peterson1Institutions (1)
TL;DR: The problem of asynchronous processes reading shared data while the data are being modified by another process is considered and the number of copies used by all algorithms is shown to be the best possible.
Abstract: The problem of asynchronous processes reading shared data while the data are being modified by another process is considered. This problem differs from the standard readers/writers problem in that concurrent reading while writing is allowed. The model used here strongly limits the use and size of the shared variables. If multiple copies of the shared data are allowed, then simple, efficient solutions are found. In general, solutions which are more time efficient because they avoid waiting are seen to require more copies of the shared data. The number of copies used by all algorithms is shown to be the best possible. The main solution demonstrates that any system of processes which uses large distributed variables can be strongly simulated by a system which uses only binary distributed variables. 9 references.

200 citations


Network Information
Related Papers (5)