Autor: Grzegorz Szysz/lo (znik_at_wbc.lublin.pl)
Data: Sun 19 Apr 1998 - 20:37:55 MET DST
"Radosław Sokół" <rsokol_at_iname.com> wrote:
>Widzę, że przerobiłeś subject z "Windows 95" na "Intel",
>żeby podpaść pod tematykę grupy? ;)
czesciowo tak :) ale nie do konca.
>> bzdura. wywlaszczane moga byc zarowno fragmenty 16bitowe, jak
>> i 32bitowe.
>
>Tak, ale pytanie dotyczyło Windows 95, a tam scheduler nie
>pozwala na wywłaszczanie kodu 16-bitowego (dokładniej:
>nie są tworzone instancje zmiennych bibliotek DLL dla
>każdego wątku więc wywłaszczenie powodowałoby zafałszowanie
>wartości tych zmiennych dla poprzedniego wątku. W przypadku
>32-bitowych DLL każdy wątek ma własny segment danych DLLa
>i nie ma problemu).
to moze mi wyjasnisz, czemu po odpaleniu kilku zadan win3.xx
pod OS/2 , nastepuje prawidlowe ich wywlaszczanie ? a przeciez
to jest 16bitowy kod. jeszcze raz. po prostu api do win95/32s
ma w sobie mechanizmy, ktore powoduja wywlaszczanie wymuszone
przez aplikacje. czyli aplikacja sama z siebie puka do systemu,
by oddac czas procesora.
>> 32bity ulatwiaja jedynie operacje na duuuzych blokach
>> danych, z wywlaszczaniem nie maja nic wspolnego. kilka roznych
>> systemow ma wywlaszczanie zarowno w 32bitowym, jak i 16bitowym kodzie.
>> win95/98 nie ma wywlaszczania ani w jednym, ani w drugim.
>
>W 32 bitach jakieś tam ma, tylko że tych czystych 32-bitowych
>DLLi w tym systemie nie ma. Gdyby USER32 i GDI32 nie korzystały
>z 16-bitowych DLLi (które nie mogą być wywłaszczane), to
>wielozadaniowość Win95 przedstawiałaby się dużo lepiej.
powiem ci ciekawostke. kod moze byc 16bitowy, byleby korzystal
z nowego api win95, nie zas ze starego win3.xx . i juz jest wywlaszczany,
bo sam sie o to prosi.
>> wywlaszczanie w tych atrapach systemow (wlasciwie to w shellach graficznych)
>> odbywa sie w ten sposob, ze
>> 1.moze nastapic podczas odwolania do jakiejkolwiek funkcji systemowej
>
>Może wystąpić w przypadku odwołania do 32-bitowego modułu
>tworzącego osobne instancje zmiennych dla każdego wątku.
chcesz przez to powiedziec, ze aplikacje korzystaja z instancji kernela ?
przeciez to jest stawanie na glowie.
>> 2.w przypadku dlugotrwalych petli ktore cos obliczaja, nalezy
>> robic wywlaszczanie wymuszone, odwolujac sie do stosownej funkcji
>> systemowej.
>
>Yield - to już było w Win16 do obsługi komunikatów i z
>wywłaszczeniem ma bardzo mało wspólnego. Zresztą w OS/2 dalej
>jest konieczne wywoływanie takich funkcji przy opóźnionym
>przetwarzaniu komunikatów, bo inaczej GUI się zatyka (dopiero
>Merlin ma jakieś dodatkowe wątki odtykające kolejkę, ale jest
>to dość dziwne leczenie błędu architektury).
niezupelnie. w przypadku os/2 poruszyles problem jednowatkowej kolejki
komunikatow GUI, nie zas problem wywlaszczania i wielozadaniowosci.
to sa odrebne zagadnienia.
>> takie wywlaszczczanie zostalo juz dawno zrealizowae w DOS'ie ,
>> w ........... turbo vision :)
>
>Dokładnie. Zresztą zrobić takie coś nawet samemu to nie
>problem.
wlasnie :) wiec czemu windowsy zajmuja tyyyyyyyyyle miejsca :))))
a TV tak malo :)
>> >to w momencie ich wywołania ustawiony zostaje
>> >tzw. Mutex,
>> mutex sluzy do godzenia procesorow w systemach wieloprocesorowych.
>
>Ale Win16Mutex służy właśnie do blokowania wejścia kilku
>wątków do tego samego modułu 16bit w Windows 95.
straszne. nie mam na to slow.
>> >Jeśli więc nastąpi zawieszenie się systemu w procedurze
>> >systemowej lub jakiś program zapętli się w wywoływaniu
>> >tej procedury, to cały interfejs użytkownika i grafika
>> >Windowsów padają.
>>
>> wiec gdzie to "wywlaszczanie" ? to co napisales swiadczy,
>> ze wywlaszczanie w windowsach to jedynie reklamowa atrapa.
>
>Bo jest. Wywłaszczenie kodu programu w momencie, gdy ten
>rysuje coś na ekranie lub przesuwa okienka jest niemożliwe,
>bo wtedy DLLe pozmieniałyby swoje zmienne i po powrocie
>do operacji wszystko byłoby nakopane. Programy Win32 mogą
>być swobodnie wywłaszczane jedynie gdy wykonują czysty,
>obliczeniowy kod nie odwołujący się do bibliotek USER
>i GDI.
w takim razie jakim cudem jest mozliwe, ze dwa programy tworzace
obok siebie dwa okna moga w tym samym czasie cos rysowac ?
>> >Jedynie KERNEL32 (zarządzanie pamięcią)
>> >jest w pełni 32-bitowy i nie korzysta ze starych bibliotek.
>>
>> z tym sie zgodze. z tym ze on nadal nie jest wielowatkowy.
>
>Na pewno nie jest wielowątkowy, ale może zostać bez
>problemów jednocześnie używany zamiennie przez kilka
>wątków i przerwanie jego procedury w połowie nie ma
>żadnych przykrych konsekwencji.
no, chociaz to zrobili.
>> to jest niemozliwe, czego przykladem moze byc praca takich
>> systemow jak: SCO Unix, windowsNT (nie cierpie go), Linux czy OS/2 .
> ^^^^^^^^^^^^^^
>Oj, czemu? :) Taki fajny system... :))))
system ? tak. fajny ? nieeeeeeeee.
na to bydle trzeba conajmniej 64mb ramu, i P200 zeby praca byla
jako tako wygodna. na czymkolwiek innym, obydwie liczby mozna spokojnie
podzielic przez dwa.
>PS. Jak tam Twój kot? :)
jest dobrze. przezyl marzec, i jest caly :)
-- /===================================\ oOOo W temperaturze zera | http://avalon.wbc.lublin.pl/~znik/ \===\__/==\ bezwzglednego swiatlo | Grzegorz Szyszlo mailto:znik_at_wbc.lublin.pl | zmienia postac \==============================================/ alotropowa (by Znik)
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 17:11:01 MET DST