[FreeBSD] vfork
Zahemszky Gabor
zgabor at CoDe.hu
1999. Nov. 29., H, 13:48:04 CET
Hello!
> vfork() is unsafe in multi-thread applications.
>
> This function will be eliminated in a future release. The
> memory sharing semantics of vfork() can be obtained through
> other mechanisms.
Ha raerek, elobanyaszom az agyam baromi hatso zugabol, hogy mi is a baj
a vfork-kal (vagy legalabb azt, hogy hol lattam a leirast)
> namarmost az a problemam, hogy fut egy progim, ami jol meg tud hizni,
> jocskan 20 mbyte folott foglal a memoriaban, thread-es, fut kb 30 thread
> az egyik threadnek el kellene inditani egy kulso progit, fork-ol egyet,
> execv, stb
>
> viszont a fork ekkor az egesz 20 mbyte memoriat lemasolja, ami nekem nem
> tetszik tobb szempontbol, reszben 20 megat lemasolni is sokaig tart,
> reszben, ha ez egyszerre 10 thread-el esik meg, az 200 mega, stb
En nem akarok bolcsebbnek latszani annal, mint amilyen vagyok, (az is boven
eleg), de ha emlekeim nem csalnak a Jujnikszok par eve cow (Copy-On-Write)
technikat hasznalnak, meg lapozast, es ez nagyreszt kikuszoboli a fork hibajat.
De ha nagy - vagy nem nagy csak egyaltalan - baromsagot mondtam, Pink vagy
mas ugyis kijavit. Bar abbol, hogy O errol semmit nem irt, valami gyanus,
buzos dolog latszik.
> a vfork jonak tunik, kiveve a fent idezett, nem tul biztato
> ellenjavallatot
Mint Pink is irta, ez bizony mar jo nehany eve ott van, mint pl. SYSV-ben a
termcap is obsolete! uzenet, oszt kit zavar.
> vajon mi lehet az az 'other mechanisms' amivel vfork hasznalata nelkul ki
> lehet kuszobolni a gondomat ???
Rendes virtualis memoriakezeles oprecer oldalrol. De majd meg gondolkodom.
ZGabor at CoDe dot HU
--
#!/bin/ksh
Z='21N16I25C25E30, 40M30E33E25T15U!' ;IFS=' ABCDEFGHIJKLMNOPQRSTUVWXYZ ';set $Z ;for i { [[ $i = ? ]]&&print $i&&break;[[ $i = ??? ]]&&j=$i&&i=${i%?};typeset -i40 i=8#$i;print -n ${i#???};[[ "$j" = ??? ]]&&print -n "${j#??} "&&j=;typeset +i i;};IFS=' 0123456789 ';set $Z;X=;for i { [[ $i = , ]]&&i=2;[[ $i = ?? ]]||typeset -l i;X="$X $i";typeset +l i;};print "$X"
További információk a(z) BSD levelezőlistáról