From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 10 Sep 2004 18:07:47 +0400 From: =?koi8-r?B?5MXOydMg883J0s7P1w==?= To: analisys@quality.s2.ru, ALT Linux Sisyphus discussion list Subject: Re: [sisyphus] =?koi8-r?B?UmU668HLINXTy8/S?= =?koi8-r?B?ydTYINLBws/U1SDTINDP1M/Lwc3JPw==?= Message-ID: <20040910140747.GE23870@workstation> Mail-Followup-To: =?koi8-r?B?5MXOydMg883J0s7P1w==?= , analisys@quality.s2.ru, ALT Linux Sisyphus discussion list References: <20040910025455.GF16262@workstation> <013701c4972e$3c546470$4d0010ac@aprcity.com> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <013701c4972e$3c546470$4d0010ac@aprcity.com> Cc: X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Sep 2004 19:58:23 -0000 Archived-At: List-Archive: On Fri, Sep 10, 2004 at 04:03:49PM +0400, Boronin Sergey wrote: BS> А можно в двух словах о концепциях, которые лежат в основе этих BS> технологий, т.е. на чем основана их работа и как реализуется BS> параллельность выполнения? BS> Если с помощью fork() то это медленнее, а пулл процессов будет отъедать BS> немало оперативки (гораздо больше чем потоки в процессах). _Параллельность_ -- никак. Ибо на 1-процессорной машине её быть не может вообще. Идея aio -- процесс говорит "читай/пиши вон то во-о-он туда, как выполнишь скажешь", после чего занимается другими делами (например говорит то же самое для другого потока данных). Таким образом 1 тред может обрабатывать очень большое количество одновременных потоков ввода/вывода (что критично, например, на тех же web-серверах). BS> Кроме того, потоки удобны тем, что используют единое адресное BS> пространство, BS> Что требует конечно известной аккуратности и внимательности, но и BS> позволяет сделать код проще, логику его работы прозрачнее, да и памяти BS> по сравнению с fork() ест не в пример меньше. Естественно. У fork() есть только одно преимущество -- изолящия, в том числе в плане безопасности. Поэтому один из вариантов работы системы -- один раз форкнуть несколько процессов (с меньшими привелегиями), а потом просто перекидывать им handle'ы (специальными сообщениями) уже после обработки авторизации. Но это для тех, кому надёжность важнее скорости (считаные проценты на этом но теряются). Поэтому можно создавать пул тредов (чуть больше количества процессоров), каждый из которых будет заниматься обработкой части хэндлов. -- С уважением, Денис http://freesource.info