Naar inhoud springen

Overleg:Fork (informatica)

Pagina-inhoud wordt niet ondersteund in andere talen.
Onderwerp toevoegen
Uit Wikipedia, de vrije encyclopedie
Laatste reactie: 10 jaar geleden door Kleuske

De tekst refereert niet aan informatica:fork doch aan Unix:fork De "fork" die beschreven wordt is asymmetrisch: er zijn een belangrijke verschillen tussen "parent" en "child", begrippen die in het algemene "forken" niet voorkomen. Het verdonkeremanen van de "Unix-afhankelijkheid" gaat zelfs zover dat in het stukje "C" de Unix-header die de odracht fork() beschikbaar maakt zelfs ontbreekt, waardoor het ook als "C" niet door de beugel kan. Dat geen omgekeerde van "forken" wordt vermeld komt vermoedelijk ook doordat die in Unix niet bestaat (die een zeer asymmetrische "oplossing" geeft - een "parent"-proces kan wachten op de beeindiging van een "child"-proces; als een "parent"-proces eindigt verdwijnen impliciet goedschiks of kwaakschiks (alle) "child"-processen). – De voorgaande bijdrage werd geplaatst door 24.132.117.107 (overleg · bijdragen)PS: Wil je voortaan alsjeblieft op overlegpagina's ondertekenen met vier tildes (~~~~)? Er wordt dan automatisch een link naar je gebruikerspagina geplaatst.

Bedankt voor je suggestie! Als je denkt dat een artikel verbeterd kan worden, schroom dan niet om het zelf te doen. Wikipedia is een wiki, dus iedereen kan bijna elk artikel bewerken door simpelweg op de bewerk-knop bovenaan de pagina te klikken. Je hoeft niet eens in te loggen (hoewel er vele redenen zijn om dat wel te doen). De Wikipedia-gemeenschap moedigt je aan om niet te aarzelen om een zinvolle bijdrage te leveren. Het is niet erg als je een foutje maakt – er is een grote kans dat ze snel opgespoord en verholpen zullen worden. Als je niet zeker weet hoe je precies een pagina moet bewerken, lees dan Help:Uitleg of probeer het uit in de zandbak. Nieuwe gebruikers zijn altijd welkom. Kleuske (overleg) 8 mei 2014 11:43 (CEST)Reageren
P.S. Het "omgekeerde" van een 'fork()' zou 'wait()' (POSIX) zijn, waarbij het ene proces wacht op voltooing van een ander proces. Overigens is het prima mogelijk om een 'child'-process niet te laten beeindigen als het 'parent' proces wordt beeindigd. Vanaf de CLI met behulp van de '&'-operator, maar de 'daemon()' POSIX call doet hetzelfde. 'Fork' is overigens per definitie asymmetrisch. Er is immers altijd een proces dat 'fork' aanroept (parent) en een proces dat door de fork ontstaat (child). Mocht je een voorbeeld hebben dat hieraan niet voldoet, beantwoord dan de vraag welk process de 'fork'-call uitvoert. Bij voorbaat dank. Kleuske (overleg) 8 mei 2014 12:12 (CEST)Reageren

Het is een keuze om een verschil te laten bestaan tussen de processen na de fork. Het is alleszins mogelijk om beide processen na de fork identiek te doen zijn - na de call zijn beide teruggekeerd van een call van fork; voor de call was er maar een proces. Als ze een pid hebben dan is deze bij beide vernieuwd. Feitelijk zijn het broers of zussen (ik zoek naar een behoorlijke nederlandse vertaling voor "sibling"; incomplete analogieën zijn ook storend) de ouder bestaat formeel niet meer, of de implementatie de procescontext hergebruikt voor een van hen is niet relevant - als die informatie maar niet beschikbaar is aan de zusjes. Als de pid nodig is voor onderlinge communicatie ontvangen nu beide processen de pid van de ander. Het omgekeerde van een fork() (wait()?) moet dus door beide zusjes worden 'aangeroepen' de informatie die de zusjes locaal gecreëerd hebben zal vernietigd moeten worden. Kdering (overleg) 1 jun 2014 17:06 (CEST)Reageren

Alles in de informatica is een keuze. Echter, twee processen zijn noodzakelijkerwijs verschillend, al was het alleen maar omdat ze een ander pid hebben. Hoewel text-segmenten gedeeld kunnen worden, moet data voor verschillende processen verschillen. Zo niet, heeft het geen zin een fork uit te voeren. Over stdio wil ik het dan nog niet eens hebben. De door u geschetste gang van zaken klinkt overigens nodeloos ingewikkeld en ik betwijfel van harte of zoiets inderdaad ergens in gebruik is. Kleuske (overleg) 1 jun 2014 19:24 (CEST)Reageren