Re: Win NT - zabojca UNIXa

Autor: Gotfryd Smolik (smolik_at_stanpol.zabrze.pl)
Data: Thu 31 Oct 1996 - 12:19:15 MET


On Thu, 24 Oct 1996, Jerzy Michal Pawlak wrote:

> In article <cut> smolik_at_stanpol.zabrze.pl (Gotfryd Smolik) writes:
[cut]
> >*wstawka:
> > Dla jasnosci, uwaga (ze NT) jest sluszna ! Bezwzgledny rekord
> >jest na VMSie; nie wiedziec czemu pod UN*Xem jest przewaznie
> >od 2 do 5% gorzej...
>
> To akurat latwo wyjasnic - na VMS uzywany jest RdB - napisany przez DEC
> specjalnie do VMS-a (i odwrotnie - w systemie VMS sa rzeczy dodane
> specjalnie zeby RdB chodzil jak najlepiej) i kilkanascie lat optymalizowany.

 Prawdę mówiąc nie popatrzyłem na czym były testy; z większością osiągnięć
Digital chwalił się ostatnio pod Oraclem... (niewątpliwie wersja 64-bit
i rekordy z tego tytułu [proste adresowanie] była spod Oracla !).

> Dwa lata temu kupil do Oracle i - o dziwo - zamiast ubic jako niewygodna
> konkurecje rozwija go dalej.

 A zna ktoś bazę danych, potrafiących zrobić backup *w locie* ??
*BAZĘ*, nie aplikację pod bazą ! A wydawałoby się że można zastosować
jakąś prostą ideę -:>
(RDB owszem, robi - jeśli ktoś nie znał -:)

> >PS. 64/32-bit to maly pikus: konwersja rozkazow np. takiego VAXa
> > (*prawdziwy* CICS, z lekko rozbudowana lista rozkazaw ! I swobodnym
> > wyborem operandow...) moze byc (jest) problemem (jak sie przenosi
> > kod binarny -:)). Rekord swiata wynosi cos 57 rozkazow ALPHY, aby
> > wykonac najbardziej zlosliwy rozkaz VAXa !
>
> Jestem prawie pewien ze wiecej... W manualu do VMS-a znalazlem kiedys
> (juz nie pamietam gdzie) taki pasaz mowiacy, ze minimalna pamiec jaka
> musze przydzielic procesowi MUSI wystarczyc na umieszczenie w niej
> pelnego rozkazu, zas teoretycznie najdluzszy rozkaz procesora VAX
> ma 52 strony (czyli 26 kB)...

 Chyba coś pokręciłeś... *używa* tylu stron naraz !
 Musi mieć dość pamięci, żeby go *wykonać* -:)
 Rozkaz może być krótki, ale może sięgać do kilkunastu miejsc w pamięci
naraz. Jesli operand jest podany metodą "adresacja podwójnie pośrednia
z przesunięciem" to musisz mięc dostęp do:
 - operandu
 - adresu operandu (tj. komórki pamięci zawierającej ten adres)
 - adresu adresu operandu
 - przesunięcia... -:)

 Chodzi o taki drobiazg, że wszystkie ww. miejsca pamięci muszą naraz
być w pamięci *fizycznej* (co, un*xy [wiem, są takie co mają w ograniczo-
nym zakresie !] nie mają pagingu ?? -:>). Jak wszystkie operandy
mają takie adresy (wynik też !) no to wykonanie tego rozkazu
wymaga, żeby tyle kodu+danych było w pamięci fizycznej !
 Stąd proces musi mieć prawo to takiej ilości pamięci, żeby rozkaz
był wykonalny...
 Objaśnienie dla ery RISCow i GB RAM:
 VMS istaniał dużo wcześniej, niż CPM - dla którego (w wersji 1.X)
64KB (kilobyteow, korekta - nie poprawiać !) to było dużo -:)
 Userom daje się (w VMSsie) prawo do *minimalnego pewnego* przydziału
pamięci fizycznej.

> Byla tam tez uwaga, ze DEC-owskie kompilatory
> nigdy nie wygeneruja rozkazow dluzszych niz 8kB (zdaje sie). Sadze ze zeby
> wyemulowac taki rozkaz na dowolnym RISC-u to trzeba bedzie duuzo
> instrukcji...

 Nie -:) *TAKI* rozkaz, to byłaby przesada !

> No, chyba ze PALcode zalatwia za nas czesc roboty :-)

 Nie. Lenie wielu użytecznych rozkazów nie zaimplementowali,
tylko takie które *musieli*; np. przy przełączeniu kontekstu procesu
ze zmianą trybu procesora są takie przypadki, że *nie* można rozbić
tej operacji na mniejsze [RISCowe] kawałki bo albo user mógłby dorwać
się do uprzywilejowanego stosu, albo nie mógłby rozkazu wykonać
(bo w trybie user nie miałby dostępu do stosu).

 - Gotfryd



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 16:00:26 MET DST