|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Lev Serebryakov 2:5030/661 05 Jul 2001 02:09:17 To : vitus@ice.ru Subject : thread or fork ? --------------------------------------------------------------------------------
[Answer on] [vitus@ice.ru wrote to Vladimir Dozen at [04 Jul 01 13:27]]:
v> Обширность интерфейса - не признак гибкости, а признак каши
v> в мозгах изобретателя оного интерфейса.
v> Вот у Кернигана и иже с ним каши в мозгах не было,
v> они и изобрели несколько ортогональных вызовов
v> fork,
v> exec,
v> dup,
v> pipe
v> с минимальным числом параметров каждый. А гибкость достигается
v> за счет ортогональности, т.к. общее число вариантов равно
v> произведению числа вариантов в каждой из участвующих функций.
v> Сюда еще надо mmap добавить, но его делали позже, и он уже явно
v> сложноват.
И где тут, в этой ортогональности, мьютексы ивенты и семафоры? Появились в
SysV IPC, но на них нельзя делать select(), что их очень чсильно обесценивает.
Потом, threads и processes тоже должны быть ортогональны. Process защищает
память и владеет объеками ядра (файлами, семафорами, thread'ами, etc.), а thread
владеет стеком и исполняется. Если бы не стек треда -- ортогональность была бы
полная. И fork() был бы возможен, где его удобнее применять (далеко не везде,
между прочим).
Remember, pain is part of pleasure, vitus@ice.ru.
... Я знаю, как выглядит звук,/Что делает с миром движение рук...
--- I try to be as sharp as I can
* Origin: Cave of Black Lion (2:5030/661)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/22853b43a2c1.html, оценка из 5, голосов 10
|