The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Проект по добавлению поддержки системных вызовов Windows NT ..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для сортировки сообщений в нити по дате нажмите "Сортировка по времени, UBB".
. "Проект по добавлению поддержки системных вызовов Windows NT " +2 +/
Сообщение от nickelodeon (?), 29-Май-09, 14:08 
>>или вы не различаете fork(), CreateProcess() и последовательность fork()/exec()?
>
>Многоуважаемый оппонент умеет читать? Я нигде не спорил с Неббет'ом, я сказал
>о том, что подходы к распараллеливанию кода в винде и юниксах
>разные. И привел пример с Google Сhrome' ом и PostgreSQL, которые
>прекрасно форкаются несмотря на отсутствие fork в винде, там свои инструменты,
>обеспечивающие тот же функционал. Так что претензии насчет форка по большому
>счету сводятся к "потому что виндовс это не юникс", не более
>того.

Хочу отметить, что разница в механизмах и реализациях огромна: fork() в Linux порождает новый дескриптор процесса, вся остальная память работает по принципу COW (copy on write). Таким образом, при вызове fork() выделяется и инициализируется 2 килобайта памяти для нового дескриптора процесса. Остальные страницы памяти копируются только, если одна из копий программы изменяет в ней данные. Применение - создание (и особенно динамическое расширение) пула процессов веб сервера.

В Windows, насколько я знаю, порождение нового процесса - это каждый раз загрузка объектного кода, выделение стека, кучи, запсук приложения из main().

Я не утверждаю, что является говном, а что нет, но механизм порождения процесса в Linux гораздо гибче, чем в Windows и в целом гибче, чем в POSIX. Если страшно интересно - почитайте книгу "Разработка ядра Linux" by Robert Love.

Успехов.


Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Проект по добавлению поддержки системных вызовов Windows NT ..., opennews, 28-Май-09, 17:09  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру