From owner-FreeBSD-users-jp@jp.freebsd.org  Sun Oct 21 04:51:20 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id EAA70306;
	Sun, 21 Oct 2001 04:51:20 +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 EAA70301
	for <FreeBSD-users-jp@jp.freebsd.org>; Sun, 21 Oct 2001 04:51:20 +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 EAA20563
	for <FreeBSD-users-jp@jp.freebsd.org>; Sun, 21 Oct 2001 04:51:19 +0900 (JST)
Received: from localhost (h072.p453.iij4u.or.jp [210.149.197.72])
	by dd.iij4u.or.jp (8.8.8+2.2IIJ/4U1.1) with ESMTP id EAA04652
	for <FreeBSD-users-jp@jp.freebsd.org>; Sun, 21 Oct 2001 04:51:16 +0900 (JST)
Date: Sun, 21 Oct 2001 04:36:39 +0900 (JST)
Message-Id: <20011021.043639.133606305.okuyamak@dd.iij4u.or.jp>
To: FreeBSD-users-jp@jp.freebsd.org
From: Kenichi Okuyama <okuyamak@dd.iij4u.or.jp>
In-Reply-To: <3BD0ECDC.69504.001@odin.j.asahi-net.or.jp>
References: <3BD0ECDC.69504.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 64955
Subject: [FreeBSD-users-jp 64955] 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

>>>>> "YO" == Yoshihiro Ota <ota@j.email.ne.jp> writes:
>> $B$=$&$$$&0UL#$G$O$J$/!#(B
>> Linux $B$N(B clone() $B$N$h$&$J>l9g$N@bL@$G$9!"$3$l$O!#(B
YO> Linux $B$N(B man $B$K$h$k$H(B
YO> The main use of __clone is to implement threads: multiple
YO> threads of control in a program that run concurrently in
YO> a shared memory space.
YO> $B$H$$$&$3$H$G!"%9%l%C%I$G$9!#(B

$B$(!<$C$H!D$3$N>l9g!"!V%9%l%C%I$G$9!W$H$$$&7kO@$,$I$&$7$F=P$k$N$+!D!#(B

$B!V(BShared Memory Space$B!W$G!VJBNsE*$K!WAv$k%W%m%0%i%`(B

$B$H=q$$$F$"$k$3$H$+$i$b$o$+$k$h$&$K!"$3$l$O%W%m%;%9$G$9!#(Bunix $B>e$NIa(B
$BDL$N!#$?$@$7!"%W%m%;%9$r:n@.$9$k$H$-$K!"(Bstack $B$r=|$/A46u4V$r$$$-$J$j(B
$B6&M-%a%b%j07$$$K$9$kE@$,(B fork() $B$H0c$$$^$9!#(B

#$B$G$J$$$H:$$kE@$,#1$D!#(Bclone() $B$O(Bchild $BMQ%9%?%C%/NN0h$r?7$?$K3NJ]$7(B
#$B$^$;$s!#(Bfork() $B$HA4$/F1$8$J$s$G$9!"$=$NJU$O!#$5$F!"A46u4V$r40A4$K6&(B
#$BM-$7$F$7$^$C$?>l9g!"$I$A$i$+@h$KF0$$$?J}$,GK2u$7$?%9%?%C%/$r$I$&;H(B
#$B$&$H!"8eH/$N%3!<%I$,F0$1$k$G$7$g$&(B? ($B$b$A$m$s!"Ez$O!V$@$+$i%9%?%C%/(B
#$B$@$1$O(Bcopy on modify $B07$$!W(B)


YO> $B$I$J$?$+$,(B OS/9 $B$J$I$rNc$K$"$2$F$$$^$7$?$,!">/$J$/$H$b3X=Q7O$G$O(B
YO> $B6hJL$7$F$*$j$^$9!#(B($B$*$J$85;=Q$,2q<R$,0c$&$H!"0c$&L>A0$N5;=Q$K$J$C$F(B
YO> $B$G$F$/$k$3$H$b$7$P$7$P$"$j$^$9$,!#(B)

$B$=$l$O!V%?%9%/$H%9%l%C%I!W$G$"$C$F!V%W%m%;%9!W$8$c$J$$$H;W$&!D!#(B

$B%W%m%;%9$O!"3X=QE*$K8+$F$b$b$C$H$b!V[#KfLO8R$H$7$?!W35G0$G!"C<E*$K8@(B
$B$($P!X(BOS $B$,4IM}!&2>A[2=$7$F$$$k%j%=!<%972!Y$r;X$7$F$$$k$@$1$G$9!#(B

$B$G$9$N$G!"!V%a%b%j$O2>A[2=$7$J$$!W$H8@$($P!"$=$&$$$&!V%W%m%;%9!W$O$"(B
$B$j$G$9!#(BOS/9 $B$d(B VxWorks $B$O$3$N%?%$%W!#(B


$B$3$l$KBP$7$F%?%9%/$H%9%l%C%I$O!"$3$l$^$?!X(BOS$B$,4IM}!&2>A[2=$7$F$$$k%j(B
$B%=!<%972!Y$rI=$9$N$G$9$,!"%9%l%C%I$O(B($BMpK=$K8@$($P(B)$B2>A[(B CPU $B$rI=$7$^(B
$B$9!#%?%9%/$O2>A[!V7W;;5!!W$G$9!#(B

$B7W;;5!$NCf$KJ#?t$N(B CPU $B$,B8:_$G$-$k$,$4$H$/!"(B1$B$D$N%?%9%/$NCf$GJ#?t$N(B
$B%9%l%C%I$,F0$1$^$9$7!"$=$NF0:n7k2L$O!"F10l%?%9%/Fb$G6&M-$5$l$k$b$N$H!"(B
$B%9%l%C%I8GM-$N$b$N$,$"$j$^$9!#%9%l%C%I8GM-$N$b$N$OFCDj%9%l%C%IFbIt$G(B
$B$7$+;2>H$G$-$^$;$s$7!"%?%9%/Fb6&M-$5$l$k%j%=!<%9$O%9%l%C%I4V$r8Y$C$F(B
$B8_$$$K1F6A$G$-$^$9!#$,!"J#?t%?%9%/4V$G$O8_$$$K1F6A$7$"$C$F$O9T$1$^$;(B
$B$s!#$G$9$N$G(B:

YO> $B%W%m%;%9$O!"3F2>A[%"%I%l%96h4V$,FHN)$7!"8_$$$K1F6A$7$"$C$F$O$$$1$^$;$s!#(B
YO> $B$?$H$(!"6&M-%i%$%V%i%j$KB??t$N%W%m%;%9$,%"%/%;%9$7$F$b!"1F6A$r<u$1$F(B
YO> $B$O$$$1$J$$$N$G$9!#(B

$B$3$l$O(B $B$=$N(B OS $B$G$O6&M-%i%$%V%i%j$,!V%?%9%/!W%j%=!<%9$@$+$i$G$9!#6&(B
$BM-%i%$%V%i%j$,!V7W;;5!30!W%j%=!<%9$J(B OS $B$G$"$l$P(B($B$D$^$j%?%9%/$N30$G(B
$B$"$l$P(B)$BAj8_$K1F6A$9$k$G$7$g$&!#Lr$KN)$?$J$$$3$H(B Windows 3.1 $B$N$4$H$7(B
$B$G$9$,!#(B


$B$5$F!"$3$3$+$i$,$d$d$3$7$$$H$3$m$G$9$,!#(B 
$B!X(BStack $B$O(B CPU $B$N%j%=!<%9$+$I$&$+!Y(B
$B$H$$$&LdBj$,B8:_$7$^$9!#(B

$B@N$+$i!"AH$_9~$_%^%7%sMQ$K%9%?%C%/NN0h$,(B 127 $B8D$"$C$F!"%l%8%9%?$,(B128
$B8D$"$C$F!"(Bstack register $B$O(B r0 $B$G!"<B$O%9%?%C%/$,@.D9$9$k$H$=$NJ,%l(B
$B%8%9%?$,(B r127 $BB&$+$i?)$$DY$5$l$F$$$/(B($B$D$^$j%9%?%C%/$O%l%8%9%?>e$K3N(B
$BJ]$9$k$N$G$"$C$F!"%a%b%j>e$G$O$J$$(B)$B$J$I$H$$$&(BCPU $B$,2?EY$b8=$l$F$$$^(B
$B$9!#$D$^$j!V%9%?%C%/$O(B CPU $B$N%j%=!<%9!W$G$"$jF@$k$o$1$G$9!#(B
#$B$?$V$sG/Np$,(B35$BA08e$N?M$G!"El9)Bg=P?H$N?M$O!V%]%1%3%s$N(B CPU$B!W$H$$$&(B
#$B$HM}2r$G$-$k$K0c$$$J$$!#(Bsharp $B$N%]%1%3%s$G$=$&$$$&(B CPU $B$r;H$C$F$$$k(B
#$B$b$N$,$"$C$F!"I,$:Gc$o$5$l$?$s$G$9!#(B

data $B$O$^$:4V0c$$$J$/%?%9%/%j%=!<%9$G$7$g$&!#%l%8%9%?$O$^$:4V0c$$$J(B
$B$/%9%l%C%I%j%=!<%9$G$9!#%9%?%C%/$O!D$b$C$H$b%0%l!<%>!<%s$KB8:_$7$^$9!#(B


$B0lHL$N<BAu$G%9%?%C%/$r%?%9%/%j%=!<%907$$$9$k$N$O!"$3$N$h$&$JM}O@E*$J(B
$BB&LL$+$i$G$O$"$j$^$;$s!#<BAu>e$NLdBj$G$9!#(B

$B$h$&$9$k$K%9%?%C%/$r%9%l%C%I%j%=!<%9$KJ,N%$9$k$H!"%"%I%l%96u4V$N0lIt(B
$B$,%9%l%C%I%j%=!<%9$K$J$j$^$9!#$3$l$O%9%l%C%I4V$N%3%s%F%/%9%H%9%$%C%A(B
$B$NEY$K2>A[6u4V$N@Z$jBX$($,I,MW$K$J$k!"$H$$$&0UL#$G$9!#$3$l$G$O!"$o$6(B
$B$o$64m81$rHH$7$F!V%9%l%C%I!W$K$9$k0UL#$,$"$j$^$;$s!#=>MhDL$j$N(B
$B!X(Bprocess$B!Y$H(B mmap $B$J$I$G3NJ]$7$?!V6&M-%a%b%j6u4V!W$,$"$l$P==J,$K$J(B
$B$j$^$9!#5U$K8@$($P$3$N!V2>A[6u4V@Z$jBX$(%*!<%P!<%X%C%I!W$r:G>.2=$7$?(B
$B$$$+$i$3$=!"%9%?%C%/$r%?%9%/%j%=!<%9$K$7$F!"2>A[6u4V$r6&M-$9$k$o$1$G(B
$B$9!#(B

$B0lJ}$G!"%9%l%C%I!&%?%9%/$NJ,N%$O!"2>A[6u4V$N@Z$jBX$($,Aa$/$J$l$P!"(B
$B2?$N%a%j%C%H$b$J$$(B($BBe2A<jCJ$O$"$k(B)$B$H$$$&$3$H$K$J$j$^$9!#<B:]!"(Bintel
$B$O$3$NJU$N@Z$jBX$($rAa$/$G$-$k$h$&$K$9$k$?$a$K!"%4%j%4%j$H:GE,2=$r$7(B
$BB3$1$F$-$^$7$?!#(B

#$B$3$NJU$,(B $B!V%9%l%C%I$NMW(B/$BITMW@oAh!W$NKhEY$*Fk@w$N:G=*@o>l$K$J$j$^$9!#(B

$B$A$J$_$K!";d$O8D?ME*$K$O!"!V2>A[6u4V4IM}5!9=!W$,@lMQ$N%-%c%C%7%e$r;}(B
$B$F$P!"%9%l%C%IITMWO@B&$KN)$A$^$9!#(Bmmap() $B$H!"%W%m%;%94VDL?.$N6/2=$G(B
$B==J,!#(B


YO> $B$H=q$$$F$+$i5?Ld$K;W$C$?$N$G$9$,(B
>>>> $B!X(Btext, bss, data $BNN0h$OA4It!V6&M-!W$7$D$D!"(Bstack $BNN0h$@$1$O(B
>>>> thread $B$4$H$KJL!9$N6u4V$K$9$k!Y(B
YO> $B$NJL!9$N6u4V$C$F!"JL!9$N2>A[%"%I%l%96u4V$r3F%9%l%C%I$K3d$jEv$F$k$H$$$&(B
YO> $B0UL#$G$7$g$&$+(B?

$B2>A[%"%I%l%96u4V$OA4It!"%W%m%;%9$4$H$K!VJL!W$G$9!#(B
text, bss, data $BNN0h$,A4It!V6&M-!W$5$l$F$$$k$@$1$G!#(B

$BIaDL$N%W%m%;%9$G$b(B text $B$O6&M-$7$F$$$^$9$h$M(B?  bss, data, stack $B$,6&(B
$BM-$7$F$$$J$$$1$I!#(Bbss $B$H(B data $B$b6&M-$7$F$$$k%W%m%;%9$r9M$($F$/$@$5$$!#(B
$B$7$+$b!"B8:_$9$k2>A[%"%I%l%9$bF1$8$@$H!#(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$X$=!Y(B:$B$I$&$7$F$X$=$r=P$5$J$$$H%P%$%*%F%mBP:v(B
#$B$J$s$@$m$&!D!#$I$&9M$($F$b8}$r=P$5$J$$J}$,$h$[$I%P%$%*%F%mBP:v(B
#$B$@$H;W$&$>(B?
