Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Processes vs Threads, одно и тоже или нет? 
:(
    Опции темы
Sun
Дата 23.12.2006, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 3
Всего: 48



Возник тут у нас спор с VectorMan по поводу сабжа 
Цитата(VectorMan @  23.12.2006,  17:55 Найти цитируемый пост)
Просто в nix единица выполнения - процесс,
а в win  - поток, процесс - это просто группа потоков.

какая разница как это называть? суть одна  smile 


Есть ли разница?


--------------------
Account removed
PM MAIL   Вверх
VectorMan
Дата 23.12.2006, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antihero
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 9.4.2006

Репутация: нет
Всего: 4



Заметил неточность в своих словах: "процесс - это просто группа потоков" относилось именно к Винде

Многозадачные ОС переключают процессор с одной задачи на другую (типа preemptive multitasking)
но в win такие задачи называются потоками, а в nix - процессами.

Цитата(Sun)

Суть разная. Процесс - это не группа потоков. Это отдельная сущность. Архитектурная организация у них разная, способы взаимодействи и уровни изоляции.


что касается того, что от чего и как изолированно - это уже часности, разделять страницы памяти можно и между процессами, не говоря уж про наследование дескрипторов/хэндлов (в nix - это по дефолту, в win - один из параметров функции CreateProcess)

Это сообщение отредактировал(а) VectorMan - 23.12.2006, 22:48
PM   Вверх
Gregorian
Дата 23.12.2006, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 18.12.2006

Репутация: 1
Всего: 2



Потоки существуют в контексте процесса, имеют в нем своё адресное пространство и смежное пространство общих данных. Плюс к этому в unix процессы могут передавать информацию через каналы (не путать с сокетами). Под многопоточность в unix понимают клонирование процессов, что занимает больше памяти.
--------------------
Вступил на путь доморощенного жабиста дилетанта! 
PM MAIL   Вверх
SparF
Дата 24.12.2006, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 14.9.2006
Где: Санкт-Петербург/М осква

Репутация: 2
Всего: 18



Цитата(Gregorian @  23.12.2006,  23:17 Найти цитируемый пост)
Под многопоточность в unix понимают клонирование процессов, что занимает больше памяти.

чего бы это вдруг????

Многопоточность

Другой вопрос в том, что в том же Linux достаточно интересная реализация потоков: поток представляет собой просто специальный тип процесса. Просто эти процессы делят между собой некоторые ресурсы. К примеру память у них - общая. В отличии от Linux той же винде, солярисе, к примеру, есть явные средства поддержки потоков.

Добавлено @ 01:16 
Вообще сам сабж странный.  Несколько неразумно спорить по поводу "Processes vs Threads" - одно ли это, или абс разные понятия. Если взять теорию операционных систем - то несомненно понятия разные, а вот если смотреть на реализацию, то где-то (Linux) разница не так заметна. Что же касается того, как работает планировщик при распределении процессорного времени, то сколько материалов не читал по данной теме  - везде процессорные ресурсы делились между потоками, а не между процессами и это логично.


--------------------
Люди, не пользуйтесь пиратским программным обеспечением - переходите на Linux!
PM MAIL ICQ   Вверх
Dude03
Дата 24.12.2006, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 28.4.2006

Репутация: нет
Всего: 6



Цитата(Gregorian @  23.12.2006,  23:17 Найти цитируемый пост)
 Плюс к этому в unix процессы могут передавать информацию через каналы (не путать с сокетами)

А в винде что нету пайпов? MSDN -> CreatePipe и дальше все остальные функции полезут smile (нравится мне этот смайл) 
PM MAIL   Вверх
MAKCim
Дата 24.12.2006, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата

Потоки существуют в контексте процесса, имеют в нем своё адресное пространство и смежное пространство общих данных. 

linuxthread создается через сlone()
linuxthread - процесс, который делит с родителем: VM (CLONE_VM), FS (CLONE_FS), FILES (CLONE_FILES), SIGHAND (CLONE_SIGHAND)
т. е адресное пространство у них общее
Цитата

клонирование процессов, что занимает больше памяти. 

слышал про COW (Copy On Write)?

Это сообщение отредактировал(а) MAKCim - 24.12.2006, 11:33


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Hidrag
Дата 24.12.2006, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: нет
Всего: 25



Это что получается, если я на Java напишу многопоточное приложение оно на разных платформах поразному работать будет?


--------------------
user posted image
PM WWW ICQ   Вверх
Sun
Дата 24.12.2006, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 3
Всего: 48



Цитата(Hidrag @  24.12.2006,  20:18 Найти цитируемый пост)
Это что получается, если я на Java напишу многопоточное приложение оно на разных платформах поразному работать будет?

Работать оно будет одинаково с точки зрения пользователя, но в разных ОС оно конечно будет выполняться по-разному, с точки зрения системных  процессов. В Linux и Windows многопоточное приложение будет жить в одном процессе, тогда как на FreeBSD это будет несколько процессов.


--------------------
Account removed
PM MAIL   Вверх
Hidrag
Дата 25.12.2006, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: нет
Всего: 25



Хм... а косяков не возникнет на фряхе с тем что в программе эти потоки используют общие ресурсы, переменные, рисуют в ГУИ?


--------------------
user posted image
PM WWW ICQ   Вверх
Sun
Дата 25.12.2006, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 3
Всего: 48



Цитата(Hidrag @ 24.12.2006,  21:30)
Хм... а косяков не возникнет на фряхе с тем что в программе эти потоки используют общие ресурсы, переменные, рисуют в ГУИ?

Ну строго говоря фряха не сертифицирована для работы с Java. Последняя версия которая была сертифицирована, если не ошибаюсь - Java 1.3. Все остальные джавы - это просто порт с Linux. Коллизии конечно возникают, не без этого. Но вроде как-то там джава живёт.

Ещё инетерсно что в этом плане с MacOS. Она ведь построена на ядре фряхи. Правда они перепилили там всё вдоль и поперек. По крайней мере джава, судя по слухам, работает лучше чем в винде  smile 


--------------------
Account removed
PM MAIL   Вверх
MAKCim
Дата 25.12.2006, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата

В Linux многопоточное приложение будет жить в одном процессе

смотря что используем: Linuxthreads или NPTL


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.