Re: wywlaszczanie w intelach, : 16 bitowosc win95

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