Systemy Operacyjne
Total Page:16
File Type:pdf, Size:1020Kb
SystemSystem operacyjnyoperacyjny WindowsWindows XPXP • Perspektywa historyczna • Podstawy projektu • Elementy systemu Jądro Egzekutor • Podsystemy środowiskowe • System plików • Interfejs programowy Wiesław Płaczek Systemy Operacyjne: Wykład 13 1 PerspektywaPerspektywa historycznahistoryczna • Sierpień 1981: firma Microsoft wypuściła system operacyjny DOS 1.0 (4000 linii kodu asemblera, 8 KB pamięci) dla pierwszego komputera osobistego (PC) IBM, z mikroprocesorem Intel 8086. • Przez kolejne lata DOS, pomimo pojawiania się kolejnych, ulepszonych wersji, pozostawał w tyle za rozwojem technologicznym sprzętu; np. kolejne procesory Intela: 80286, 80386, 80486, pomimo wielu istotnych jakościowo zmian, były traktowane przez DOS jedynie jako „szybki 8086”. •We wczesnych latach 1980-tych Microsoft rozpoczął prace na graficznym interfejsem użytkownika (graphical user interface – GUI) dla systemu DOS, który mógłby rywalizować z systemem Macintosh – rezultatem tego był GUI o nazwie Windows 3.0 (przed 1990), dalsze wcielenia to Windows 95/98/Me. •W połowie lat 1980-tych Microsoft i IBM rozpoczęły pracę nad wielozadaniowym systemem nowej generacji, o nazwie OS/2, który mógłby w pełni wykorzystać możliwości oferowane przez procesor Intel 80286. • W roku 1988 Microsoft wycofał się z projektu OS/2 i rozpoczął pracę nad własnym systemem, wynajmując do tego Dave’a Cutlera, konstruktora systemu operacyjnego VMS dla komputerów VAX firmy DEC. • Pierwsza wersja nowego systemu o nazwie Windows NT („new technology”) z numerem 3.1 została wypuszczona w roku 1993 (używała GUI Windows 3.1). • Dalszym rozwinięciem systemu Windows NT był Windows 2000 (rok 2000). • Windows XP jest uaktualnieniem Windows 2000 oraz zastępuje Windows 95/98. Wiesław Płaczek Systemy Operacyjne: Wykład 13 2 PodstawyPodstawy projektuprojektu • Windows XP jest wielozadaniowym systemem operacyjnym z wywłaszczaniem, ma organizację 32- lub 64-bitową i jest przeznaczony dla procesorów Intel IA32/IA64, AMD K6/K7 i późniejszych. Stosuje model klient-serwer na podobieństwo systemu operacyjnego Mach. Jest systemem wielostanowiskowym (multiuser), realizującym jednoczesny dostęp za pośrednictwem usług rozproszonych lub wielu egzemplarzy GUI. Jest pierwszą wersją systemu Windows dostarczaną w postaci 64-bitowej. Istnieją dwie wersje biurkowe: Windows XP Professional oraz Windows XP Personal (Home Edition) – bez bardziej zaawansowanych cech. Od roku 2002 istnieją wersje serwerowe XP o nazwie Windows .Net Server –służą do obsługi farm serwerów WWW, serwerów druku i plików, klastrów systemów i wielkich maszyn w centrach danych (do 64 GB pamięci operacyjnej i do 32 procesorów IA32 lub do 128 GB i 64 procesorów IA64). •Główne cele projektowe systemu: bezpieczeństwo, niezawodność, zgodność z aplikacjami Windows i POSIX, duża wydajność, rozszerzalność, przenośność, dostosowanie do wymogów międzynarodowych. Wiesław Płaczek Systemy Operacyjne: Wykład 13 3 PodstawyPodstawy projektuprojektu –– c.d.c.d. • Bezpieczeństwo: Wymagania bezpieczeństwa przewyższyły standardy projektowe systemu Windows NT 4.0, który uzyskał poziom klasy bezpieczeństwa C2. Szeroko zakrojone przeglądanie i testowanie kodu połączono z użyciem automatycznych narzędzi analizy potencjalnie słabych punktów. • Niezawodność: Dokonano dogłębnego przeglądu kodu metodami ręcznymi i automatycznymi. Windows XP dokładniej weryfikuje moduły sterujące. Posiada lepsze możliwości wychwytywania błędów oprogramowania w kodzie poziomu użytkownika. Aplikacje, moduły sterujące i urządzenia pochodzące z obcych źródeł poddaje procesowi surowego atestowania. Sprowadza (przez Internet) środki zaradzania problemom. Lepsze rozwiązania w graficznym interfejsie użytkownika (GUI). • Zgodność z aplikacjami Windows i POSIX: Warstwa zgodności usytuowana między aplikacjami a API Win32 sprawia, że XP wygląda na w pełni zgodny z poprzednimi wersjami Windows. Dostępny jest podsystem POSIX o nazwie Interix –umożliwia kompilowanie i wykonywanie popularnego oprogramowania zgodnego z systemem UNIX. Wiesław Płaczek Systemy Operacyjne: Wykład 13 4 PodstawyPodstawy projektuprojektu –– c.d.c.d. • Duża wydajność: Podsystemy XP mogą wydajnie komunikować się między sobą za pomocą lokalnego wywołania procedury (LPC) umożliwiającego wysoko wydajne przekazywanie komunikatów. Możliwość wywłaszczania wątków w podsystemach XP przez wątki o wyższym priorytecie pozwala szybko reagować na zdarzenia zewnętrzne. Windows XP zaprojektowano do wieloprzetwarzania symetrycznego (SMP) – na komputerze wieloprocesorowym kilka wątków może działać równolegle. Windows XP stosuje różnorodne techniki zwiększania wydajności systemu: asynchroniczne wejście-wyjście, optymalizowane protokoły sieciowe, grafika oparte na kodzie jądra, wyrafinowane techniki przechowywania podręcznego danych systemu plików, lepsze algorytmy i procesorowe struktury danych itd. • Przenośność (portability) –możliwość przenoszenia z jednej architektury sprzętowej na inną ze stosunkowo niewielkimi zmianami. Większość systemu napisana w językach C i C++. Kod zależny od procesora jest wyizolowany w bibliotece dołączanej dynamicznie (DLL) zwanej warstwą abstrakcji sprzętu (hardware abstraction layer – HAL) – uniezależnienie reszty systemu od różnic sprzętowych (warstwa HAL działa bezpośrednio na sprzęcie; górne warstwy Windows XP zależą od warstwy HAL, a nie od znajdującego się pod nią sprzętu). Wiesław Płaczek Systemy Operacyjne: Wykład 13 5 PodstawyPodstawy projektuprojektu –– c.d.c.d. • Rozszerzalność (extensibility) – architektura warstwowa: Egzekutor (executive) Windows XP, działa w trybie jądra (chronionym) i dostarcza podstawowych usług systemowych. Powyżej egzekutora działa w trybie użytkownika kilka podsystemów usługowych, m.in. podsystemy środowiskowe emulujące różne systemy operacyjne (np. MS-DOS, MS-Windows, POSIX). Modularna struktura pozwala dodawać do systemu następne podsystemy środowiskowe bez naruszania egzekutora. Ładowalne moduły sterujące w systemie WE/WY umożliwiają dodawanie nowych systemów plików, nowych typów urządzeń WE/WY oraz nowych rodzajów sieci podczas działania systemu. • Zaplecze międzynarodowe: Uwzględnia różne cechy lokalne poprzez interfejs API zaplecza języków narodowych (national language support – NLS). Interfejs API NLS dostarcza specjalizowanych procedur formatowania daty, czasu, kwot pieniężnych itp. – odpowiednio do lokalnych zwyczajów. Oryginalnym kodem znaków w Windows XP jest UNICODE (16-bitowy). Napisy systemowe przechowywane są w plikach zasobów, które można zastąpić w celu dostosowania systemu do różnych języków. Możliwe jest współbieżne korzystanie z wielu ustawień lokalnych. Wiesław Płaczek Systemy Operacyjne: Wykład 13 6 ElementyElementy systemusystemu Proces Aplikacje Aplikacje Aplikacje Aplikacje Aplikacje rejestracyjny systemu OS/2 systemu Win16 systemu Win32 systemu DOS systemu POSIX Podsystem Podsystem Win16 bezpieczeństwa MS-DOS Podsystem OS/2 VDM VDM POSIX Pakiet uwierzytelniania Podsystem Baza danych zarządcy Win32 Tryb bezpieczeństwa kont użytkownika Egzekutor Zarządca WE/WY Monitor Zarządca Udogodnienie automa- Zarządca System plików Zarządca bezpie- Zarządca wywoływania tycznego pamięci czeństwa procesów procedur Zarządca obiektów instalo- pamięci odniesień wirtualnej lokalnych Zarządca wirtualnej wania okien Moduły obsługi urządzeń Jądro Moduły Moduły obsługi sterujące urządzeń sieci Tryb graficznych Warstwa abstrakcji sprzętu (HAL) jądra Sprzęt Wiesław Płaczek Systemy Operacyjne: Wykład 13 7 JJąądrodro • Jądro (kernel) Windows XP stanowi podstawę egzekutora i podsystemów. • Strony jądra nie są nigdy usuwane z pamięci, a jego działanie nie jest nigdy wywłaszczane. •Jądro ma cztery główne obowiązki: planowanie procesów; obsługa przerwań i sytuacji wyjątkowych; synchronizacja procesora; podejmowanie działań naprawczych po awarii zasilania. •Jądro jest obiektowe – wykonuje zadania posługując się obiektami jądrowymi. Typ obiektu – zdefiniowany w systemie typ danych mający zbiór atrybutów (wartości danych) i zbiór metod (np. funkcji lub operacji). Obiekt – konkret typu obiektowego. • Procesy i wątki: Proces dysponuje przestrzenią adresową i informacjami do inicjowania wątków, takimi jak podstawowy priorytet oraz przypisanie jednego lub większej liczby procesorów; każdy proces ma jeden lub więcej wątków. Wątek jest jednostką wykonywania zarządzaną przez jądro – ma własny stan planowania, w tym priorytet, przypisanie do procesora i informacje rozliczeniowe; może się znajdować w jednym z sześciu stanów: gotowości (ready) , pogotowia (standby) (bezpośrednio przed wykonaniem), aktywności (running) , oczekiwania, przejściowym (transition) (oczekiwanie na niezbędne zasoby) i zakończenia. Wiesław Płaczek Systemy Operacyjne: Wykład 13 8 JJąądrodro –– pplanowanielanowanie pprzrzyydziadziałłuu procesoraprocesora • Dyspozytor jądrowy (kernel dispatcher) korzysta z 32 priorytetów w celu ustalenia kolejności wątków – dwie klasy: Klasa zmienna –wątki o priorytetach 0–15; Klasa czasu rzeczywistego –wątki o priorytetach z przedziału 16–31. Z każdym priorytetem związana jest osobna kolejka. • Charakterystyka strategii planowania priorytetowego: Tworzenie dobrych czasów odpowiedzi w wątkach interakcyjnych (korzystających z okien) oraz utrzymywanie urządzeń WE/WY w ruchu – przez podwyższanie priorytetów procesów ograniczonych przez WE/WY. Umożliwienie wątkom ograniczonym przez procesor korzystanie z zaoszczędzonych cykli procesora w trybie drugoplanowym – przez obniżanie ich priorytetów przy przerwaniach czasomierza. • Planowanie przydziału