Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт апр 23, 2024 22:16

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: линуксевый fork под виндой
СообщениеДобавлено: Ср дек 17, 2008 14:33 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
может кто встречал, как реализуются под виндой сопрограммы?
То есть очень интересно было бы пример найти, как реализуется запуск копии текущего процесса под виндой с возможностью им управлять из запускаемого процесса (в противовес легким тредам).
Возможно есть какая-нить виндошная форт-система, которая так умеет делать?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 19, 2008 21:23 
Не в сети
Аватара пользователя

Зарегистрирован: Вт сен 11, 2007 11:07
Сообщения: 187
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
сопрограммы? это к винде никакого отношения не имеет (если не подменять значение термина).

а вот сделать fork() под виндой - никак. если драйвер только писать..... или попробовать подсистему
posix заюзать. всё, что в винде есть - это обычный IPC и API синхронизации (внутри процесса или
между процессами - это уж как душе будет угодно).

(http://msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms686353(VS.85).aspx)

ничего бОльшего, чем CreateProcess() под виндой нету.
а если всё-таки юзать posix, то будет затруднён доступ к win32
http://msdn.microsoft.com/en-us/library/y23kc048.aspx

так что, простейший вариант - самостоятельная эмуляция (если свой собственный код специальным
образом организовывать, но тут тоже есть нюансы, например, флаг PAGE_WRITECOPY есть только под NT).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 19, 2008 21:57 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
вобщем получается, что надо просто запускать повторно исполнимый файл и налаживать связь с помощью IPC?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 22, 2008 14:02 
Не в сети
Аватара пользователя

Зарегистрирован: Вт сен 11, 2007 11:07
Сообщения: 187
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
в общем - да. используя передачу событий, блок разделяемой памяти и т.п. (а в худшем случае - реализовав
всю логику взаимодействия механизмами IPC). вот только.... в win32 весьма высока цена создания
процесса, создания/открытия файла (именованного объекта).

не зря микрософтовцы рекомендуют держать файлы открытыми максимально долго, агрегируя по возможности
бОльшее количество операций записи/чтения между открытием/закрытием файла, запускать сразу требуемое
количество процессов и вешать их в состояние ожидания, с тем, чтобы потом разбудить один из них и выбрать
нужный... имо, лобовая реализация быстрой не будет. только если с целью портирования или кросс-отладки.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 27, 2008 17:50 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
garbler писал(а):
в общем - да. используя передачу событий, блок разделяемой памяти и т.п. (а в худшем случае - реализовав
всю логику взаимодействия механизмами IPC). вот только.... в win32 весьма высока цена создания
процесса, создания/открытия файла (именованного объекта).

это понятно, но когда не надо печь новые процессы постоянно - терпимо.
Зато выигрыш ощутим в надежности (значительно сложнее убить породивший процесс не туда что-то записав).
Надеялся, что уже есть что-то подобное 8(

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB