Oberon space
General Category => Общий раздел => Тема начата: vlad от Май 31, 2012, 05:49:54 am
-
Есть ли какое-то оправдание существования сабжа, кроме "дешево и сердито"?
Т.е., с точки зрения разработчика ОС: полноценные потоки делать долго и нудно. С точки зрения разработчика приложения для ОС: устраивать полноценное межпроцессное общение (IPC) - тоже уныло. Поэтому сделали fork() - просто реализовать и упрощает IPC (передачу нужного контекста в другой процесс).
Или у fork() есть какие-то неочевидные особенности (не покрываемые потоками и полноценным IPC)?
-
Думаю оправдания нет.
-
А чем плох fork?
По моему, кривым костылем является как раз многопоточность.
-
А чем плох fork?
По моему, кривым костылем является как раз многопоточность.
Хотя бы тем, что стартует одна программа, а умирает две (или сколько там раз fork() вызвался). Это из общих соображений.
Сюда еще можно подшить нарушение "структурного подхода" с одной точкой входа и одним выходом. В случае fork() выхода не будет, скорее всего будет вызов exit().
Все это оставляет впечатление от fork() как от шортката размером с хак :)
-
Есть ли какое-то оправдание существования сабжа, кроме "дешево и сердито"?
Наверно, стоит поискать в архивах. Юникс делался в те времена, когда такие вещи было принято аргументировать. Зачастую, письменно. Возможно, Томпсон где-нибудь это описывал.