Авторы: Нина Челышева, Фёдор Гончаров

Полезные ссылки

waitpid() - Wait for a specific child process to end

Auxiliary Vector

Completely Fair Scheduler - Wikipedia

CFS vs O(1) scheduler

Системный вызов waitpid

Screenshot 2022-03-03 at 16.49.28.png

if (fork() == 0) - в этот if зайдёт только порождённый процесс (то есть мы находимся в процессе-потомке)

Если забыть return, то у нас получится бесконтрольное порождение огромного количества потомков, потому что каждый потомок продолжит цикл с того места, где остановился родитель

Дети в произвольном порядке печатают свой pid:

Screenshot 2022-03-03 at 16.52.00.png

Untitled

Почти всё для процессов будет одинаковое, eip будет совпадать. Основное отличие у процессов в pid и в возвращаемом значении системного вызова fork.

Загадка от автора:

Сколько Hello, World будет напечатана в результате исполнения этого кода?

Теперь у нас в родителе получился массив pid детей и “спать” они будут в обратном порядке

Untitled