Есть ли будущее у DELPHI?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.43] |
|
|
Правила раздела:
| Страницы: (245) « Первая ... 56 57 [58] 59 60 ... 244 245 ( Перейти к последнему сообщению ) |
Есть ли будущее у DELPHI?
|
Сообщ.
#856
,
|
|
|
|
Цитата korvin @ Не согласен я. При чем тут оптимизация, если во многих случаях нитки юзают одно и то же ядро(процессора)? Думаю они также просто являются одним из средств организации архитектуры приложения. Я о том, что отказ от процессов в пользу ниток связан с производительностью. Ибо вся разница заключается в доступе к общему адресному пространству. Естественно, если речь идет об ОС, где порождение дочерних процессов является нормальной ситуацией. |
|
Сообщ.
#857
,
|
|
|
|
Между нитками тоже бывает необходимо общение. Например как каналы в Limbo/Go. Или это уже не совсем нитки?
|
|
Сообщ.
#858
,
|
|
|
|
Цитата korvin @ Между нитками тоже бывает необходимо общение. Например как каналы в Limbo/Go. Или это уже не совсем нитки? С точки зрения принятой в большинстве ОС терминологии это не "системные" нитки, хотя могут быть через них реализованы. В разных областях терминология естественным образом отличается И в том же Go они даже нитками и не называются. |
|
Сообщ.
#859
,
|
|
|
|
Цитата D_KEY @ С точки зрения принятой в большинстве ОС терминологии это не "системные" нитки, хотя могут быть через них реализованы. В разных областях терминология естественным образом отличается И в том же Go они даже нитками и не называются. Общепринятый способ разделения такой: процессы не имеют общей памяти, нити могут иметь общую память (и исполняются в области одного процесса). Ты же читал "Анатомию параллелизма", там проведена вполне наглядная аналогия с несколькими бассейнами. Добавлено Цитата D_KEY @ С точки зрения принятой в большинстве ОС терминологии это не "системные" нитки, хотя могут быть через них реализованы. В разных областях терминология естественным образом отличается И в том же Go они даже нитками и не называются. Не, ну разница между OS-threads и Soft-threads тут не существенна. В том смысле, что, например OS-threads почти бессмысленны, а производительность soft-threads зависит от реализации. Добавлено т.е. я к тому, что Цитата нитки - это в первую очередь средство для оптимизации — не совсем обоснованное утверждение. |
|
Сообщ.
#860
,
|
|
|
|
Цитата korvin @ Общепринятый способ разделения такой: процессы не имеют общей памяти, нити могут иметь общую память (и исполняются в области одного процесса). Так я это и сказал. И именно поэтому: Цитата нитки - это в первую очередь средство для оптимизации Ибо общее адресное пространство имеет только одно преимущество для обмена данными - высокое быстродействие. |
|
Сообщ.
#861
,
|
|
|
|
Цитата D_KEY @ А шо, разделяемой памяти под линуксом у процессов быть не может? Я о том, что отказ от процессов в пользу ниток связан с производительностью. Ибо вся разница заключается в доступе к общему адресному пространству. Естественно, если речь идет об ОС, где порождение дочерних процессов является нормальной ситуацией. |
|
Сообщ.
#862
,
|
|
|
|
Цитата D_KEY @ Так я это и сказал. И именно поэтому: Цитата нитки - это в первую очередь средство для оптимизации Ибо общее адресное пространство имеет только одно преимущество для обмена данными - высокое быстродействие. Это не "обмен данными", а просто общие read-only данные. Какой тут обмен? И какая тут оптимизация? Добавлено Цитата Повстанець @ А шо, разделяемой памяти под линуксом у процессов быть не может? ХЗ как там в линуксе, но у процессов в принципе не может и не должно быть разделяемой памяти, на то они и процессы. |
|
Сообщ.
#863
,
|
|
|
|
Цитата Повстанець @ Цитата D_KEY @ А шо, разделяемой памяти под линуксом у процессов быть не может?Я о том, что отказ от процессов в пользу ниток связан с производительностью. Ибо вся разница заключается в доступе к общему адресному пространству. Естественно, если речь идет об ОС, где порождение дочерних процессов является нормальной ситуацией. Процессы память не разделяют, но естественно есть специальный механизм shared memory. Добавлено Цитата korvin @ Это не "обмен данными", а просто общие read-only данные. Ты сейчас о чем? Откуда взялось readonly? И общий доступ - это так же средство обмена. Кто-то записал, кто-то прочитал. |
|
Сообщ.
#864
,
|
|
|
|
Цитата D_KEY @ Цитата korvin @ Это не "обмен данными", а просто общие read-only данные. Ты сейчас о чем? Откуда взялось readonly? И общий доступ - это так же средство обмена. Кто-то записал, кто-то прочитал. Только в этом случае у нас куча тормозящих факторов: блокируемые чтение/запись, определение корректного режима доступа, определение владельца этой памяти. Нафига этот геморрой? |
|
Сообщ.
#865
,
|
|
|
|
Цитата korvin @ ХЗ как там в линуксе, но у процессов в принципе не может и не должно быть разделяемой памяти, на то они и процессы. Ты все-таки не забывай, что речь о системном API. |
|
Сообщ.
#866
,
|
|
|
|
Цитата D_KEY @ Цитата korvin @ ХЗ как там в линуксе, но у процессов в принципе не может и не должно быть разделяемой памяти, на то они и процессы. Ты все-таки не забывай, что речь о системном API. И что? Системном API какой ОС? Вот в QNX, например, процессы не имеют общей памяти. Добавлено А ты не забывай, что "общая память" усиливает связность =) |
|
Сообщ.
#867
,
|
|
|
|
Цитата korvin @ Да ладно... ХЗ как там в линуксе, но у процессов в принципе не может и не должно быть разделяемой памяти, на то они и процессы. Цитата korvin @ Ну дык если тебе собственно связность процессов и нужна. А ты не забывай, что "общая память" усиливает связность =) |
|
Сообщ.
#868
,
|
|
|
|
Цитата Повстанець @ Да ладно... Да, я вполне серьезно =) Цитата Повстанець @ Ну дык если тебе собственно связность процессов и нужна. Для этого есть IPC, иначе как ты собрался регулировать корректность использования разделяемой памяти разными процессами, которые запросто могут быть разными приложениями с разными менеджерами памяти: с/без GC и т.д.? Добавлено И да, о какой (большей, чем предоставляемой ОС) связности ты говоришь между разными приложениями? Продемонстрируй приложение, взаимодействующее, например, с Photoshop, MS Word, Apache, Oracle DB Server, Mongo DB, SBCL, JVM с помощью этой вашей shared memory? |
|
Сообщ.
#869
,
|
|
|
|
Цитата korvin @ Ну вообще то разделяемая память -- часть IPC.Для этого есть IPC Цитата korvin @ Ну.. как бы, есть правила устанавливаемые операционной системой с одной стороны. И создателем сервера с другой стороны. Вот опираешся на эти правила и смотришь как это будет выглядеть конкретно в твоём случае. иначе как ты собрался регулировать корректность использования разделяемой памяти разными процессами, которые запросто могут быть разными приложениями с разными менеджерами памяти: с/без GC и т.д.? Добавлено korvin, ты подумай о том, что shared memory, это тот же pipe, только с произвольным доступом, а не потоковым. |
|
Сообщ.
#870
,
|
|
|
|
Цитата Повстанець @ korvin, ты подумай о том, что shared memory, это тот же pipe, только с произвольным доступом, а не потоковым. Что значит "с произвольным"? Что будет в случае одновременной записи в один и тот же участок? И, самое главное, какую пользу дает эта абстракция, по сравнению с обменом сообщениями? |