Wielozadaniowość

Windows 2000 jest systemem operacyjnym obsługującym wielozadaniowość z wywłaszczeniem, co oznacza, że za jednym razem może wykonywać więcej niż jedną czynność – niezależnie, czy poszczególne procesy zostały napisane z myślą o wzajemnej współpracy.
Rozplanowanie tych różnych procesów leży w gestii jądra, podobnie jak alokacja pamięci i komunikacja z urządzeniami wejścia – wyjścia. Jądro zarządza trzema podstawowymi składnikam
ikomputera: pamięciom, taktowaniem procesora i urządzeniami wejścia – wyjścia.
Fizyczną implementację (jeśli można tak to nazwać) implementację Windows 2000 stanowi seria plików systemowych, które są ładowane podczas procesu uruchamiania. Przykładowo pod
stawowe usługi jądra zostały zawarte w pliku ntoskrnl.exe, a warstwa abstrakcji sprzętowej danej maszyny znajduje się w pliku o nazwie hal.dll. Każda określona usługa systemu albo program obsługi ma własny plik, powiązany z tą warstwą. Gdy usługa pozostajew zależności od innej usługi (przykładem niech będzie zależność systemu plików CD cdfs.sys od programu obsługi urządzenia o nazwie cdrom.sys), moduł zależny nie będzie mógł wystartować, jeśli zależny program obsługi nie został uruchomiony odpowiednio wcześniej. Zależność między programami obsługi zostały wykazane w kluczach rejestru, odpowiedzialnych za sterowanie usługami.
Jądro i wszystkie programy obsługi korzystają z tej samej, pojedynczej przestrzeni adresowej pamięci – są chronione przed innymi proc
esami, ale nie od siebie nawzajem. Ta przestrzeń pamięci procesowej jest nazywana trybem jądra (ang. Kernel mode). Większa część jądra jest niestronicowana, co oznacza, że jest zawsze dostępna w pamięci RAM i nigdy nie zostaje zestronicowana na dysk. Większa część jądra nie może zostać zestronicowana, ponieważ zawiera kod sterujący stronicowaniem i programami obsługi dysku. Jest to zarazem optymalizacja wydajności, ponieważ jądro jest często używane. Programy obsługi oraz usługi obszaru wykonawczego są stronicowane (chyba, że zostaną skonfigurowane w inny sposób), ponieważ korzysta się z nich rzadziej i nie mają decydującego znaczenia dla funkcji stronicowania.
Jądro zostało podzielone na różne składniki:
· Menadżer procesów na żądanie tworzy procesy i wątk
i. Proces to po prostu niepowtarzalna, wirtualna przestrzeń adresowa., składająca się z jednego lub większej ilości wątków. Wątki są niepowtarzalnymi łańcuchami procesu wykonawczego w obrębie procesu reprezentującego podstawowy, rozplanowany obiekt w Windows 2000. Wątki mają własny stos jądra, stos użytkownika i zmienne środowiskowe. Stos jest obszarem roboczym dostępnym dla wątków, które mogą z niego korzystać w celu szybkiego składowania i pobierania danych podczas wykonywania obliczeń.
· Programy obsług
iprzerwań działają po wywołaniu przez zdarzenia sprzętowe, takie jak błędy strony albo wywołania urządzeń wejścia – wyjścia. Jądro ustanawia program obsługi przerwań dla każdego możliwego zgłoszenia przerwania. Niektóre przerwania jądro obsługuje samodzielnie, programy obsługi pracują w obrębie przestrzeni jądra obsługują pozostałe.
· Warstwa abstrakcji sprzętowej sprawia, że wszystkie komputery wyglądają tak samo dla Windows 2000 niezależnie, czy opierają się na standardowej, przemysłowej architektórze PC
,platformie Advanced RISC Compiuting (ARC) czy innej maszynie. Warstwę HAL dla maszyn innych niż standardowe komputery PC dostarcza producent takich urządzeń.
· Menadżer obiektów dostarcza przestrzeń nazw dla rozmaitych komponentów Windows 2000, takich ja
kpliki, porty, procesy i wątki – w zasadzie wszystko, czym mógłby interesować się system. Procesy mogą korzystać z Menadżera obiektów, aby dowoływać się do innych obiektów w systemie.
· Menadżer pamięci wirtualnej steruje stronicowaniem pamięci na dysk. P
oza typowymi funkcjami obliczeniowymi wszystkie współczesne mikroprocesory zawierają urządzenia zwane Memory Management Unit (MMU), które ma decydujące znaczenie dla systemu operacyjnego obsługującego wielozadaniowość z wywłaszczeniami, a do takich należyzaliczyć Windows 2000.
· Menadżer komunikacji międzyprocesowych dostarcza lokalne wywołanie procedur, polegające na przekazywaniu komunikatów między procesami. Ponieważ procesy nie mogą naruszyć przestrzeni adresowej innych procesów, przekazują informacje
,korzystając z tego mechanizmu. Ułatwienie LPC działa na zasadzie interfejsu między trybem jądra, a trybem użytkownika. Działając w zgodzie z usługą zdalnego wywołania procedur, dostarcza abstrakcję niezbędną do połączenia z procesami na zdolnych komputerach w sieci.
· Menadżer wejścia i wyjścia reprezentuje jednolity interfejs, do którego mogą przyłączyć się wszystkie programy obsługi. Menadżer zajmuje się przesyłaniem danych i komunikatów między programami obsługi urządzeń, podobnie, jak mechanizm LPC za
jmuje się komunikacją międzyprocesową. Programy obsługi mogą pozostawać w zależności od usług innych programów obsługi przez warstwy, zwane zależnościami. Przykładowo podstawowe programy obsługi, które komunikują się bezpośrednio ze sprzętem, są nazywane programami obsługi urządzeń. Programy obsługi wyższego poziomu np. systemu plików NTFS, w kwestii składowania danych pozostają w zależności od programów obsługi dysku twardego. To uwarstwienie umożliwia wyodrębnienie określonych celów dla programów obsługi.Przykładowo, różne nośniki pamięciowe mogą wykorzystywać ten sam system plików, a wiele systemów pliku może korzystać z tego samego nośnika pamięciowego.
· Menadżer pamięci podręcznej optymalizuj dostęp do plików, wykorzystując RAM do przechowywania częst
oużywanych plików. Menadżer pamięci podręcznej działa podobnie jak program obsługi, zajmujący warstwę między programem obsługi systemu plików a procesami na poziomie użytkownika. Gdy użytkownik żąda pliku, który znajduje się w pamięci podręcznej, Menadżerpamięci podręczne zwraca go, zamiast próbować uzyskać dostęp do wolniejszego nośnika pamięciowego. Menadżer pamięci podręcznej blisko współpracuje z Menadżerem pamięci wirtualnej, wykorzystując nie zajmowaną w inny sposób pamięć RAM. Gdy menadżer pamięciwirtualnej potrzebuje pamięci, zwalnia pamięć podręczną przed zestronicowaniem aktywnego procesu na dysk.
· Programy obsługi dostarczają interfejsu urządzeniom wejścia wyjścia przez warstwowy system zależności od bardzo podstawowych programów obsługi.
·
Security Refrence Monitor wzmacnia zabezpieczenia, ograniczając dostęp jednych obiektów do innych. Gdy jeden obiekt żąda dostępu do innego, ten pierwszy dostarcza identyfikator zabezpieczeń, który jest sprawdzany przez Security Refrence Monitor pod względemzgodności z kontrolną listą dostępu odnośnego obiektu. Jeśli identyfikator zabezpieczeń danego obiektu nie znajduje się na kontrolnej liście obiektu, d o którego się odwołuje, dostęp jest blokowany. Zabezpieczenia systemu użytkownika w całym systemie Windows 2000 są implementowane za pomocą tego mechanizmu.
· Menadżer Plug and Play steruje programami obsługi urządzeń Plug and Play, wysyłając im polecenia startowania I zatrzymywania, konieczne do obsługi sprzętu wymienianego bez przerywania pracy komputer
aoraz do wykrywania I instalacji urządzeń.
· Menadżer zasilania działa jako centralny punk sterowania zdarzeniami i komunikatami związanymi z zasilaniem. Jest odpowiedzialny za monitorowanie stanu baterii, za startowanie, zatrzymywanie i pauzowanie zasob
ów sprzętowych w celu oszczędzenia zasilania, a także za sterowanie hibernacją oraz rezerwowymi funkcjami systemu operacyjnego.
· Interfejs urządzeń graficznych dostarcza interfejsu, przez który grafika jest przedstawiona na ekranie. Dzięki temu składnik M
enadżer okien dostarcza obszary wyższego poziomu oparte na zawartości (okna). Przed pojawieniem się Windows NT składnik ten istniał poza jądrem. Został inkorporowany do Windows 2000, aby zmniejszyć obciążenie procesora i poprawić graficzną wydajność systemu operacyjnego.