Article View: pl.comp.objects
Article #5011Re: Glos na temat zasad dyskusji naukowej
From: Kalafiorczyk
Date: Tue, 23 Feb 1999 10:29
Date: Tue, 23 Feb 1999 10:29
97 lines
5306 bytes
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!newsReferences:
<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