Fork (systemanrop)

Från Wikipedia
Hoppa till: navigering, sök

fork är ett centralt systemanrop i unixliknande system. Systemanropet skapar en ny process som en kopia av den anropande processen (moderprocessen). Detta är det sätt på vilket nya proceser skapas i Unix.

Systemanropet har olika varianter, dels för att minska arbetet med att dubblera processens minnesrymd, dels för skapande av trådar. Den förra aspekten är mer eller mindre betydelselös på modern datorhårdvara, då de båda processerna kan använda samma kopia av minnet, och bara de minnesblock till vilken barnprocessen skriver behöver kopieras (engelska copy-on-write).

Barnet har precis samma egenskaper som sin moder, förutom att det bland annat har ett annat processid. I de fall barnprocessen skall utföra ett annat program kommer barnprocessen att kalla systemanropet exec efter att ha konstaterat sig vara barnprocess och modifierat omgivningen till behövliga delar.