From owner-FreeBSD-users-jp@jp.freebsd.org  Sun Oct 28 15:57:08 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id PAA92923;
	Sun, 28 Oct 2001 15:57:08 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from mfo00.iij.ad.jp (mfo00.iij.ad.jp [202.232.2.117])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id PAA92917
	for <FreeBSD-users-jp@jp.freebsd.org>; Sun, 28 Oct 2001 15:57:07 +0900 (JST)
	(envelope-from okuyamak@dd.iij4u.or.jp)
Received: from dd.iij4u.or.jp (dd.iij4u.or.jp [210.130.0.14])
	by mfo00.iij.ad.jp (8.8.8/MFO1.3) with ESMTP id PAA08640
	for <FreeBSD-users-jp@jp.freebsd.org>; Sun, 28 Oct 2001 15:57:07 +0900 (JST)
Received: from localhost (h059.p448.iij4u.or.jp [210.149.192.59])
	by dd.iij4u.or.jp (8.8.8+2.2IIJ/4U1.1) with ESMTP id PAA12722
	for <FreeBSD-users-jp@jp.freebsd.org>; Sun, 28 Oct 2001 15:57:05 +0900 (JST)
Date: Sun, 28 Oct 2001 15:45:22 +0900 (JST)
Message-Id: <20011028.154522.00648070.okuyamak@dd.iij4u.or.jp>
To: FreeBSD-users-jp@jp.freebsd.org
From: Kenichi Okuyama <okuyamak@dd.iij4u.or.jp>
In-Reply-To: <3BDB577C.27194.001@odin.j.asahi-net.or.jp>
References: <3BDB577C.27194.001@odin.j.asahi-net.or.jp>
X-Mailer: Mew version 1.95b122 on Emacs 20.7 / Mule 4.1 (AOI)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+010328
X-Sequence: FreeBSD-users-jp 65167
Subject: [FreeBSD-users-jp 65167] Re: pthread
 =?ISO-2022-JP?B?GyRCJSolVyU3JWclcyRyJEQkMSRrJEglUCU5JSgbKEI=?=
 =?ISO-2022-JP?B?GyRCJWkhPBsoQg==?= 
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: okuyamak@dd.iij4u.or.jp

$B1|;3(B@IBM$B$G$9!#(B

>>>>> "$BB@ED(B" == Yoshihiro Ota <ota@j.email.ne.jp> writes:
>> $B$3$N$h$&$J@$3&$G$O!"(Bthread $B$4$H$K$o$6$o$6%9%?%C%/$rJL6u4V$K3NJ]$9$k(B
>> $BI,MW@-$O$^$k$C$-$j$"$j$^$;$s!#$`$7$m%j%=!<%9$O6KNO!V%?%9%/!WB&$KCV$$(B
>> $B$F!"C1=c2=$r?^$kJ}$,JXMx$G$7$?!#FC$K!V3X=QE*$J<B83!WMQ$N<BAu$N>l9g$O!#(B
>> stack $B$,(B thread $B$4$H$KJL6u4V(B(thread resource)$B$K$J$C$?$N$O!"$4$/:G6a(B
>> $B$N$3$H$G$9!#(B
$BB@ED(B> $BE@8!$N$?$a$KJ9$-$?$$$N$G$9$,!"$3$l$O!V(BMach-thread $B$O(B Mach-task $B$N(B
$BB@ED(B> $B%a%b%j6u4V$N0lIt$r3F(B thread $BMQ$KJ,3d$7$F;H$&!#!W$H$$$&$3$H$G$$$$$N$G$9$+!#(B

$B!X(BMach$B$O!Y$H8@$o$J$$J}$,$$$$$G$9!#(BMach $B$O(B($B$I$3$,(B?$B$H$O8@$$$?$/$J$j$^(B
$B$9$,(B)$B0l1~!V%^%$%/%m!W%+!<%M%k$G$9!#$3$l<+BN$,(B Application $B%l%Y%k$G$N(B
$B%^%k%A%9%l%C%I%$%s%?!<%U%'!<%9$rDs6!$9$kI,A3@-$O$"$j$^$;$s!#EvA3!"(B
Application/Kernel interface $B%l%Y%k$G$OJL$N9=B$$rDs6!$7$F$b$+$^$$$^(B
$B$;$s!#IaDL$O$7$^$;$s$,!#(B

$B$G!"$=$N>e$G!#DL>o(B Mach 3.0 $B$H$+$G;H$o$l$k(B BSD $B%$%s%?!<%U%'!<%9$N>l(B
$B9g!"(BMach $B$N%$%s%?!<%U%'!<%9$,$=$N$^$^8+$($^$9$N$G!"$*$C$7$c$kDL$j!#(B
user thread $B$HA4$/F1$8!"%a%b%j6u4V>e$KIaDL$K(B chunk $B$rM=Ls$7$F!"$=$l(B
$B$r(Bthread $BMQ%9%?%C%/NN0h$K;H$C$F$$$^$9!#(B


$BB@ED(B> $B!V(Btest and set$B!WL?Na<B9TCf$K@dBP$K!"(Bcontext switch $B$,5/$-$J$$$H(B
$BB@ED(B> $B$$$&J]>Z$,$J$1$l$P$$$1$^$;$s!#(B1 CPU $B$N(B CISC $B7?$G$"$l$P2DG=$+$bCN$l(B
$BB@ED(B> $B$^$;$s$,!"J#?t$N(B CPU, cache, compiler $B$d(B RISC $B7?$N%G%6%$%s$,<gN.$K(B
$BB@ED(B> $B$J$C$?$3$H$r9M$($k$H(B OS $B$N%5%]!<%HH4$-$G$OIT2DG=$G$9!#(B

$B$=$l$O:,85E*$K4*0c$$$7$F$$$^$9!#(B

$B!X(BOS $B$r$I$&:n$m$&$,!"(BCPU $B$"$k$$$O<~JU%O!<%I%&%'%"$N%5%]!<%HL5$7$K$O(B
  test and set/clear $BL?Na$O:n@.$G$-$^$;$s!#(BMutex $B$NK\<A$,(B test and
  set/clear $B$G$"$k0J>e!"(BMutex $B$O(B OS $B$@$1$G$O:n@.IT2DG=$G$9!Y(B

$B!V3d$j9~$_$r;_$a$l$P$$$$$8$c$J$$$+!W$H;W$&$+$bCN$l$^$;$s$,!"@$$NCf$K(B
$B$O(B Non Maskable Interruption(NMI)$B$H$$$&$?$0$$$N3d$j9~$_$,$"$C$F!"40(B
$BA4$KDd;_$5$;$k$N$OIT2DG=$G$9!#(B

$B$G$9$N$G!"(Btest and set/clear $BL?Na$H$$$&$N$O!V(BRISC $B$@$m$&$,(B VLIW $B$@$m(B
$B$&$,!WI,$:%5%]!<%H$7$F$$$kL?Na%;%C%H$G$9!#(B

$B$D$$$G$K8@$&$H$3$s$JL?Na$rH/9T$9$k%3%s%Q%$%i!<$J$s$FB8:_$7$^$;$s$7(B
($BIaDL(B inline assembly $B$+!"%"%;%s%V%i$G=q$/(B)$B!"(Btest and set/clear $B$KBP(B
$B$7$F$O(B cache $B$O(B write through $B$G5sF0$7$^$9$7!"J#?t(B CPU $B$N%-%c%C%7%e(B
$B$O$3$N$h$&$J;vBV$N$?$a$K!V%9%L!<%W!W$H$$$&F0:n$r$7$^$9!#(B


$BB@ED(B> RISC $B7?(B multi-processor $BEy$G$9$H!"%a%b%j$+$i%l%8%9%?$K0\$7$F(B
$BB@ED(B> $B$+$i$G$J$/$F$O!"CM$r@_Dj$G$-$^$;$s!#(B

$B$^$:!"(Binvisible register $B$r(B1$B$D!"(B0xffffffff $B$K$7$^$9(B($B$3$l$O%O!<%I%o%$(B
$B%d!<$7$F$*$/$N$G(B 0 tick $B$G:n$l$k(B)$B!#(B
$B<!$K!"%P%9$r3MF@$7$F!"%a%b%j$X$N%"%/%;%9$,$=$N(B CPU $B$7$+$G$-$J$$$h$&(B
$B$K$7$^$9!#(B
$B$G!"!V;XDj$5$l$?%"%I%l%9$K$"$k(B 32bit $B$r;XDj$5$l$?(B register $B$KE>Aw$7!"(B
$BJV$9Ea$G(B 0xffffffff $B$NCM$r$=$N%"%I%l%9$N%a%b%j$K>e=q$-$7$F$7$^$&!W$N(B
$B$,(B test and set$B!#$3$l$i$NE>Aw$,=*$o$k$^$G!"%P%9$O<jJ|$7$^$;$s!#(B

$B$3$NL?Na$r<B9T$7$?8e$G!"(Bregister $B$NCM$,(B 0xffffffff $B$G$"$l$P!"B>$N?M(B
$B$,$9$G$K%m%C%/$7$F$$$?$o$1!#0lJ}$G!"(B0x00000000 $B$G$"$l$PC/$b%m%C%/$7(B
$B$F$$$J$+$C$?$o$1!#GSB>@-$O!V%a%b%j$X$N%"%/%;%9MQ$N%P%9$NGSB>@-!W$,Mx(B
$BMQ$5$l$^$9!#$G$9$N$G!"$3$NJ}K!$O(B VRAM $B$G$O;H$($^$;$s!#(B

# VRAM $B$O%a%b%j$X$N%"%/%;%9%P%9$,(B2$B$D$"$k%?%$%W$N(B RAM$B!#%"%/%;%9$NGSB>(B
#$B@-Ey$O(B RAM chip $BFbIt$G=hM}$9$k!#(BVideo $B$b$N$N$h$&$K!V(BCPU $B$,HsI=<(%P(B
#$B%s%/A`:n$N$?$a$K%"%/%;%9$9$k!W$N$H!V2hLLIA2h$N$?$a$K(B Video
#Controller $B$,FI$_=P$9!W$N$H$rF1;~$K9T$&$?$a$K$3$N$h$&$J9=B$$K$J$C$F(B
#$B$$$k!#:G6a$N(B VC $B$O(B BITBLT $B5!G=$,$"$k$N$G!"$I$A$i$+$i$G$bFI$_=q$-$G(B
#$B$-$k$h$&$K$J$C$F$$$k$N$G!"(BVRAM $B$r;H$C$F$N(B test and set $B$rMxMQ$7$?GS(B
#$BB>@)8f$O$G$-$J$$!#(B


$BB@ED(B> (c $B$K$O(B compiler $B$K(B cache $B$r;H$o$J$$$h$&$K;XDj$9$k(B keyword $B$,$"(B
$BB@ED(B> $B$j$^$9$,!"$=$l$@$1$G$OIT==J,$G$9!#(B)

$B$=$2$JL?Na$O$"$j$^$;$s!#(BVolatile $B$O!V(Bregister $B$NCM$@$1$7$+JQ99$7$J$$!W(B
$B$N$rKI$0$@$1$G$9!#(Bcache $B$+$i@h$O%3%s%Q%$%i!<$N$*;E;v$G$O$"$j$^$;$s!#(B


$BB@ED(B> $B$G!"$3$l$i$r3N<B$KJ]>Z$G$-$k$N$O8"8B%b!<%I$G<B9T$G$-$k(B OS $B$@$1$G$9!#(B

$B8"8B%b!<%I$OA4$/4X78$"$j$^$;$s!#$H$$$&$+!"5U$K<!$NLdBj$r2r$$$F$4Mw$J(B
$B$5$$!#(B

$BLdBj(B1$B!VFC8"%b!<%I$r$"$2$k$+$i!";d$,>e5-$G<($7$?$h$&$J(B test and set 
  $BL?NaL5$7$G!"(BSMP $B$G!"%=%U%H$@$1$G!"$I$&$d$C$F40`z$JGSB>@)8f5!9=$r:n(B
  $B$k$N$+!"$=$NJ}K!$r=R$Y$h!W(B
#$B%"%;%s%V%i$NMxMQ$r5v2D$9$k$N$G!"(Btest and set/clear $B0J30$G$"$l$P!"(B
#CPU $B$NL?Na$OA4It;H$C$FNI$$$b$N$H$9$k!#(B

$BLdBj(B2$B!V$=$N5;=Q$,FC8"%b!<%I$G$7$+;H$($J$$M}M3$r$N$Y$h!W(B

$BLdBj(B3$B!V$=$N5;=Q$rFC8"%b!<%I$G$7$+;H$($J$$$h$&$K$9$k%a%j%C%H$H!"(B
  $BFC<l$JL?Na$r(B2$B$DDI2C$9$k$N$H!"$I$A$i$,F@$+!"$h!<$/9M$($F$_$h$&!W(B


$B!D$s!<!#B@ED$5$s$O:GDc8B$3$l$i$NK\$rFI$s$@J}$,$$$$$+$J!#(B
#$B$?$@$7!"$b$C$H?7$7$$K\$,=P$F$$$k2DG=@-$,$"$k$N$G$=$N>l9g$O$=$A$i$r(B
#$BFI$`$3$H!#(B

   $B9=B$2=%3%s%T%e!<%?9=@.(B(4$BHG(B)
   Andrew S. Tanenbaum
   ISBN4-89471-224-5

   OS$B$N4pAC$H1~MQ(B
   A.S.Tanenbaum
   ISBN4-8101-8543-5

   Mach $B%*%Z%l!<%F%#%s%0%7%9%F%`(B
   J.$B%\%$%-%s(B/D.$B%+!<%7%'%s(B/A.$B%i%s%,!<%^%s(B/S.$B%m%%%P!<%=(B
   ISBN4-8101-8077-8

   $BJ,;6%*%Z%l!<%F%#%s%0%7%9%F%`(B
   A.S.Tanenbaum
   ISBN4-931356-21-4

   $B:GA0@~(B Unix $B$N%+!<%M%k(B
   Uresh Vahalia
   ISBN4-89471-189-3

   $B%(%-%9%Q!<%H#C%W%m%0%i%_%s%0(B $B!]CN$i$l$6$k#C$N?<AX(B
   Peter van der Linden
   ISBN4-7561-1639-6

#$B0l1~!"$I$s$JK\$+$O(B
# http://www.dd.iij4u.or.jp/~okuyamak/Books/own.computer.html
#$B$K=q$$$F$"$k!#(B
---- 
$B1|;3(B $B7r0l(B@$BEl5~4pAC8&5f=j(B.$BF|K\(BIBM($B3t(B)[$BFzLn(BFC:No.0000000015]
#URL  http://www.dd.iij4u.or.jp/~okuyamak/
#$B:#F|$N$*8@MU!X%"%i!<$O0NBg$J$j!Y(B:$BF1$8?@MM$r0c$&L>A0$G4-$s$G!"(B
#$B@oAh$7$F$k$s$8$c$J$$$C(B!$BGO</$I$b$,$C(B!
