Зачем нужна иерархия процессов в Unix?
Я думаю тут не совсем корректен вопрос «зачем», я думаю это просто свойство, которое является прямым следствием архитектуры системы. Я не уверен, с какого конца шли проектировщики юникс, но мне кажется, что не от «давайте сделаем дерево процессов», а «как будем реализовывать создание и управление процессами». Дело в том, что в юникс, процессы, кроме init, не создаются просто так, «из воздуха», они всегда отпочковываются от другого процесса (fork) и в результате из одного процесса получаются два — родительский и дочерней между которыми есть тесная связь (и как следствие естественным образом получая древовидную структуру). Кроме уже упомянутых сигналов, дочерний процесс наследует дескрипторы файлов, через которые, если надо, налаживается связь между дочерним и родительским процессом.
Смысл заключается именно в коммуникациях между процессами. Так как он и описывает, но я согласен, что он не говорит напрямую, для чего это нужно.
На самом деле, с помощью иерархии, есть возможность захватить все процессы, через init.
Если бы не существовало иерархии, то бродкаст системных сигналов мог не всех касаться.
Затем уже в самом процессе которые посылает, можно указать, на каком уровне его нужно слушать.