Автор Тема: fork()  (Прочитано 3397 раз)

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
fork()
« : Май 31, 2012, 05:49:54 am »
Есть ли какое-то оправдание существования сабжа, кроме "дешево и сердито"?

Т.е., с точки зрения разработчика ОС: полноценные потоки делать долго и нудно. С точки зрения разработчика приложения для ОС: устраивать полноценное межпроцессное общение (IPC) - тоже уныло. Поэтому сделали fork() - просто реализовать и упрощает IPC (передачу нужного контекста в другой процесс).

Или у fork() есть какие-то неочевидные особенности (не покрываемые потоками и полноценным IPC)?

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: fork()
« Ответ #1 : Май 31, 2012, 09:02:23 am »
Думаю оправдания нет.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: fork()
« Ответ #2 : Май 31, 2012, 11:54:03 am »
А чем плох fork?

По моему, кривым костылем является как раз многопоточность.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: fork()
« Ответ #3 : Май 31, 2012, 01:45:26 pm »
А чем плох fork?

По моему, кривым костылем является как раз многопоточность.

Хотя бы тем, что стартует одна программа, а умирает две (или сколько там раз fork() вызвался). Это из общих соображений.
Сюда еще можно подшить нарушение "структурного подхода" с одной точкой входа и одним выходом. В случае fork() выхода не будет, скорее всего будет вызов exit().
Все это оставляет впечатление от fork() как от шортката размером с хак :)

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: fork()
« Ответ #4 : Май 31, 2012, 09:42:37 pm »
Есть ли какое-то оправдание существования сабжа, кроме "дешево и сердито"?
Наверно, стоит поискать в архивах. Юникс делался в те времена, когда такие вещи было принято аргументировать. Зачастую, письменно. Возможно, Томпсон где-нибудь это описывал.