NAKAMURA Minoru $B$NF|5-(B (2006$BG/(B12$B7n(B)

$B@h7n$NF|5-(B(2006$BG/(B11$B7n(B) $B:#7n$NF|5-(B(2006$BG/(B12$B7n(B)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2020 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2021 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2022 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2023 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2024 | 1 | 2 | 3 | 4
$B%[!<%`%Z!<%8(B | $B:G?7$N%3%a%s%H(B50
$B%$%s%G%C%/%9(B: $B?)$YJb$-(B | Java | $B%W%m%0%i%`(B | UNIX | $B2hA|(B
$B:G?7$NF|5-$X$N%j%s%/(B | $B$3$NF|5-%Z!<%8$r$O$F$J% $B$3$NF|5-%Z!<%8$r$O$F$J%V%C%/%^!<%/$KDI2C(B
$B$O$F$J(B $B%@%$%"%j!<(B $B%"%s%F%J(B $B%V%C%/%^!<%/(B $B%V%m%0(B
Twitter | mixi | Facebook | slideshare | github | Qiita



12/31 ($BF|(B)

[Work] $B;E;vG<$a(B

$B;E;v$,K;$7$$$N$G:#F|$b=P6P!#(B
23$B;~$"$,$j$,K\G/$N;E;vG<$a$G$7$?!#(B

$BG/1[$7%=%P(B
$BIY;N8+0C$,:#F|$@$1(B1$B;~$^$G$d$C$F$$$?(B

12/29 ($B6b(B)

$BE_$NA49qBg2q(B

$B:#F|$O$*5Y$_!#(B $B@vBu$HIt20$NA]=|$,8aA0Cf$K:Q$s$@$N$G!"FC$KL\E*$O$J$$$,E_$NA49qBg2q$X9T$C$F$_$k!#(B $BA49qBg2q<+BN(B2003$BG/$N2F(B$B0JMh$G$9$J!#(B $B9T$-$O?7661X$+$i!V$f$j$+$b$a!W$K$N$C$F9q:]E8<(>l@5Lg1X$G2<

$B4k6H%V!<%9$G%N%C%]$5$s$H%4%sB@$/$s$N%V!<%9$,=PE9$5$l$F$$$?!#(B $B<~0O$N%"%l%2$N$*E9$H$NMn:9$,(B (T_T

$B%S%C%0%5%$%H(B $B%S%C%0%5%$%H(B $B%S%C%0%5%$%H(B
$B%S%C%0%5%$%H(B
$B!V$3$N$O$7EO$k$Y$+$i$:!W$rO"A[$5$;$k(B

$B5"$j$O!V$j$s$+$$@~!W$G9q:]E8<(>l1X"*?7LZ>l1X!"M-3ZD.@~7PM3$G5"4T!#(B

$B%i!&%Y%k%G!wM-3ZD.E9(B ($B$0$k$J$S(B)

$BM-3ZD.$N%$%?HS20%i!&%Y%k%G$G$4HS$r?)$Y$F5"$k!#(B

$B%i!&%Y%k%G(B
$B%U%s%.$N%9%2%C%F%#!<(B

12/28 ($BLZ(B)

[MyWeb] $B%M!<%`%l%8%9%H%i$+$i$N%a!<%k(B

$BL{2wF2$+$i$N%I%a%$%sL>$N0\F0$O%9%`!<%:$K9T$C$F$$$J$$$h$&$@(B(8/15$B$NF|5-(B$B!"(B11/1$B$NF|5-(B)$B!#(B $B%R%e!<%a%$%"$+$i(B$B!VM-8B2q$rEPO?$5$l$F$$$?3'MM$X!W(B$B$HBj$9$k%a!<%k$,FO$1$i$l$?!#(B

$BJ}!9$KLBOG$r$+$1$J$,$iL{2wF2$OLkF($2>uBV$N$h$&$@!#(B

$B$5$F!"$I$&$7$h$&!#(B

[Food] $B?e@t1`!w;0Eg(B

$B5W$7$V$j$K>BDE=PD%$@$C$?$N$G!"$&$J$.$r?)$7$F5"$k!#(B
$B$*E9$O(B$B85AD$&$J$h$7(B$B!"(B$BK\D.$&$J$h$7(B$B$KB3$-?e@t1`!#(B

$B?e@t1`(B:$B4GHD(B
$B4GHD(B
$B?e@t1`(B:$B>e$&$J=E(B
$B>e$&$J=E(B

$BG/Kv$N$"$o$?$@$7$$;~4|$K9T$C$?$N$,ITL#$+$C$?$N$+!"$4HS$,Nd$a$F$$$F$A$g$C$H$7$g$s$\$j$JL#$G$7$?!#(B


12/27 ($B?e(B)

$B3P$(=q$-(B

$B2HDB$rJ'$C$?!#(B


12/25 ($B7n(B)

$B%N%m%&%#%k%9$K$d$i$l$k(B

$B@h=5$N6bMKF|$0$i$$$+$iD4;R$,0-$+$C$?$N$@$,!"8+;v$K%N%m%&%#%k%9$K$d$i$l$?$h$&$@!#(B

$B2?$b?)$Y$J$$$HJ?5$$J$N$@$,!"0_$K$b$N$,F~$k$HSREG$r:E$7$F$7$^$&!#(B

$B:#F|$OK\G/EY:G=i$NM-5k5Y2K$r>CHq$7$F$*5Y$_$r$H$k$3$H$K$9$k!#(B


12/23 ($BEZ(B)

$B>pJs5;8&$N%/%j%9%^%9!&%Q!<%F%#(B

$B>pJs5;8&$N%/%j%9%^%9!&%Q!<%F%#!<$K$*$h$P$l$5$;$F$b$i$&(B(2004/12/25)


$B%1!<%-$,$$$C$Q$$(B
$B7J5$$,$$$$(B

$B%-%k%U%'%\%s$N%^%s%4!<%W%j%s$N%?%k%H(B

$B@Z$jJ,$1$?$b$N(B

$B<:G0(B

$B%b%s%V%i%s%1!<%-(B

$Bgu$N%7%g!<%H%1!<%-(B

$B:#F|8+$?%i%/%,%-(B

$BH>B"Lg@~$N;01[A01X$G8+$?%i%/%,%-!#(B $BAjEv]5J0$,N/$^$C$F$$$=$&$@!#(B

$B1G2h$N%]%9%?!<(B
$B!V$"$k$$$ON"@Z$j$H$$$&L>$N8$!W(B
$B%i%/%,%-(B
$B!V%+%C%30-$$(B!$B%P%+$8$c$J$$$+(B!
$B$J$N$KFsKgL\$V$C$F%"%[!W(B
$B$@$=$&$G$9(B

12/21 ($BLZ(B)

[Food] $B=\:LNAM}!V$=$i!W!w?74];R(B

$BF14|F~>86$5$s!";3B<$5$s!"8eF#$5$s!"BgFb$5$s(B(!)$B!";d(B)$B$N(B5$B?M$GK:G/2q(B $B7s(B $BAwJL2q(B $B7s(B $BI|5"=K$$(B $B7s(B $B7k:'=K$$!#(B


12/20 ($B?e(B)

Subversion $B$G(B svn:ignore $B$r%j%]%8%H%j$KE,MQ$G$-$J$$$N$+$7$i!)(B

Subversion $B%5!<%P$rN)$F$F$$$k$N$@$,!"FCDj$N%U%!%$%k$rL5;k$9$k$h$&$K%j%]%8%H%j$K@_Dj$r2C$($kJ}K!$,J,$+$i$J$/$F$b:$$C$F$$$k!#(B

Subversion $B$O%G%U%)%k%H$G$O(B *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store $B$N%U%!%$%k$rL5;k$9$k$,!"%j%]%8%H%j$K$h$C$F(B *.so *.ko $B$H$+$bL5;k%Q%?!<%s$K2C$($?$$!#(B

~/.subversion/config $B$NCf$K(B global-ignore $B$rIU$1$k$H!"FCDj$N%U%!%$%k$rL5;k$9$k$h$&$K$J$k!#(B

[miscellany]
global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.so *.ko .?* *.s *.lds *.cpio *.cpio.gz *.rej .*.rej System.map

$B$?$@$7(B ~/.subversion/config $B$O%/%i%$%"%s%HB&$N@_Dj$J$N$G!">!$5$l$F$7$^$&?4G[$,$"$k!#(B

$B$b$&0l$D$NJ}K!$O!"%G%#%l%/%H%j$K(B svn:ignore $B$H$7$FFCDj%Q%?!<%s%U%!%$%kL>$NL5;k@_Dj$r$D$1$k$3$H$@!#(B $B$7$+$7$3$NJ}K!$@$H?7$7$/:n@.$7$?%G%#%l%/%H%j$K<+F0E*$K(B svn:ignore $B$,IU$+$J$$$N$G!"?7$7$$%G%#%l%/%H%j$N2<$K$OL5;k$5$;$?$$%Q%?!<%s$N%U%!%$%k$r:n$k$H(B svn status $B$J$I$GG'<1$5$l$F$7$^$&!#(B

$B$5$F!"$&$^$$2r7hJ}K!$O$J$$$b$N$+(I%%%(B

$B%3%a%s%H$r=q$-9~$`(B
[1] [sakaia] 2006-12-23 23:23:28
Subversion$B$H4X78$J$$$G$9$1$I!"(B
Xen$B$G;H$C$F$$$k(BMercurial$B$OM%=($G$9$h!#(B
$BJ#?t%"!<%-(B(x86, IA64, PPC)$B$G$b!"$&$^$/4IM}$,=PMh$F$$$k$h$&$G$9!#(B
Xen$B$O!"(B3$B%v7n$G!"%Q%C%A$,A4%"!<%-$G(B1500$B6a$/(B(1$BF|J?6Q(B15$B7o0J>e(B)$B$"$k$N$K!"4IM}=PMh$F$$$k$N$O8+$F$S$C$/$j$G$9!#(B

12/19 ($B2P(B)

$B%/%l%8%C%H%+!<%I$N;YJ'$rB-$7$?$j0z$$$?$j(B

10$B7nCf=\$N%I%$%D=PD%;~$N%[%F%k$N=IGqHq$,2aJ'$$>uBV$K$J$C$F$$$?$N$@$,(I%%%(B

  1. 10$B7nKv$K;v>p$r@bL@$9$k%a!<%k$rAw$C$F!"%/%l%8%C%H%+!<%I$KJ'$$La$7$F$b$i$&$h$&$K0MMj$9$k!#(B
  2. $B$7$+$7(B1$B=54V0J>eBT$C$F$bJV;v$N%a!<%k$,JV$C$F$3$J$$!#(B $B:FEYJL7PO)$G:EB%$N%a!<%k$r=P$7$?$N$,(B 11/5$B!#(B
  3. $B$=$N;~$K$O%[%F%k$O(B 11/2 $B$K%/%l%8%C%H%+!<%I$X$NJ'$$La$7$F$r$7$F$$$F$/$l$?$i$7$/!"(B $B9T$-0c$$$K$J$C$F$7$^$C$?!#(B
  4. $B:EB%%a!<%k$KH?1~$7$F!"%[%F%k$O(B2$BEYJ'$$La$7$r4:9T!#(B $B;d$O$[$H$s$I%?%@$GGq$^$C$?$3$H$K$J$C$?(B(11/7)$B!#(B
  5. (I%%%$B$,!"$=$&$OLd20$O27$5$J$$$h$&$G!"(B $BJ'$$La$7$N%-%c%s%;%k$r$+$1$F$-$?$N$,(B 11/8$B!#(B

$B7k6I%/%l%8%C%H%+!<%I$N;YJ'$$7n$r8Y$07A$K$J$C$F!"9T$C$F$b$$$J$$7n$KL/$J;YJ'$$5-O?$,;D$k$3$H$K(I%%%$BLuJ,$+$i$s!#(B

$B$4MxMQF|(B

Transaction Date
$B$4MxMQE9(B

Merchant Name
$B$4MxMQ6b3[(B

Transaction Amount
$B:#7n$N$*;YJ'$$6b3[(B

Payment Due
$BHw9M(B Note
$B8=CODL2_3[(B
$B
Local Amount
Finance Charge
$BDL2_N,>N(B

Local Currency
$B49;;%l!<%H!J1_!K(B

Conversion Rate
12$B7nJ,$N;YJ'$$(B
2006/10/22 HOLIDAY INN MUNICH CITY 208,144 208,144 1366.50 EUR 152.319
2006/11/ 2 HOLIDAY INN MUNICH CITY -100,579 -100,579 -682.00 EUR 147.477
2006/11/ 7 HOLIDAY INN MUNICH CITY -100,831 -100,831 -682.00 EUR 147.846
1$B7nJ,$N;YJ'$$(B
2006/11/ 8 HOLIDAY INN MUNICH CITY 100,579 100,579 682.00 EUR 147.477

12/17 ($BF|(B)

[CPU] VT-i $B$r;H$C$F$$$k>l9g$N%2%9%H(BOS$B$N@)Ls(B

Montecito (Itanium2) $B>e$G(B VT-i $B$r;H$C$F$$$k>l9g!"$D$^$j(B ia64 $BBP1~(B Xen $B$G%2%9%H(B OS $B$rF0$+$7$F$$$k>l9g$N!"%2%9%H(B CPU $BB&$N@)8B;v9`$NHwK:O?!#(B $B8:$C$?%S%C%HI}$N>pJs$O(B PAL Call (PAL_VM_SUMMARY) $B$G3NG'$G$-$k!#(B

  • $B2>A[%"%I%l%9$,(B 64 $B"*(B 63 $B%S%C%H$K!#(B IMPL_VA_MSB $B$,(B 60 $B%S%C%H$+$i(B 59 $B%S%C%H$K@)8B$5$l!"(B1$B%S%C%H8:$C$F$$$k!#(B
  • Region Identifier (RID) $B$,(B 24 $B"*(B 16 $B%S%C%H$K@)8B$5$l!"(B8 $B%S%C%H8:$C$F$$$k!#(B

$B2>A[%"%I%l%9$,(B 264 $B%P%$%HA4It;H$($k$H?.$8$F%W%m%0%i%_%s%0$7$F$$$?$+$i!"%a%b%j$NG[CV$r9M$(D>$9I,MW$,$"$k!#(B $B$`!A!#(B


12/15 ($B6b(B)

Binary2.0 $B%+%s%U%!%l%s%9(B2006 ($B$$$d$J%V%m%0(B)

$B?@J]D.$N(B IIJ $B2q5D<<$G3+:E$5$l$?(B B2C2006 $B$G!"!V%^%k%A%3%";~Be$NJBNs%W%m%0%i%_%s%0(B $B!A%m%C%/$H%a%b%j%*!<%@%j%s%0!A!W$H$$$&Bj$GH/I=$5$;$F$b$i$$$^$7$?!#(B $B$4Mh>lD:$$$?J}!"%9%H%j!<%_%s%0$r8fMw$K$J$C$?J}!"

$BH/I=<+BN$O(I%%%$B=`HwITB-$G$*J9$-6l$7$$$b$N$K$J$C$F$9$$$^$;$s!#(B Lock-free synchronization $B$K4X$7$F$O!":#8e(B $B@UG$$r;}$C$F%5!<%Y%$$r:n$k@Q$j$G$"$j$^$9(B($B;E;v>e$NI,MW$b$"$j$^$9$7(B)$B!#(B

$B$H$j$"$($:2<$KH/I=;qNA$rE=$C$F$*$-$^$9!#(B

[Food] $B8^BgN&(B ($B$0$k$J$S(B)

$B$J$s$H$J$/(B15,6$B?M$GBG$A>e$2!#(B $BM=Ls$J$7!&Bg?M?t!&6bMK$NLk$H$$$&$3$H$GE9$O8+$D$+$i$J$$$,!"?@J]D.$9$:$i$sDL$j$N!V8^BgN&!W$K2?$H$+F~$l$k!#(B

$B8^BgN&(B
$B%8%s%.%9%+%s!)(B
$B8^BgN&(B

$B:G4s1X$,0l=o$N(B gotom $B;a$H0l=o$K5"$k!#(B $B85=;5H$G?&$7$?OC$rJ9$/!#(B

P.S.

$B%+%s%U%!%l%s%9$N8e$K(B akr $B;a$H(B gotom $B;a$K!"(BIA-64/Linux $B$G$O(B sigprocmask $B$O%f!<%6%i%s%H$G


12/12 ($B2P(B)

[Java] BEA $B$N(B Bare Metal $B$,@=IJ2=(B

$BA0!9$+$iCmL\$7$F$$$?(B BEA $B$N(B Bare Metal (2005/11/18) $B$@$,!"$$$h$$$h@=IJ2=$5$l$k$h$&$@!#(B

Azul Systems $B$N(B$B%"%W%i%$%"%s%9(B$B$b$=$&$@$1$I!"(BSession Initiation Protocol (SIP) $B$N(B 100 $B%_%jIC0JFb$K%l%9%]%s%9$rJV$9$H$$$&MW5a$K!"(BJava $B%5!<%P$,$A$c$s$HEz$($i$l$k$h$&$K$J$C$F$$$k$N$K6C$/!#(B
Java $B$,CB@8$7$F(B11$BG/L\$G!"$9$4$$=j$^$GMh$?$s$@$J$!!#(B


12/11 ($B7n(B)

[CPU] IA-32e $B"*(B EM64-T $B"*(B Intel 64

IA-32 $B$N%^%K%e%"%k$rC5$7$F(B Intel $B$N%Z!<%8$rC5$7$F$$$k$H(B Intel® 64 and IA-32 Architectures Software Developer's Manual $B$H$$$&%Z!<%8$r8+$D$1$k!#(B
$B$"$l!"(BIntel® 64$B!)(B EM64-T $B$O:#G/$N(B7$B7n$KL>A0$r(B Intel64 $B$K2~$a$?$N$M!#(B

Intel $B$N(B AMD64 $B8_49L?Na%;%C%H$OH/I=Ev;~$O(B IA-32e $B$H$$$&H\>.$JL>A0$rIU$1$i$l$F$$$?(B(2004/2/18)$B!#(B $BEv;~$O$^$@(B Intel $B$,%O%$%(%s%I$NJ,Ln$O(B IA-64 $B$G9T$/$H$$$&5$$G$$$?$N$@$m$&!#(B AMD $B$,Ev=i$O(B x86-64 $B$H8F$s$G$$$?L?Na%;%C%H$r(B AMD64 $B$H$$$&(B Intel $B$,$$$+$K$b7y$,$j$=$&$JL>A0$KJQ99$7$F$7$^$$!"(B

IA-64 $B$O(B Itanium Processor Family (IPF) $B$H$$$&NI$/J,$+$i$J$$L>A0$K8eB`$7$F!"(B IA-32e $B$O(B EM64T $B$KJQ99!#(B $B$=$7$F!":#2s$5$i$K(B Intel 64 $B$K>:3J$G$9$h!#(B IA-64 $B$OK\Ev$K$$$i$J$$;R$K$J$C$F$7$^$C$?$s$G$9$M$'!#(B

Amazon $B%$%s%9%?%s%H%9%H%":n@.Cf(B

$B%$%s%9%?%s%H%9%H%"$r$\$A$\$A(B $B$B!#(B


12/9 ($BEZ(B)

ThinkPad T40 $B$,=$M}$+$iLa$C$F$-$?(B

11/4$B$K=$M}$K=P$7$?%N!<%H%Q%=%3%s$,$d$C$H5"$C$F$-$?!#(B $B%a%b%j$,8r49$5$l$FF0$/$h$&$K$J$C$?!#(B

$B:#F|8+$D$1$?(B LD $B%a%G%#%"$NKvO)(B

$B!VsJN[$bO7$$$F$OBLGO$KNt$k!W$H$$$&$,!"(B LD $B%a%G%#%"$NBhFs$N?M@8$KN^!#(B


12/8 ($B6b(B)

[Tips] MS-Word $B$N;H$$J}(B (2)

LaTeX $B;H$$$N8^==$N($BA02s$O(B7/10)$B!#(B LaTeX $B$+$i>h$j49$($i$l$k$[$I!"(B MS-Word $B$K=,=O$G$-$k$N$O$$$D$NF|$+!D(B

$B1&8*$KJ8;z(B

LaTeX $B$@$H(B $a^{b}$ $B$H$$$&5-=R$G(Bab$B$,I=<($G$-$k$,!"(B MS-Word $B$N>l9g$O%U%)%s%H$NJ8;z>~$j$NCf$N(B$B>eIU$-(B(P)$B$rA*Br$9$k$3$H$G!"(B $B0u;z2DG=!#(B

$B?^I=$KHV9f(B

LaTeX $B$N(B figure $B$d(B table $B$N(B caption $B$NA0$KIU$/HV9f$O!"(B Word 2000 $B$N>l9g$K$OA^F~%a%K%e!<$NCf$N(B$B?^I=HV9f(B$B$G%^!<%/$9$k$3$H$,$G$-$k!#(B

$B!V?^I=HV9f!W$N%@%$%"%m%0$G!"(B $B%i%Y%kL>$r!V?^!W!"!VI=!W!"!V?t<0!W$+$iA*Br$9$k$3$H!#(B $B!VHV9fIU$1!W$rJQ99$9$k$H(B$BI=(B1-1$B$N$h$&$J3,AX2=$5$l$??^I=HV9f$bA*Br$G$-$k!#(B


12/6 ($B?e(B)

$B4c6@$N=$M}(B

$BAwJL2q$K9T$/A0$K;~4V$,$"$C$?$N$G!"(B $B4c6@20$K$h$C$F%U%l!<%`$N=$M}$r$7$F$b$i$&!#(B $B$D$$$G$K4c6@$r@v>t$7$F$b$i$C$?$i(B

$BAwJL2q(B

$BF14|$N(B G $B;a$,B`?&$9$k$H$$$&$3$H$GAwJL2q$K;22C!#(B $B>l=j$OIpB"?7>k$N!V$R$m$d!W!#(B

G$B;a$O%^%&%s%F%s%S%e!<$KK\?&$9$k$H$$$&!#(B $BF14|$O(B4$B?M$$$?$,(B 3$BG/A0$K(B$B%$%s%I$N4k6H(B$B$K(BSI$B$H$7$FE>?&$7$F$$$C$?!#(B $B$3$l$G;DB8N((B60%$B!#(B $B$:$$$V$s


12/5 ($B2P(B)

Lock-Free Synchronization

N.Arora $B$i$,(B non-blocking deques $B%"%k%4%j%:%`(B $B$rH/I=$7$?$N$,(B $B5/Gz:^$K$J$C$?$N$+!"(B $B@$4VMM$G$O(B lock-free/wait-free synchronization $B$N8&5f$,?J$s$G$$$k$h$&$@!#(B

$B$3$N/$NB.EY8~>e$,F@$i$l$F$b:NMQ$;$s$+$C$?!#(B

$B$7$+$7(B SMT $B$d(B CMT $B$,N.9T$C$F%^%k%A(B CPU $B9=@.$,%]%T%e%i!<$K$J$C$F$/$k$H!"(B $B$b$&(B lock $B7?$NF14|$@$1$G$OBP=h$G$-$J$$(B($B"+

$B!D$H$$$&$H$3$m$^$G$,A0?6$j$G!"(B $B;E;v$GI,MW$K$J$C$F$$$k$7(B lock-free/wait-free synchronization $B$NO@J8$rFI$s$G(B $B;H$($=$&$J%"%k%4%j%:%`$rLu$7$F$$$/$*$H;W$C$F$$$k!#(B $BHwK:$N$?$a!"$H$j$"$($:%j%9%H$r$"$2$F$*$/$h!#(B

  • N. Arora et al., "Thread Scheduling for multiprogrammed multiprocessors", SPAA 1998 ($B$3$N%5%$%H(B)
  • O.Agesen et al., "DCAS-based concurrent deques", SPAA 2000 (PDF)
  • D.Detlefs et al., "Even better DCAS-based concurrent deques", DISC 2000 (CiteSeer)
  • T.Harris, "A pragmatic implementation of non-blocking linked lists", DISC 2001 (CiteSeer)
  • P.Martin et al., "DCAS-based concurrent deques supporting bulk allocation", TR, 2002 (PDF)
  • M.Greenwald, "Two-handed emulation: how to build non-blocking implementation of complex data structures using DCAS", PODC 2002 (PDF)
  • M.Micheal, "CAS-based lock-free algorithm for shared deques", EuroPar 2003 (PDF)
  • S.Doherty et al., "DCAS is not a silver bullet for nonblocking algorithm desin", SPAA 2004 (PDF)
  • Hakan Sundell et al., "Lock-free and practical doubly linked list-based deques using single-word compare-and-swap", OPODIS 2004

NOBLE - a library of non-blocking synchronization protocols (Noble)

Noble $B$H$$$&(B Lock-free $B$J%G!<%?9=B$$N%i%$%V%i%j$,%Q%C%1!<%8$,B8:_$9$k$h$&$@!#(B
$B650i!&8&5fMQ$K$OL5NA$G;HMQ$G$-$k!#(B
$B%*!<%W%s%=!<%9$G$O$J$$!#(B

[Food] $BMH=#>&?M!w?72#IM(B ($B8x<0(B)

$B$U$@$s$h$/9T$/MH=#>&?M$,(B $BEa:oLM(B$B$K$h$/;w$?(B$BEa@ZLM(B$B$H$$$&$N$r$O$8$a$?!#(B

$B@Z$j6q9g$H$$$$$M$8$l6q9g$H$$$$AG?ML\$K$O6hJL$,$D$+$J$$$@$1$I!"(B $B$=$l$O$=$l$GHa$7$$$h$M!#(B

$B%3%a%s%H$r=q$-9~$`(B
[1] [$B$_$&$i(B] 2006-12-22 00:41:01
$BMH=#>&?M!":#$N?&>l$N6a$/$K$b$"$j$^$9$h!#(B
$B$^$(!"7c?IC4!9LM$r?)$Y$F$*$J$+$r$3$o$7$^$7$?!#(B

$B;d$O!"Eb?I;R7O$O8}$H$+@e$,Bg>fIW$G$b!"(B
$B0_D2$G$d$i$l$k$3$H$,$"$k$h$&$G$9!#(B
[2] [nminoru] 2006-12-24 16:32:32
$B$_$&$i$5$s!'(B
$BKcGLF&Ie$NM&&?M$KE]$l$k$H$O(B!!
$B$+$D$F$N$h$&$K?I$$$b$NBQ@-$r>e$2$F9T$-!"%j%Y%s%8$7$F$/$@$5$$!#(B

12/3 ($BF|(B)


12/1 ($B6b(B)

[Work] $BD+(B7$B;~5/>2!"Lk(B2$B;~="?2(B

$B@h!97n$+$i;E;v$,A}$($F$-$F!"(B $B:#$OF|5-$r=q$/2K$b$J$/$J$C$F$-$F$$$k!#(B

$B%"%/%m%P%F%#%C%/$J3+H/9)Dx$ONO5;$G$J$s$H$+$9$k$D$b$j$@$,!"(B $BIt0w$N$?$a$N3+H/%5!<%P$N%$%s%9%H!<%k!"3+H/4D6-$N9=C[!"%=!<%9%3!<%I$N%3!<%G%#%s%05,Ls$N:n@.$b(B $B$d$i$M$P$i$J$$$h$&$@!#(B

TODO $B$r=q$$$F$*$/!#(B

  1. $B@n:j%S%kFb$N3+H/5!$rJ*M}E*$K0\F0(B
  2. Samba $B4D6-$N9=C[(B
  3. Web $B%5!<%P$NN)$A>e$2(B
  4. $B%P%C%/%"%C%W4D6-$N9=C[(B
  5. MHonARC $B$H(B Namazu $B$r;H$C$F3+H/%a!<%j%s%0%j%9%H$N8!:w(B
  6. $B;(B?$J%D!<%kN`$N;E9~$_(B
  7. CVS $B%5!<%P(B or Subversion $B%5!<%P$N9=C[(B
  8. $B%=!<%9%3!<%I(B Web $B2D;k2=%7%9%F%`(B(Doxygen, GNU GLOBAL, ...) $B$N9=C[(B
  9. $B%H%i%C%-%s%0%7%9%F%`$N9=C[(B
  10. $B%=!<%9%3!<%I%A%'%C%/%D!<%k(B(PGRelief)$B$N%$%s%9%H!<%k(B
  11. Intel C/C++ $B%3%s%Q%$%iMQ$N(B FLEX $B$N%i%$%;%s%9%5!<%P$N9=C[(B

$B$D$$$G$K>BDEB&$K>e5-$N%;%+%s%@%j4D6-$r=`Hw$9$k$3$H!#(B $B$"$H0J2<$N9`L\$r8!F$$9$k$3$H!#(B

  • $B%=!<%9%3!<%I$N4D6-$H%S%k%IJ}K!$r8!F$$9$k$3$H!#(B
    • $B%G%#%l%/%H%j%D%j!<$r$I$&$9$k$+!)(B
    • CVS/Subversion $B$N%j%]%8%H%j$r$I$&J,$1$k$+!)(B
    • V1$B3+H/8e$N(B V2 $B3+H/;~$N%=!<%9%D%j!<$O$I$&$9$k$+!)(B
  • Windows $BC
  • $B%=!<%9%3!<%I$N%"%C%W%m!<%I!&%@%&%s%m!<%IJ}K!(B
  • $BJ8;zJQ49$N$?$a$N%D!<%k(B
  • Windows $B>e$G3+H/5!$N(B X $B%D!<%k$,;H$($k$h$&$K(B Cygwin $B$N(B X $B%5!<%P$ND4::$r$9$k$3$H!#(B
  • Linux $B$X%m%0%$%s$7$F%3!<%G%#%s%0$r9T$&3+H/$B$B@=IJ%S%k%I4D6-!"J]!#(B

    $BK\F|8+$D$1$?JQ$JK\(B

    $B$I$&$$$&FI $B$7$+$b!VJ?@.(B18$BG/EYHG!W$H$$$&$3$H$OKhG/=P$7$F$$$k$N$+!)(B

    $B%^%s%,$G$o$+$k>kFn?.MQ6b8K$N7P1DFbMF(B
    $B%^%s%,$G$o$+$k>kFn?.MQ6b8K$N7P1DFbMF(B
  • $B%3%a%s%H$r=q$-9~$`(B
    [1] [sakaia] 2006-12-03 23:24:48
    $B$$$^$I$-!"(BNamazu$B$r;H$&?M$O$"$^$j$$$J$$$i$7$$$G$9!#(B
    Senna($B%;%J(B)$B$J$I$,N.9T$H$+(B...
    [2] [nminoru] 2006-12-06 00:54:00
    sakaia$B$5$s:#HU$O!#(B

    >$B$$$^$I$-!"(BNamazu$B$r;H$&?M$O$"$^$j$$$J$$$i$7$$$G$9!#(B
    $B$J$s$H!"$=$&$@$C$?$s$G$9$+!#(B
    $BD4$Y$F$_$k$H(B Senna$B!"(BRast$B!"(BHyper Estraier $BEy?7$7$$8!:w%(%s%8%s$,$$$C$Q$$$G$F$$$k$s$G$9$M!#(B
    $B$A$g$C$H:F9M$7$F$_$^$9!#(B

    $B@h7n$NF|5-(B(2006$BG/(B11$B7n(B) $B:#7n$NF|5-(B(2006$BG/(B12$B7n(B)
    2002 | 10 | 11 | 12
    2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2020 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2021 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2022 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2023 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
    2024 | 1 | 2 | 3 | 4
    $B%[!<%`%Z!<%8(B | $B:G?7$N%3%a%s%H(B50
    $B%$%s%G%C%/%9(B: $B?)$YJb$-(B | Java | $B%W%m%0%i%`(B | UNIX | $B2hA|(B
    $B:G?7$NF|5-$X$N%j%s%/(B | $B$3$NF|5-%Z!<%8$r$O$F$J% $B$3$NF|5-%Z!<%8$r$O$F$J%V%C%/%^!<%/$KDI2C(B
    $B$O$F$J(B $B%@%$%"%j!<(B $B%"%s%F%J(B $B%V%C%/%^!<%/(B $B%V%m%0(B
    Twitter | mixi | Facebook | slideshare | github | Qiita


    Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp