The OpenNET Project / Index page

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

pthreads on Cobalt RaQ


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
 From : Vladimir A. Butenko                 2:5020/400      05 Dec 99  02:21:04 
 Subj : Re: pthreads on Cobalt RaQ                                              
________________________________________________________________________________
From: butenko@stalker.com (Vladimir A. Butenko)

In article <82bfi6$crn$1@alx.private>, Alex Korchmar
<Alex.Korchmar@p65.f423.n5020.z2.fidonet.org> wrote:

> >> нормально работали только митовские). А до того единственный юникс с 
> >> тредами был - соляра.
> 
>  VAB> Hет. D/Unix. IRIX. То есть - почти все. (HPUX and AIX - попозже). Всякие
> мне показалось, или "попозже" получилось - позже, чем у фрюниксов.

У "фрюниксов" оно только в Linux-е работает, да и то порою - "странновато".
 
> >> P.S. причем двухпроцессорных кобальтов не бывает в принципе. 
> 
>  VAB> Какая связь меж многопроцессорностью и малтитредовостью?! Hу и
> малтитредовая задача на SMP-машине - позволяет распределить нагрузку на
> халяву. Hа однопроцессорной - попусту грузит планировщик.
> Hу и нафига? 
> Или вы хотите сказать, что возиться с синхронизацией этих тредов - проще,
> чем пресловутый конечный автомат нарисовать? Про отладку лучше уж вообще
> не заикаться.

а) про отладку многопроцессных систем (на чем Вы их делаете - на процессах
или тредах или отдельных машинах - не важно) - про это отладку заикаться
не надо только тогда, когда у Вас HЕТУ многопроцессных задач (а это вряд
ли). А если он у Вас есть, но взаимодействие меж ними примитивное
(stdin-stdout) - ну так отладка просто проще - но она все равно есть. Беда
(и не беда) в том, что взаимодействие между процессами отнюдь не всегда
сводится к примитивному унихному "filtering", под который был заточен Уних
25 лет назад.

б) по сравнению с многопроцессными системами многотредовые предоставляют:
   1. значительно больший набор методов взаимодействия
   2. значительно большую скорость этого взаимодействия.

   Обе причины позволяют на малтитредовых системах реализовывать то, что
на многопроцессных системах ТОЖЕ возможно, но получается настолько
уродливо и медленно, что никто этим (почти) не занимается.

Основная разница между мнопроцессными и многотредовыми реализациями -
доступ к общей памяти. Если у Вас многопроцессный комплекс вынужден
использовать общую память, полученную через ОС, или эмулировать ее на
общем файле - то это та же многотредовая система, просто сделанная через
задницу.

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

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

Этими другими механизмами пользуются по трем причинам:

а) задача слишком проста, и взаимодействие мало или просто;
б) задача достаточно сложна, но настоящего механизма малтитрединга в
системе нету.
в) задача достаточно сложна, механизм малтитрединга в системе есть, но
писатель программы не умеет им пользоваться, потому как в книжках, которые
он читал 10 лет назад, работа в малтитредовой среде была не описана.



> > Alex

-- 
Vladimir Butenko
Stalker Software, Inc.
--- ifmail v.2.14dev3
 * Origin: Stalker Software, Inc. (2:5020/400)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>



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

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