From owner-java@jp.FreeBSD.org Fri Jul 19 01:30:43 2002
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id g6IGUhk44023;
	Fri, 19 Jul 2002 01:30:43 +0900 (JST)
	(envelope-from owner-java@jp.FreeBSD.org)
Received: from pooh.softalia.com (pooh.softalia.com [65.161.202.173])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with ESMTP/inet id g6IGUen44018
	for <java@jp.FreeBSD.org>; Fri, 19 Jul 2002 01:30:41 +0900 (JST)
	(envelope-from kkonaka@softalia.com)
Received: from tigger.softalia.com (tigger-2.softalia.com [10.10.10.2])
	by pooh.softalia.com (8.9.3+Sun/3.7W-isfs) with ESMTP id MAA07906;
	Thu, 18 Jul 2002 12:30:37 -0400 (EDT)
Received: from tigger.softalia.com (kkonaka@tigger.softalia.com [65.161.202.175])
	by tigger.softalia.com (8.11.4/3.7W-isfs) with ESMTP id g6IGUct13921;
	Thu, 18 Jul 2002 12:30:38 -0400
Date: Thu, 18 Jul 2002 12:30:34 -0400
Message-ID: <sqbd6tlnglx.wl@nue.mac.com>
From: kkonaka@mac.com
To: java@jp.FreeBSD.org
In-Reply-To: <20020719.003938.511705084.shudoh@localhost>
References: <sqbptxl5atc.wl@nue.mac.com>
	<20020719.003938.511705084.shudoh@localhost>
User-Agent: Wanderlust/2.6.0 (Twist And Shout) SEMI/1.14.3 (Ushinoya)
 FLIM/1.14.3 (=?ISO-8859-4?Q?Unebigory=F2mae?=) APEL/10.3 Emacs/20.7
 (i586-pc-linux-gnu) MULE/4.0 (HANANOEN)
MIME-Version: 1.0 (generated by SEMI 1.14.3 - "Ushinoya")
Content-Type: text/plain; charset=ISO-2022-JP
Reply-To: java@jp.FreeBSD.org
Precedence: list
X-Sequence: java 125
Subject: [java 125] Re: Java Memory Model
Errors-To: owner-java@jp.FreeBSD.org
Sender: owner-java@jp.FreeBSD.org
X-Originator: kkonaka@mac.com
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+020717

$B$*JV;v$I$&$b$G$9(B -

> $B$I$N$h$&$K$*$b$7$m$$$H46$8$i$l$?$N$G$7$g$&!#(B
> ($BNc$($P!"8@8l;EMM$,%9%l%C%I$H%a%b%j$N%$%s%?%i%/%7%g%s$^$G(B
>  $B:Y$+$/5,Dj$7$F$$$k$H$$$&E@!"$H$+!#(B)

release consistency model $B$J$H$3$m(B - $B$=$l$b$I$3$H$J$/(B 
conservative $B$J$H$3$m$"$?$j$G$9!#(B

$B9M$($F$FFq$7$$$+!)$H;W$C$?$N$ONc$($P(B

class A { static Object v = ...; }
class B {
  static Object l = ...;
  static void f() {
    synchronized (l) {
      A.v = <somethingelse>;
    }
  }
}

$B$_$?$$$J(B lock $B$H(B variable $B$,N%$l$?%"%I%l%9(B ($B@x:_E*$K0[(B
$B$J$k(B virtual address $B>e$N(B page) $B$KG[CV$5$l$F$$$k%1!<%9(B
$B$G!"$&$($N(B conservative $B$H(B($BKM$,;W$&$N$O(B) release on
"any" lock $B$,(B main memory $B$H$NF14|$r0z$-5/$3$9$H$+$$$C(B
$B$?$"$?$j$G$9!#(B

> 17$B>O!V(BThreads and Locks$B!W$O!"$^$8$a$KFI$`$H$1$C$3$&Hh$l$^$9!#(B
> $B$J$K$;!"=q$-9~$_$r;X$9MQ8l$@$1$G!"(Bassign, store, write $B$,(B
> $B;H$$J,$1$i$l$F$$$F!"FI$_9~$_$G$O(B use, load, read $B$,;H$$J,$1$i$l$F$$$^$9!#(B
> $B0JA0$K$3$NJU$j$r@0M}$7$FIA$$$??^$rE:IU$7$^$9!#(B
> (jmm_thread_and_memory.gif)

$BKM$bF1$83($r=q$-$^$7$?(B :) -- $B3($J$7$G$O$A$g$C$HFI$a$J$$!#(B

>  - Concurrent Programming in Java(TM): Design Principles and Pattern
>    (2nd Edition)
>    Doug Lea ($BCx(B)
>    http://www.amazon.co.jp/exec/obidos/ASIN/0201310090/ref=sr_aps_eb_/249-1713319-1465967

$B$"$j$,$H$&$4$6$$$^$9(B - $B8!F$$7$F$_$^$9!#(B

> > (eg., $B0l8+(B SMP $B%^%7%s$@$H4X78$J$5$=$&$K$b;W$($k$N$G$9$1$I!"(B
> > $B$=$l$O%^%A%,%$!)(B)
> 
> $B4X78$*$*$"$j$G$9!#(B
> $BE:IU$7$??^Cf$N!V(BWorking Memory$B!W$O!"(BSMP $B$G$O!"(B
> $B%W%m%;%C%5$K%m!<%+%k$J%a%b%j$d%-%c%C%7%e$K3:Ev$7$^$9(B ($B$H;W$C$F$$$^$9(B)$B!#(B

$B!I%W%m%;%C%5$K%m!<%+%k$J%a%b%j!I$H$$$&$N$OLdBj$K$J$k$b(B
$B$N$J$N$G$7$g$&$+!)(B -- $B$H$$$&$+8@$$BX$($k$H!I(BSMP $B$J%^%7(B
$B%s$N(B JVM $B$N<BAu$G$=$&$$$&%a%b%j$O;}$D$b$N$J$N$G$9$+!)!I(B
$B!J$J$<!)(B -- $BKM$,$o$+$C$F$J$$$N$O$3$N$X$s$G$9$M!"$?$V$s!K(B
(cpu$B$N(B)$B%-%c%7%e$"$?$j$O0l4S@-$O!J$"$j$,$A$J(B($B0lMM%a%b%j(B
$B%"%/%;%9$J(B) SMP $B%^%7%s$G$O!KAv$C$F$$$k%W%m%;%9$,(B 
Java/JVM $B$G$"$m$&$H(B C/native $B%"%W%j%1!<%7%g%s$G$"$m$&(B
$B$HL54X78$K(B backplane (bus) access protocol $B$K$h$C$FJ](B
$B$?$l$k!J$N$G(B JVM level $B$G$3$N0l4S@-$r?4G[$9$kI,MW$O7k(B
$B6I$J$$!K$N$G$O!)(B

$B$b$&$9$3$78@$$BX$($k$H!"(BSMP $B%^%7%s$G$O(B java $B$N(B heap $B%a(B
$B%b%j$r(B cpu $B$4$H$K(B replicate $B$7$?$j$9$k$3$H$O$"$k$s$G$7$g(B
$B$&$+!)(B (- $B$=$&$$$&(B SMP $B%^%7%s$b$J$$$3$H$O$J$$(B; $B$H$$$&(B
$B5DO@$O$"$j$=$&$G$9$1$I(B)

 ... $B$H$$$&$N$,!I4X78$J$5$=$&!I$NGX8e$N9M$($J$N$G$9$1(B
$B$I$d$C$Q$j$J$K$+Bg$-$JG'<10c$$$,$"$C$?$j$9$k$b$N$G$7$g(B
$B$&$+!)!J$J$i$PD>$7$?$$$J(B:)$B!K(B

$B$3$J$+(B
