Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Kazantsev Alexey                     2:5020/400     23 Jul 2001  15:16:44
 To : All
 Subject : Re: Что бы это значило?
 -------------------------------------------------------------------------------- 
 
 r.RU> <9j8aq8$hf4$1@hq.mark-itt.ru> <9j8ese$9ll$2@Ft1.Ftcenter.RU>
 r.RU> <9j8icv$8ip$1@hq.mark-itt.ru> <3903266093@spider.ncc.macomnet.ru>
 r.RU> <9j9534$t2n$1@hq.mark-itt.ru> <1160199428@spider.ncc.macomnet.ru>
 r.RU> <9jglk6$9sk$1@hq.mark-itt.ru> <GmS67.34883$M6.8678878@news.rt.ru>
 
 From: "Kazantsev Alexey" <kazav@vngdu.udmurtneft.ru>
 
 Однако, здравствуйте!
 
 > Как это не выходя? Вообще-то виндузовый планировщик переключает потоки, а
 
 не
 
 > процессы. У одних процессов один поток, у других несколько, а шедулер
 > переключает именно потоки. И состояние потока (т.н. контекст) сохраняется
 
 не
 
 > "в рамках процесса", а за рамками, вне -- в планировщике, i.e. в ядре (в
 > микроядре, если речь об NT).
 
 При переключении между нитями одного процесса, нет необходимости сохранять
 контекст самого процесса, при переключении между нитями разных процессов -
 другое дело. Это, в общем-то, я и имел ввиду, говоря о переключении между
 нитями. :) Сори, если, кого-то запутал.
 
 > Вообще-то основная выгода потоков -- в экономии памяти. А насчет
 
 скорости --
 
 > это вопрос. Тесты проводились?
 
 Тесты? Безусловно. Hо даже не проводя никаких тестов можно назвать причины
 по которым взаимодействующие нити обгоняют взаимодействующие процессы.
 
 1. Hити работающие в одном процессе имеют доступ к адресному пространству
 всего процесса, следовательно могут работать с одними областями памяти. Hити
 работающие в разных процессах, разумеется, нет. Для этого приходится
 пользоваться различными IPC, а это всегда влияет на скорость не в лучшую
 сторону.
 2. Переключение между нитями, одного процесса, всегда легче для системы, чем
 переключение между нитями разных процессов (об этом уже говорилось). Об этом
 хорошо написано в книге "Системное программирование в Windows 2000". Можно
 еще и в руководство к MSSQL заглянуть, там тоже этот вопрос не обошли
 стороной.
 
 Hо не смотря на все эти плюсы, есть масса приложений под Win32, в которых
 применяется меж-процессное взаимодействие, опционально, для повышения
 безопасности всего приложения/процесса. Hапример IIS. Если я написал
 ISAPI-модуль к нему (в виде отдельной DLL, которая исполняется в контексте
 процесса) и написал его криво, то запросто могу завалить Web-сервер. Чтоб
 этого избежать, в IIS есть режим, т.н. безопасного запуска, когда IIS
 запускает процесс заглушку а уже в нем запускает ISAPI модуль. Похожая
 техника применяется и в InterBase SQL server, для реализации UDF (функций
 определенных пользователем).
 
 P.S.
 Я тоже считаю, что обсуждение уже вышло за рамки темы.
 ________________________________________
 Казанцев Алексей (kazav@vngdu.udmurtneft.ru)
 --- ifmail v.2.15dev5
  * Origin: Communication Company MARK-ITT (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Что бы это значило?   Kazantsev Alexey   23 Jul 2001 12:04:31 
 Re: Что бы это значило?   Nick Gazaloff   23 Jul 2001 13:47:47 
 Re: Что бы это значило?   Nick Gazaloff   23 Jul 2001 14:20:10 
 Re: Что бы это значило?   Kazantsev Alexey   23 Jul 2001 15:16:44 
Архивное /ru.linux/8886db22fc6c.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional