Skazani na Windows?

Intel i Microsoft promują ideę "Windows wszędzie", ale jak pokazuje doświadczenie, próba włączenia ich w strukturę sieciowo-centryczną nie prowadzi do dobrych wyników. Dołączenie maszyny wirtualnej Java w celu wykonywania aplikacji napisanych w tym języku i apletów (coraz powszechniej towarzyszących stronom HTML w Internecie) jest rozwiązaniem prowizorycznym. Spadek wydajności takiej maszyny, działającej jako nakładka na bardzo rozbudowany system operacyjny, można neutralizować, "stosując więcej megahertzów i megabajtów". Jest to jednak rozwiązanie na krótką metę. Ponadto obecne wersje systemów typu Windows nie nadają się do obsługi komputerów sieciowych, terminali bezobsługowych ani urządzeń powszechnego użytku, takich jak przystawka do odbioru telewizji kablowej.

Ewolucja czy nowy system?

PC z jego systemem operacyjnym nie nadaje się do współczesnego i przyszłego środowiska przetwarzania sieciowo-centrycznego. Maszyny PC zbudowano z myślą o wspieraniu typowych aplikacji biurowych; wymagają dysku do ładowania systemu operacyjnego i mają problemy z obsługą komunikacji (nawet o tak małej szybkości, jaką zapewnia łącze szeregowe).

Systemy operacyjne dla PC - DOS i Windows - były przeznaczone do obsługi tylko jednego użytkownika, którego nie interesowało opóźnienie w realizowaniu operacji. Zbudowano je na najprostszej zasadzie, że zasoby wymagające obsługi (karta graficzna, drukarka, inne urządzenia peryferyjne) konkurują swobodnie o cykle maszynowe procesora: urządzenie oddaje procesor, gdy już skończy swoje zadanie. Obsługę przerwań odsunięto na dalszy plan. Dlatego też urządzenia wymagające uwagi, takie jak łącze komunikacyjne, są obsługiwane źle, gubią się znaki, a sesja połączeniowa ulega przerwaniu bez ważnej przyczyny.

Monolityczne systemy operacyjne - DOS i Windows - są zbudowane w postaci hierarchii warstw; dodanie nowej cechy do systemu wymaga szczegółowej znajomości całego systemu, aby zmieniając jedną właściwość, nie naruszyć jego struktury. Obsługa kart sieciowych i łączy komunikacyjnych stanowi dodatkową warstwę systemu, nie zintegrowaną z systemem. Tymczasem wymagają one ścisłej dyscypliny czasowej, szybkiego obsługiwania przerwań i nie mogą oczekiwać na reakcję systemu, zajętego w tym czasie obsługą urządzenia, które nie zwalnia procesora.

Te problemy występują również w Windows 95. Wprawdzie firmie Microsoft udało się w tym systemie dobrze zasymulować wielozadaniowość, to jednak nadal Windows 95 niezbyt nadaje się do obsługi w czasie rzeczywistym urządzeń peryferyjnych. Obsługa modemu to wiele zadań związanych z kompresją/dekompresją danych, wykrywaniem błędów, obsługiwaniem protokołu itp. Wszystkie muszą być wykonywane na bieżąco, praktycznie bez oczekiwania. Problematyczne więc staje się jednoczesne obsługiwanie szybkich urządzeń, takich jak napęd CD-ROM, łącze szeregowe połączone z modemem i karta sieci Ethernet. Także tu można przez pewien czas maskować problem, zachęcając użytkownika do kupowania szybszego procesora i instalowania większej pamięci RAM.

System operacyjny czasu rzeczywistego

Aby jeden system operacyjny nadawał się do obsługi różnorodnych urządzeń, musi mieć architekturę modułową - dodanie nowej cechy, sterownika urządzenia oraz przystosowanie go do pracy w innym zestawie sprzętowym nie może być pracochłonne. Ponadto w najprostszej wersji, przeznaczonej dla urządzeń o ograniczonej ingerencji użytkownika lub urządzeniach sterowania, musi być zrealizowany w niewielkiej pamięci stałej ROM, wspieranej przez ok. 1 MB RAM.

Wymaga zintegrowanej obsługi warstwy sieciowej oraz łatwo dostępnej warstwy protokołu komunikacyjnego. Musi być łatwo rozszerzalny i rekonfigurowalny - dodanie lub usunięcie urządzenia peryferyjnego nie może wymagać ponownego startu systemu. Błąd urządzenia lub sterownika nie może powodować krachu systemu, co wymaga dokładnego określenia, na jakim poziomie ochrony sprzętowej działają poszczególne moduły systemu.

W zastosowaniach telekomunikacyjnych, automatyce i przemyśle znane są systemy o podobnych właściwościach. Zapewniają one minimum właściwości, dają się łatwo przenosić na różne platformy sprzętowe, równie umiejętnie wykorzystują systemy zarówno jedno-, jak wieloprocesorowe, mają małe wymagania rozmiaru potrzebnej pamięci. Praktycznie wszystkie są oparte na tzw. mikrojądrze, co znaczy, że ich podstawa zawiera niewiele kodu potrzebnego do obsługi elementarnych funkcji systemowych.


TOP 200