1. Architektura:

Architektura systemu operacyjnego okresla sposób jego funkcjonowania. Powinna zapewniać maksymalna wydajnosć systemu przy jednoczesnym zapewnieniu prostoty obsługi. Jednym z elementów, majacym dużym wpływ na wydajnosć systemu, jest organizacja pamięci. Większosć współczesnych systemów komputerowych wykorzystuje pamięć wirtualna.


2. Specyfikacja:

Windows Vista, Windows Server 2003, Windows XP, Windows 2000 i Windows NT sa częscia rodziny Windows NT (w technologii NT) systemów operacyjnych firmy Microsoft. Umożliwiaja one między innymi wywłaszczanie oraz wielobieżnosć i zostały zaprojektowane do pracy na systemach bazujacych na architekturze x86 Intela, zarówno jednoprocesorowych, jak i o architekturze SMP. Do obsługi wejscia/wyjscia architektura NT stosuje przetwarzanie pakietowe, które wykorzystuje IRP (I/O request packet - pakiet zamówienia wejscia/wyjscia), oraz wejscie/wyjscie asynchroniczne. Poczynajc od Windows XP, Microsoft rozpoczał wbudowywanie obsługi trybu 64-bitowego w swoje systemy operacyjne — wczesniejsze wersje korzystały tylko z trybu 32-bitowego. Architektura Windows NT jest wysoce modularna i składa się z dwóch głównych warstw: trybu użytkownika i trybu jadra. Programy i podsystemy w trybie użytkownika sa ograniczone do zasobów systemowych, do których maja dostęp, w trybie jadra natomiast posiadaja nieograniczony dostęp do pamięci systemowej i urzadzeń zewnętrznych. Jadra systemów operacyjnych w technologii NT sa okreslane jako jadra hybrydowe, jednakże warto zauważyć, iż jest to sprawa dyskusyjna, gdyż jadro to jest własciwie jadrem monolitycznym o strukturze zbliżonej do mikrojadra. Architektura NT składa się z jadra hybrydowego, warstwy abstrakcji sprzętowej (HAL), sterowników i egzekutora. Wszystkie te moduły działaja w trybie jadra. Usługi o wyższym poziomie abstrakcji sa implementowane przez egzekutor. Tryb użytkownika w technologii Windows NT składa się z podsystemów, umożliwiajacych przekazywanie zamówień wejscia/wyjscia za pomoca menedżera wejscia/wyjscia do odpowiedniego sterownika programowego, działajacego w trybie jadra. Warstwa użytkownika Windows 2000 składa się z dwóch podsystemów: podsystemu srodowiska (uruchamia aplikacje napisane dla wielu różnych typów systemów operacyjnych) i podsystemu integralnosci (uruchamia specyficzne dla systemu funkcje w zastępstwie podsystemu srodowiska). Tryb jadra w Windows 2000 ma pełny dostęp do sprzętu i zasobów systemowych komputera. Tryb jadra blokuje dostęp dla usług i aplikacji trybu użytkownika do krytycznych elementów systemu operacyjnego, do których nie powinny mieć one dostępu. Egzekutor komunikuje się ze wszystkimi podsystemami trybu użytkownika. Obsługuje wejscie/wyjscie, zarzadza obiektami, zabezpieczeniami, oraz procesami. Jadro umieszczone jest pomiędzy HAL i Egzekutorem, zapewniajac synchronizację wieloprocesorowa, szeregowanie zadań i przerwań wraz z ich przydzielaniem, oraz zarzadzanie obsługa pułapek i rozdzielaniem wyjatków. Jadro jest odpowiedzialne również za inicjalizację sterowników sprzętu podczas uruchamiania systemu. Sterowniki poziomu jadra występuja na trzech poziomach: wysokim, posrednim, oraz niskim. Windows Driver Model (WDM - model tworzenia sterowników dla Windows) występuje na poziomie posrednim i został zaprojektowany tak, aby zachować zgodnosć binarna i kodu źródłowego pomiędzy Windows 98 a Windows 2000. Sterowniki niskiego poziomu sa albo sterownikami Windows NT starszego typu, kontrolujacymi urzadzenie bezposrednio, albo szyna systemowa typu Plug-and-play.


3. Tryb użytkowania:

Tryb użytkownika składa się z podsystemów, które przekazuja zamówienia wejscia/wyjscia do odpowiednich sterowników w trybie jadra przez menedżera wejscia/wyjscia (który działa w trybie jadra). Dwa podsystemy, na które składa się warstwa trybu użytkownika w Windows 2000, to podsystem srodowiska i podsystem integralnosci. Podsystem srodowiska został zaprojektowany do uruchamiania aplikacji napisanych dla wielu różnych systemów operacyjnych. Żaden z podsystemów srodowiska nie może uzyskać bezposredniego dostępu do sprzętu i musi złożyć zamówienie na dostęp do pamięci poprzez menedżera pamięci wirtualnej (Virtual Memory Manager), który działa w trybie jadra. Ponadto aplikacje otrzymuja niższy priorytet niż procesy w trybie jadra. Obecnie istnieja trzy główne podystemy srodowiska: podsystem Win32, OS/2 i POSIX.


4. Tryb jadra:

Tryb jadra Windows 2000 ma pełny dostęp do sprzętu oraz zasobów systemowych komputera i wykonuje kod w obszarze pamięci chronionej. Kontroluje dostęp do szeregowania, priorytetyzację watków, zarzadzanie pamiecia i komunikację ze sprzętem. Tryb jadra blokuje dostęp usługom i aplikacjom trybu użytkownika do krytycznych obszarów systemu operacyjnego, moga one jedynie zażadać od jadra wykonania tych czynnosci w ich imieniu. Tryb jadra składa się z usług egzekutora, które składaja się z modułów przeznaczonych do wykonywania specyficznych czynnosci, sterowników jadra, jadra i HAL


5. Egzekutor:

Egzekutor porozumiewa się ze wszystkimi podsystemami trybu użytkownika. Obsługuje operacje wejscia/wyjscia, zarzadzanie obiektami i procesami, oraz zabezpieczeniami. Zawiera wiele komponentow, m.in. Menedżera wejscia/wyjscia, Monitor odwołań bezpieczeństwa, Menedżera obiektów, Menedżera IPC, Menedżera pamięci wirtualnej, Menedżera PnP i Menedżera zarzadzania energia, oraz Menedżera okien, który współpracuje z GDI Windows. Każdy z tych komponentów udostępnia pomocnicza funkcję jadra, która pozwala innym komponentom na komunikację między soba. Cała ta grupa komponentów może być nazywana usługami egzekutora. Żadna z nich nie ma dostępu do wewnętrznych funkcji innych komponentów egzekutora.


6. Pamięć wirtualna:

Pamięć wirtualna to mechanizm komputerowy zapewniajacy procesowi wrażenie pracy w jednym dużym, ciagłym obszarze pamięci operacyjnej podczas gdy fizycznie może być ona pofragmentowana, nieciagła i częsciowo przechowywana na urzadzeniach pamięci masowej. Systemy korzystajace z tej techniki ułatwiaja tworzenie rozbudowanych aplikacji oraz poprawiaja wykorzystanie fizycznej pamięci RAM. Często popełnianym błędem jest utożsamianie pamięci wirtualnej z wykorzystaniem pamięci masowej do rozszerzenia dostępnej pamięci operacyjnej. Rozszerzenie pamięci na dyski twarde w rzeczywistosci jest tylko naturalna konsekwencja zastosowania techniki pamięci wirtualnej, lecz może być osiagnięte także na inne sposoby, np. nakładki lub całkowite przenoszenie pamięci procesów na dysk, gdy znajduja się w stanie uspienia. Pamięć wirtualna działa na zasadzie przedefiniowania adresów pamięci tak, aby "oszukać" procesy i dać im wrażenie pracy w ciagłej przestrzeni adresowej. Obecnie wszystkie systemy operacyjne ogólnego przeznaczenia wykorzystuja techniki pamięci wirtualnej dla procesów uruchamianych w ich obrębie. Wczesniejsze systemy takie, jak DOS, wydania Microsoft Windows z lat 80. oraz oprogramowanie komputerów mainframe z lat 60. nie pozwalały pracować w srodowisku z pamięcia wirtualna. Godnymi odnotowania wyjatkami były komputery Atlas, B5000 oraz Apple Lisa. Pamięć wirtualna wymaga wykonania pewnych dodatkowych nakładów pracy przy próbie odczytu lub zapisu, dlatego systemy wbudowane lub szczególnego przeznaczenia, gdzie czas dostępu jest czynnikiem krytycznym i musi być przewidywalny, często z niej rezygnuja za cenę zmniejszonego determinizmu. Dyski twarde sa około 100 razy wolniejsze od pamięci ram, przez co uruchamianie dużej ilosci programów na małej ilosci ramu powoduje wolne działanie komputera