a.Crearea proceselor
La revenirea din apelul sistem fork, douг procese au copii identice ale contextului la nivel utilizator, excepюie fгcвnd valoarea de retur a pid-ului. Оn procesul pгrinte, pid-ul are valoarea identificatorului procesului fiu; оn procesul fiu, pid-ul are valoarea zero.
Procesul 0, creat intern de cгtre kernel cвnd sistemul este iniюializat este singurul proces care nu este creat prin intermediul apelului sitem fork. Nucleul executг urmгtoarea secvenюг de operaюii la apelul sistem fork:
1)Alocг o intrare оn tabela proceselor penrtru noul proces.
2)Atribuie un identificator unic procesului fiu.
3)Face o copie logicг a contextului procesului pгrinte.
4)Incrementezг contorii tabelei de inoduri ?i fi?iere asociate procesului.
5)Оntoarce оn procesul pгrinte numгrul identificatorului atribuit procesului fiu ?i valoarea zero оn procesul fiu. Descrierea algoritmului:
-Nucleul se asigurг mai оntвi dacг are resurse disponibile pentru a termina cu succes apelul sistem fork. (Dacг nu sunt resurse disponibile, apelul sistem fork dг gre?.)
-Nucleul gгse?te o intrare оn tabela proceselor pentru a оncepe construcюia contextului procesului fiu ?i se asigurг cг utilizatorul care a apelat fork nu are deja prea multe procese оn curs de execuюie. De asemenea selecteazг un unic identificator pentru noul proces. -Mai departe nucleul iniюializeazг intrarea din tabela proceselor pentru procesul fiul creat prin copierea diferitelor cвmpuri din intrarea procesului pгrinte. Starea iniюialг a procesului este "оn curs de creare".