Re: OS/2 a Win NT i sesje DOS

Autor: Sławomir Stachniewicz (stachnie_at_alf.ifj.edu.pl)
Data: Wed 21 Jan 1998 - 08:16:32 MET


On Tue, 20 Jan 1998 22:01:25 +0100 (CET), Jan Stożek wrote:

>On 19 Jan 1998 11:04:38 +0100, Sławomir Stachniewicz wrote:
>
>:> Oczywiscie, VP 1.1 pod OS/2 okazal sie duzo szybszy,
>:>niz TP 7.0 pod PC DOS 7.
>
> To wcale nie jest takie oczywiste. Zależy, co się robi. ;)

        W tym przypadku to bylo oczywiste - przy obliczaniu
pozycji planet wiele sie korzysta z funkcji trygonometrycznych.
O ile 387+ maja odpowiednie instrukcje FSIN, FCOS oraz FSINCOS
(ta ostatnia oblicza rownoczesnie sin i cos, jest do niej
"interfejs" w bibliotece MATH) to w 8087 jest tylko instrukcja
FPTAN - i te dodatkowe mozliwosci VP1.1 i 387+ wykorzystalem
w wersji dla OS/2. Druga sprawa: program nie wypisywal nic na
ekran (dopiero wynik, ale to po zakonczeniu obliczen).

        Jesli ktos chce, to moge podeslac (same pliki .EXE
lub wraz ze zrodlami).

>:>Dla hecy "zapuscilem" program DOS-owy
>:>w sesji DOS pod OS/2 - i tu pierwszy szok: chodzil SZYBCIEJ,
>:>niz pod DOS !!! A to prawie wylacznie kod na koprocesor !!!
>
> A to rzeczywiście ciekawe. A ile tam było operacji ekranowych?

        Wyjasnilem powyzej (niemal ZERO). Inna ciekawa rzecz:
zaczalem testowac program na 486 (DX2 50, 8 MB RAM) - tu juz
czysty DOS chodzi szybciej, niz sesje DOS pod OS/2, poza tym
nie ma zadnej roznicy (pod czystym DOS) miedzy E- i E+. Czyli
to chyba kwestia architektury Pentium ("superskalarnosc",
przewidywanie instrukcji) - na to wyglada, ze OS/2 dobrze sobie
z nia radzi. Sprobuje tez puscic programy na "zwyklym" Pentium 90
(niestety, na obu maszynach jest "tylko" PC DOS 7 i OS/2, na
jednej Warp 3 a na drugiej Warp 4).

>:>2. Sesje DOS pod OS/2 i NT4 dzialaja szybciej, niz czysty DOS
>:> (przynajmniej wtedy, gdy system nie jest obciazony).
>
> Efektywniejsza obsługa wywołań systemowych?
>W końcu kod emulacji BIOS i DOS też
>może być 32-bitowy albo wykonywany z innym priorytetem....
>ale skoro korzystasz z samego
>koproca? A jak jest z pamięcią? Ale pewnie nie korzystałeś
>z extendera, więc to nie ma
>znaczenia... Czy program zwala coś na dysk w czasie pracy?

        Nie - program jest bardzo maly (39-49 kB dla wersji
DOS, 50 kB dla wersji OS/2), wykorzystuje malo pamieci
(bez problemow miesci sie w segmencie 64 kB). Program nie
korzysta z dysku (oprocz tego, ze sie na nim znajduje) -
wylacznie obliczenia i na koncu wypisuje wynik.

>:>3. Jesli cos jest szybsze pod DOS, to niekoniecznie tak jest
>:> pod OS/2 i NT (N+E+G- ZAWSZE szybsze od N+E-G+).
>
> Ciekawe... wpływ E+/E- na szybkość działania
>programu jest dla mnie pewną zagadką...
>w końcu nie słyszałem, żeby komuś wyrósł koproc w
>czasie działania programu (choć fakt, może
>zniknąć :) w sumie wystarczyłoby sprawdzenie jego
>obecności na początku i uaktywnienie innej
>biblioteki w czasie ładowania... albo lepiej przechwytywanie
>TRAP-ów, które pewnie generuje
>proc jak trafi na obcy rozkaz i nie zwęszy odpowiedniego koproca.

        Chyba to drugie - wg Interrupts Ralpha Browna
Borland przy emulacji "podczepia" instrukcje koprocesora
pod niektore przerwania, ale nie pamietam szczegolow.

>Tak czy owak, w obecności
>dopalacza wpływu tej opcji na szybkość być chyba nie powinno. :(

        Wyszedlem z zalozenia, ze dolozenie kodu emulujacego
na pewno nie przyspieszy programu - co wcale nie musi byc
prawda ;-)

> A co do różnicy między G- a G+ w oknie DOS-owym...
>czy Intele w trybie wirtualnym w
>ogóle wykonują instrukcje 286, czy też trzeba je emulować?
>Jeżeli trzeba, to może kluczem
>rozwiązania jest inny mechanizm emulacji tych instrukcji w WARP 3 i 4?

        Nie wiem, tez sie nad tym glowie.

>:>4. Sesje pelnoekranowe sa odrobine szybsze, niz sesje w oknie
>:> (tu: zwykle o 0.14-0.16 sek.).
>
> Mało, ciekawe... pewnie bardzo mało wyrzucasz na ekran.
>Ciekawe jest jednak, że sesje
>VMB (pewnie z domyślnymi ustawieniami, czyli Full - o tym nie piszesz)

        Tak.

>są sporo "cięższe" od
>dormalnych. Sugeruje to efektywniejszą pracę DOS-kernela w
>OS/DOS-ie niż w PC-DOS-ie.
>
>:>5. OS/2 v3 wypadl nieznacznie lepiej. niz v4.
>
> W granicach błędu... niecałe 2 promille w sesji OS/2
>to żadna różnica. 3% w sesjach DOS
>to też niewiele, choć różnica jest zauważalna i porównywalna
>do wpływu pozostałych czynników.

        Ale zauwaz, ze (z wyjatkiem N+E+G+) v3 byl zawsze
choc odrobine szybszy, niz v4. Nb. wcale nie uwazam, ze
to zle swiadczy o Merlinie - roznica jest minimalna a moze
miec po prostu wiecej do sprawdzania czy cos w tym stylu.

>:>7. Roznice miedzy poszczegolnymi sesjami VMB byly minimalne
>:> (wiekszosc w granicach bledu z wyjatkiem N+E+G+ dla
>:> PC DOS 7.0).
>
> Rzeczywiście wygląda ciekawie... DOS 7 się zachowuje
>bardziej merlinowato niż
>pozostałe sesje... ale interesujący jest również praktyczny
>brak zależności szybkości pracy od
>parametrów kompilacji w pozostałych sesjach (w przeciwieństwie
>do wbudowanych sesji DOS).

        Z wyjatkiem N+E-G+ - teoretycznie najszybszej, tu
najwolniejszej (minimalnie, ale jednak).

> BTW - jeżeli sesja DOS w NT jest tylko "nieco"
>wolniejsza niż pod OS/2

        Zastanawialem sie, skad to sie bierze i wlaczylem
(pod NT) Performance Monitor z wykresem "zajetosci" procesora -
co jakis czas (dosc regularnie) wykres "podskakiwal" z 0 do
60-80% (i w efekcie przypominal pile z nierownymi, dosc
rzadkimi zabkami) - to moze byc te 10%. Zastanawiam sie, czy
to nie badziewiasty sterownik do OkiPage 4w (jesli drukarka
nie byla wlaczana podczas danej sesji NT to potrafi niezle
spowolnic system - dlatego do testow ... wlaczylem drukarke
:-)))))))) ). Innego drivera do OkiPage, niestety, nie ma.
Moze sprobuje go "na chwile" odinstalowac i puscic testy.

>- a to jest 10%
>różnicy, w porównaniu do ponad 20% w stosunku do pure DOS
>- to wszystkie różnice w
>parametrach pracy pod OS/2 są po prostu nieistotne. :)

        Akurat w tym przypadku - program nie korzysta z grafiki,
nie {czyta z / pisze po} dysku, nie korzysta z portow ani pamieci
rozszerzonej itd. itp.

> I na koniec... ciekawie byłoby porównać te wyniki
>z natywnym (32-bitowym) kompilatem
>dla NT.

        Tak, byloby to bardzo ciekawe (ale nie udalo mi sie
nic takiego "zorganizowac", zreszta nawet nie probowalem).

        Slawomir Stachniewicz.

+-------------------------------------+
| Slawomir Stachniewicz |
| mailto:stachnie_at_alf.ifj.edu.pl |
| http://solaris.ifj.edu.pl/~stachnie |
+-------------------------------------+



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:16:02 MET DST