🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #5011

Re: Glos na temat zasad dyskusji naukowej

#5011
From: Kalafiorczyk
Date: Tue, 23 Feb 1999 10:29
97 lines
5306 bytes
lewando@ibm.net wrote:
> Jednak, przynajmniej jak dla mnie jest to smietnik
> historii.Przypuscmy, ze Gmina Paczkow Dolny z powodu braku
> komunikacji ze Stolica i braku funduszy na autobus postanowila
> zafundowac sobie dylizans. Nowoczesny, z aerodynamiczna buda
> i hamulcami tarczowymi. Oczywiscie, problemy komunikacyjne
> Gminy zostana przynajmniej czesciowo eozwiazane, nie zmieni to
> jednak mojego pogladu na fakt ze dylizans to jest smietnik historii.

Na powyzsza historyjke mam tylko jedno do powiedzenia:
"Analogia nie jest metoda naukowa".

> 1. Wedle mojej najlepszej wiedzy Python nie ma odsmiecacza,

Nieporozumienie taksonomiczne. Pan ma na mysli implementacje
z odsmiecaczem i bez odsmiecacza. Ja mam (i mialem) na mysli
jezyki z automatycznym (niejawnym) zarzadzaniem pamiecia w
porownaniu z jezykami o recznym (lub jawnym) zarzadzaniem
pamiecia.

Z punktu widzenia programisty w Pythonie, ma on automatyczne
zarzadzanie pamiecia. Obecna implementacja tegoz automatycznego
zarzadzania pamiecia oparta jest o liczenie odwolan. Samo jednak
liczenie odwolan nie jest jawne dla programisty w Pythonie.
Jest ono jawne dla programisty w C(++), ktory implementuje
nowy typ podstawowy w jako rozszerzenie.

> 2. Rzeczywiscie, COM ma reference counting. Ale nie z milosci do
> tegoz tylko z powodu takiego ze to jest jedyne dobre rozwiazanie
> dla komponent dzialajacych w nie znanym z gory srodowisku.

To samo so powyzej. O ile sie nie myle, to liczenie odwolan
nie jest jawne dla uzytkownika komponentu. Przynajmniej jest
to prawda dla prostych komponentow, a tylko takich uzywalem.
Z cala pownoscia jest ono widoczne dla autora komponentu.

> Ja bardzo przepraszam, to znaczy jak one dzialaja? Nadswietlnie?
> Telepatycznie? W koncu odsmiecacz to tez program i niezaleznie
> od tego jaki wykonuje algorytm, aby sie wykonal musi uzyc pare
> cykli CPU. W czasie jak te cykle uzywa to program wlasciwy sie
> nie wykonuje. Wszystko mi jedno, czy przez pol godziny czy
> przez pol milisekundy. ZATRZYMUJE SIE I JUZ! Najgorsze ze nie
> wiadomo na jak dlugo.

Na poczatku mialem zamiar podac Panu konkretne przyklady
systemow z odsmiecaniem w czasie rzeczywistym. Niestety
nie bede mogl tego zrobic w ciagu najblizszych tygodni.
Pozostaje mi wiec tylko krotkie opisanie dwu idei,
z ktorymi sie spotkalem w przeszlosci.

Zasadnicza idea obu systemow, jest odwrocenie relacji
pomiedzy programem glownym a odsmiecaczem. Konwencjonalnie,
odsmiecacz przerywa dzialanie programu glownego jesli nie
mozna dostarczyc nowej pamieci. W systemach czasu rzeczywistego
stosuje sie odsmiecacz, ktory dziala w tle, i jest przerywany
przez program glowny. Pasuje to bardzo dobrze do typowych
zastosowan, gdzie wszystkei krytyczne akcje sterowane sa
przerwaniami.

W projektowaniu asystemow czasu rzeczywistego poswieca
sie duzo uwagi na przydzielanie zasobow. Najwazniejszym
zasobem jest czas procesora. Drugim jest obszar pamieci
przeznaczony na stos sprzetowy. Nastepnym moze byc pamiec
stertowa. Dla kazdego z tych zasobow jest okreslony
budzet calkowity, ktory rozdziela sie wedle priorytetow
poszczegolnych zadan obslugujacych zdarzenia w czasie
rzeczywistym.

1) System operacyjny dla bardzo skomplikowanego routera-
gatewaya sieciowego. Zarzadzanie pamiecia na bufory
pakietow bylo oparte o 'buddy system'. W tej sytuacji
znana byla maksymalna liczba operacji prowadzaca do
zidentyfikowania, ze nie ma wystarczajaco duzo pamieci.
Poszukiwanie wolnej pamieci w 'buddy system' jest
rownowazne przeszukiwaniu idealnie wywazonego drzewa
binarnego o z gory znanej wysokosci. Pakiet, dla ktorego
zabraklo pamieci byl odrzucany. Odsmiecacz pracowal
jako zadanie o najnizszym priorytecie (idle task).
Caly router/gateway nigdy nie pracowal na 100% obciazenia,
gorna granica byla wyznaczona przepustowoscia sieci.

2) System czasu rzeczywistego ogolnego przeznacznia
napisany przy uzyciu podzbioru C++. Odsmiecacz mial
zmienny priorytet. Kazde zadanie obsugi zdarzen mialo
okreslony minimum potrzebej pamieci stertowej. Jesli
ilosc potrzebnej pamieci dla zadan o okreslonym priorytecie
byla mniejsza od wymaganego minimum, to odsmiecach dostawal
priorytet o jeden wyzszy od priorytetu zadan, ktorym
brakuje pamieci. Jednym z ograniczen podzbioru C++
bylo to, ze wszystkie obiekty przydzielane na stercie
musialy byc podklasa pownej okreslonej klasy z 
wirtualnym destruktorem. Bylo to wymuszane specjalnym
pre-linkerem.

Jest 2:30 w nocy, ide spac.

Sylwester
Technical Details
Message-ID: <36D2831A.17368213@netcom.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!polsl.gliwice.pl!news.man.poznan.pl!news.icm.edu.pl!uw.edu.pl!newsgate.cistron.nl!het.net!news.maxwell.syr.edu!ix.netcom.com!news
References: <199902200404.EAA69510@out5.ibm.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!polsl.gliwice.pl!news.man.poznan.pl!news.icm.edu.pl!uw.edu.pl!newsgate.cistron.nl!het.net!news.maxwell.syr.edu!ix.netcom.com!news
From: Kalafiorczyk <simg@netcom.com>
Newsgroups: pl.comp.objects
Subject: Re: Glos na temat zasad dyskusji naukowej
Date: Tue, 23 Feb 1999 02:29:46 -0800
Organization: nie ma, za malo kawy
Lines: 98
Message-ID: <36D2831A.17368213@netcom.com>
References: <199902200404.EAA69510@out5.ibm.net>
NNTP-Posting-Host: netcom12.netcom.com
Mime-Version: 1.0
X-NETCOM-Date: Tue Feb 23  2:26:44 AM PST 1999
NNTP-Posting-User: simg
X-Mailer: Mozilla 4.06 [en] (Win95; I)
To: lewando@ibm.net
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit