🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #267737

Re: Ciemna strona C++

#267737
From: Seweryn Habdank-Wojewódzki
Date: Thu, 15 Nov 2007 22:37
44 lines
3308 bytes
Witam

Maciej Sobczak wrote:

> oraz w systemach sterowania i RT. 

Z kolei w systemach RT ważne jest bezpieczeństwo, nie wiem czy procesy nie
dają lepszych gwarancji niż wątki. Np. mamy dwa sterowniki, jeden alarmowy,
który działa odcinając lub uruchamiając urządzenia do obsługi awarii. Drugi
jakiś wypasiasty sterownik, który robi to czy tamto, optymalizując,
adaptując, ... whatever. 
Teraz kiedy niechcący coś się pokopie w sterowniku wypasiastym, to
bezlitośnie zabijamy gada i koniec. Ale wiemy, że przynajmniej alarmowy
działa i on gwarantuje minimum zabezpieczeń. Jakby to były wątki jednego
procesu, to co? 

W sterownikach też ma sens część rzeczy separować w postaci osobnych
procesów, dopiero obsługę IO osadać na wątkach. Tak aby algorytmy nie
przeszkadzały w odbiorze informacji z zewnątrz i w wysyłaniu sterowania.
Ale tych watków nie będzie nie wiadomo ile. 

Np. Pewna firma chemiczna ma reaktory i tam mniej więcej występuje ok.
500-1000 zmiennych procesowych. Efektywnych sterowań "jest" gdzieś mniej
więcej 100 (mam nieaktualne dane). Czyli tych wątków też nie będzie
niewiadomo ile. Bo znowu bezsensu jest ustawiać na każdy czujnik jeden
wątek, również bezsensu jest ustawiać na każdy punkt sterowania jeden
wątek. 
Aktuatory i tak muszą mieć podstawową funkcjonalność zadaną na miejscu. Po
co więc ustalać aby jakiś wątek wykonywał tylko jedną banalną funkcję np.
set_flow(0.5). I tak set_flow(0.5) wysyła informację do aktuatora, który
nie zależnie od głównego sterownika ustawia przepływ półproduktu na 50%.
Tutaj rola sterownika sprowadza się do wysłania komunikatu
("set_flow",0.5). A samo wysyłanie komunikatów też lepiej grupować w
kolejki komunikatów, niż stosować zasadę obiekt+komunikat per wątek.

> W serwerach i systemach obliczeniowych nie jest to takie oczywiste.

To jest bardzo nieoczywiste :-).

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Technical Details
Message-ID: <fhigu2$109$1@news.vectranet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.pl!not-for-mail
References: <fghsb4$kpq$1@news.dialog.net.pl> <20071106073039.433f4934@Vorago> <618565031.20071107113041@pkierski.net> <fgtb6j$nur$1@news.vectranet.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fhag70$6kk$1@atlantis.news.tpi.pl> <1194962417.690643.172410@v3g2000hsg.googlegroups.com> <1195078411.24656.6.camel@qrnik> <fhhlii$cg1$1@bozon2.softax.pl> <fhhrds$lld$1@inews.gazeta.pl> <fhhr7h$b9d$1@news.vectranet.pl> <fhhu9d$44d$1@inews.gazeta.pl> <ad1773e3-c833-4094-9e1b-4de6470742d5@b32g2000hsa.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.pl!not-for-mail
From: Seweryn Habdank-Wojewódzki <shw_mail@wp.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Ciemna strona C++
Date: Thu, 15 Nov 2007 23:37:52 +0100
Organization: VectraNET - http://www.vectranet.pl
Lines: 45
Message-ID: <fhigu2$109$1@news.vectranet.pl>
References: <fghsb4$kpq$1@news.dialog.net.pl> <20071106073039.433f4934@Vorago> <618565031.20071107113041@pkierski.net> <fgtb6j$nur$1@news.vectranet.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fhag70$6kk$1@atlantis.news.tpi.pl> <1194962417.690643.172410@v3g2000hsg.googlegroups.com> <1195078411.24656.6.camel@qrnik> <fhhlii$cg1$1@bozon2.softax.pl> <fhhrds$lld$1@inews.gazeta.pl> <fhhr7h$b9d$1@news.vectranet.pl> <fhhu9d$44d$1@inews.gazeta.pl> <ad1773e3-c833-4094-9e1b-4de6470742d5@b32g2000hsa.googlegroups.com>
Reply-To: shw_mail@wp.pl
NNTP-Posting-Host: 078088193244.osw.vectranet.pl
Mime-Version: 1.0
X-Trace: news.vectranet.pl 1195165442 1033 78.88.193.244 (15 Nov 2007 22:24:02 GMT)
X-Complaints-To: usenet@news.vectranet.pl
NNTP-Posting-Date: Thu, 15 Nov 2007 22:24:02 +0000 (UTC)
User-Agent: KNode/0.10.5
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit