Perspektywa historyczna Podstawy projektu Elementy systemu. Podsystemy środowiskowe System plików Interfejs programowy.



Podobne dokumenty
WINDOWS NT. Diagram warstw systemu Windows NT

Wprowadzenie do systemów operacyjnych

dr inż. Jarosław Forenc

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

System plików. Warstwowy model systemu plików

Sektor. Systemy Operacyjne

Działanie systemu operacyjnego

Jądro systemu operacyjnego

System plików przykłady. implementacji

System operacyjny MACH

Działanie systemu operacyjnego

Działanie systemu operacyjnego

System plików przykłady implementacji

Zarządzanie pamięcią operacyjną

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

16MB - 2GB 2MB - 128MB

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Struktury systemów operacyjnych

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Architektura systemu komputerowego

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Budowa systemów komputerowych

Działanie systemu operacyjnego

Zarządzanie pamięcią operacyjną

Struktura dysku. Dyski podstawowe i dynamiczne

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu

4. Procesy pojęcia podstawowe

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

Systemy plików FAT, FAT32, NTFS

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

Program Rejestr zużytych materiałów. Instrukcja obsługi

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

5. Model komunikujących się procesów, komunikaty

Systemy operacyjne III

Architektura komputerów

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

PAMIĘĆ OPERACYJNA...107

Jarosław Kuchta. Administrowanie Systemami Komputerowymi. System plików

SPIS TREŚCI: KARTY GRAFICZNE... 15

Zaawansowane funkcje systemów plików. Ewa Przybyłowicz

Konwersja maszyny fizycznej na wirtualną

Mikroprocesor Operacje wejścia / wyjścia

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

Wprowadzenie. Dariusz Wawrzyniak 1

Zespól Szkół Ponadgimnazjalnych Nr 17 im. Jana Nowaka - Jeziorańskiego Al. Politechniki 37 Windows Serwer 2003 Instalacja

4. Procesy pojęcia podstawowe

System plików Linuksa

Architektura i administracja systemów operacyjnych

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Zarządzanie pamięcią w systemie operacyjnym

Architektura komputerów

Architektura komputerów

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

DHL CAS ORACLE Wymagania oraz instalacja

[1/15] Chmury w Internecie. Wady i zalety przechowywania plików w chmurze

Bazy danych 2. Wykład 1

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

LEKCJA TEMAT: Zasada działania komputera.

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Prezentacja systemu RTLinux

Proces y i y w i ąt ą ki

HARD DISK MANAGER PORÓWNANIE EDYCJI

Praca w sieci równorzędnej

Tworzenie partycji i dysków logicznych

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Mechanizmy pracy równoległej. Jarosław Kuchta

Rejestr HKEY_LOCAL_MACHINE

Podsumowanie. Klasyfikacja ze względu na. liczbę użytkowników. Klasyfikacja ze względu na. Inne rodzaje systemów operacyjnych. sposób przetwarzania

Programowanie na poziomie sprzętu. Programowanie w Windows API

Klient-Serwer Komunikacja przy pomocy gniazd

1. Podstawy...P Polecenia podstawowe...p... 18

Podsumowanie. Klasyfikacja ze względu na sposób przetwarzania. Klas. ze względu na liczbę wykonywanych zadań

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Systemy operacyjne III

Podsumowanie. Systemy operacyjne Podsumowanie 1. Klasyfikacja ze względu na sposób przetwarzania

Struktura systemów komputerowych

System plików warstwa logiczna

Podstawy Techniki Komputerowej. Temat: BIOS

Komputery przemysłowe i systemy wbudowane

MANAGER 2010 PROFESSIONALP VS. VIRTUALIZATION WIRTUALIZACJA OBSŁUGIWANE ANAGER 2010 C MANAGER 2010 CORPORATE: Funkcja. Korzyści.

dr inż. Jarosław Forenc

System operacyjny System operacyjny

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

PC0060. ADAPTER Kabel Easy Copy PC-Link USB 2.0 Proste kopiowanie, bez instalacji. Instrukcja obsługi

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

ROZSZERZANIE MOŻLIWOŚCI...

Informatyka. informatyka i nauki komputerowe (computer science)

1) Czym jest architektura systemu Windows 7 i jak się ją tworzy? 2) Jakie są poszczególne etapy uruchomienia systemu Windows 7?

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

SYSTEMY WEJŚCIA-WYJŚCIA

Czujniki obiektowe Sterowniki przemysłowe

Transkrypt:

Wiesław Płaczek Systemy Operacyjne: Wykład 13 1 System operacyjny Windows XP Perspektywa historyczna Podstawy projektu Elementy systemu Jądro Egzekutor Podsystemy środowiskowe System plików Interfejs programowy

Perspektywa historyczna 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

Wiesław Płaczek Systemy Operacyjne: Wykład 13 3 Podstawy projektu 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.

Podstawy projektu 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

Podstawy projektu 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

Podstawy projektu 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

Elementy systemu Proces rejestracyjny Aplikacje systemu OS/2 Aplikacje Aplikacje Aplikacje Aplikacje systemu Win16 systemu Win32 systemu DOS systemu POSIX Podsystem bezpieczeństwa Pakiet uwierzytelniania Baza danych zarządcy bezpieczeństwa kont Zarządca WE/WY System plików Zarządca pamięci wirtualnej Moduły obsługi urządzeń Moduły obsługi sieci Podsystem OS/2 Zarządca obiektów Monitor bezpieczeństwa odniesień Win16 VDM Egzekutor Zarządca procesów Jądro Warstwa abstrakcji sprzętu (HAL) Sprzęt Podsystem Win32 Zarządca automatycznego instalowania Zarządca pamięci Tryb użytkownika wirtualnej MS-DOS VDM Udogodnienie wywoływania procedur lokalnych Tryb jądra Podsystem POSIX Zarządca okien Moduły sterujące urządzeń graficznych Wiesław Płaczek Systemy Operacyjne: Wykład 13 7

Jądro 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

Jądro planowanie przydziału procesora 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 procesora może zachodzić w następujących sytuacjach: gdy wątek przechodzi do stanu gotowości lub oczekiwania, gdy kończy działanie, kiedy aplikacja zmienia priorytet wątku lub przypisanie procesora. Wątki czasu rzeczywistego mają preferencyjny dostęp do procesora dzięki możliwości wywłaszczania; system Windows XP nie jest jednak rygorystycznym systemem czasu rzeczywistego. Wiesław Płaczek Systemy Operacyjne: Wykład 13 9

Jądro obsługa przerwań Dyspozytor jądrowy obsługuje pułapki (traps) powodowane wyjątkami i przerwaniami generowanymi przez sprzęt i oprogramowanie. Proste wyjątki mogą być obsługiwane przez procedurę obsługi pułapki; obsługa innych należy do dyspozytora wyjątków (exception dispatcher). Dyspozytor przerwań w jądrze obsługuje przerwania, wywołując procedurę obsługi przerwania (interrupt service routine ISR) zawartą w module sterującym urządzenia lub jądrową procedurę obsługi pułapki. Przerwanie jest reprezentowane przez obiekt przerwania, który zawiera wszystkie informacje potrzebne do obsługi przerwania. Przerwania mają priorytety i są obsługiwane w ich kolejności 32 poziomy przerwań (IRQL): 8 do użytku jądra, 24 dla warstwy HAL. Aby powiązać przerwanie dowolnego poziomu z procedurą obsługi, jądro korzysta z tablicy rozdzielczej przerwań (interrupt dispatch table). Dyspozytor jądrowy realizuje dwa rodzaje przerwań programowych: Asynchroniczne wywołanie procedury (asynchronous procedure call APC) przerywa wykonywanie wyjątku, po czym następuje wywołanie procedury; używane do rozpoczynania nowego wątku, kończenia procesów i zawiadamiania o zakończeniu asynchronicznego WE/WY; w wątkach tworzy się kolejki wywołań APC. Opóźniane wywołanie procedury (deferred procedure call DPC) używane do odraczania przetwarzania przerwań, np. opóźnianie przetwarzania przerwań od urządzeń, obsługa wyzerowanych czasomierzy, wywłaszczanie wątków po upływie zaplanowanych kwantów czasu; są ustawiane w kolejce, nie blokują innych ISR. Wiesław Płaczek Systemy Operacyjne: Wykład 13 10

Egzekutor (executive) zarządca obiektów Windows XP stosuje obiekty we wszystkich swoich usługach i fragmentach, np. obiekty: katalogowe, dowiązań symbolicznych, semaforów, zdarzeń, procesów, wątków, portów, plików. Zadaniem zarządcy obiektów (object manager), będącego składową egzekutora, jest nadzorowanie użytkowania wszystkich obiektów: Generuje uchwyt (handle) do obiektu w postaci unikalnej liczby całkowitej. Dba o bezpieczeństwo, np. sprawdza, czy proces ma prawo dostępu do obiektu. Śledzi, które procesy używają których obiektów każdy nagłówek obiektu zawiera licznik procesów posiadających uchwyty do danego obiektu. Utrzymuje licznik odwołań do obiektu przez system (który używa wskaźników). Działania na obiektach wykonywane są za pomocą standardowego zbioru metod (funkcji wirtualnych): create, open, close, delete, query name, parse i security. Operacja query name jest wywoływana, gdy wątek posiadający referencję do obiektu chce poznać jego nazwę. Operacja parse jest używana przez zarządcę obiektów w celu odnalezienia obiektu na podstawie jego nazwy. Operację security wywołuje się w celu zabezpieczenia operacji na wszystkich obiektach, np. gdy proces otwiera/zamyka obiekt lub zmienia tryb jego ochrony. Wiesław Płaczek Systemy Operacyjne: Wykład 13 11

Egzekutor nazywanie obiektów Egzekutor umożliwia nazwanie dowolnego obiektu; przestrzeń nazw jest globalna; nazwa może być trwała lub tymczasowa. Nazwy obiektów są strukturalne, jak ścieżki dostępu w systemach MS-DOS i UNIX. Katalogi są reprezentowane za pomocą obiektów katalogowych zawierających nazwy wszystkich obiektów w danym katalogu. Rozbudowa przestrzeni nazw obiektów następuje przez dodawanie obiektów urządzeń reprezentujących tomy (wolumeny) z systemami plików. Windows XP implementuje obiekt dowiązań symbolicznych (podobny do dowiązań symbolicznych systemu UNIX) pozwala na tworzenie wielu skrótów lub synonimów odnoszących się do tego samego pliku; używany w abstrakcyjnej przestrzeni nazw. Proces otrzymuje uchwyt do obiektu przez jego utworzenie, otwarcie istniejącego obiektu, uzyskanie kopii podwojonego uchwytu od innego procesu lub odziedziczenie go po procesie macierzystym. Wszystkie uchwyty pamiętane są w tablicy obiektów procesu. Każdy obiekt jest chroniony przez listę kontroli dostępów (accesscontrol list) każdy użytkownik posiada obiekt żetonu dostępu. Wiesław Płaczek Systemy Operacyjne: Wykład 13 12

Egzekutor zarządca pamięci wirtualnej Projekt zarządcy pamięci wirtualnej (VM) zakłada, że sprzęt obsługuje odwzorowania między pamięcią fizyczną a wirtualną, zapewnia stronicowanie, przezroczystą zgodność zawartości pamięci podręcznych w systemach wieloprocesorowych, odwzorowywania na tę samą ramkę wielu wpisów w tablicy stron. Zarządca VM używa stronicowanego schematu zarządzania pamięcią ze stronami rozmiaru 4 KB (8 KB) na procesorach 32 (64)-bitowych. Strony danych przydzielone do procesu, które nie znajdują się w pamięci fizycznej są przechowywane w pliku stronicowania na dysku albo odwzorowywane bezpośrednio w zwykłym pliku. Na procesorach IA32 zarządca VM stosuje adresy 32-bitowe przestrzeń adresowa każdego procesu ma 4 GB, z czego górne 2 GB są identyczne dla wszystkich procesów i są używane przez Windows XP w trybie jądra, a dolne 2 GB są specyficzne dla danego procesu i są dostępne zarówno w trybie użytkownika, jak i w trybie jądra. Zarządca VM przydziela pamięć dwustopniowo: W pierwszym kroku rezerwuje część wirtualnej przestrzeni adresowej procesu. W drugim kroku zatwierdza przydział przez wygospodarowanie miejsca w przestrzeni pamięci wirtualnej (w pamięci fizycznej lub plikach stronicowania). Wiesław Płaczek Systemy Operacyjne: Wykład 13 13

Zarządca pamięci wirtualnej c.d. W tłumaczeniu adresu wirtualnego bierze udział wielopoziomowa tablica stron w procesorach zgodnych z IA32: Każdy proces ma katalog stron mieszczący 1024 wpisy po 4 B. Każdy wpis katalogu stron (page-directory entry PDE) wskazuje na tablicę stron zawierającą 1024 wpisy po 4 B(page-table entry PTE). Każdy wpis PTE wskazuje na 4 KB ramkę strony w pamięci fizycznej. Łączna wielkość wszystkich tablic procesu wynosi 4 MB. 32-bitowy adres pamięci wirtualnej rozbija się na trzy części: Najstarszych 10 bitów wskazuje jeden wpis w katalogu stron. Następnych 10 bitów służy do wybrania wpisu tablicy stron (PTE). Pozostałych 12 bitów wskazuje konkretny bajt od początku danej ramki. Wskaźnik do bajta pamięci fizycznej tworzy się łącząc 20 bitów wpisu PTE z 12 młodszymi bitami adresu wirtualnego. Pozostałych 12 bitów wpisu PTE używa się do opisu stanu strony: 3 bity zarezerwowane są na użytek systemu operacyjnego; Pozostałe bity określają: tryb dostępu, czy sięgano do zawartości strony, czy ją zapisywano, atrybuty przechowywania podręcznego itd. Wiesław Płaczek Systemy Operacyjne: Wykład 13 14

Schemat pamięci wirtualnej Wiesław Płaczek Systemy Operacyjne: Wykład 13 15 Wpis nr 0 katalogu stron Katalog stron... Wpis nr 1023 katalogu stron Wpis nr 0 tablicy stron Tablica stron nr 0 Tablica stron nr 1023 Wpis nr Wpis nr 0 tablicy stron... 1023... tablicy stron Wpis nr 1023 tablicy stron Strona wielkości 4 KB Strona wielkości 4 KB Strona wielkości 4 KB Strona wielkości 4 KB

Zarządca pamięci wirtualnej c.d. Strona może znajdować się w jednym z 6 stanów: ważna (poprawna) używana przez aktywny proces; wyzerowana zapełniona zerami i gotowa do użycia; wolna nie ma odniesienia w żadnej pozycji tablicy stron (PTE); w pogotowiu (standby) kopia informacji już przechowywanej na dysku; zmieniona zapisana przez proces, lecz jeszcze nie przekopiowana na dysk; zła bezużyteczna z powodu wykrycia błędu sprzętowego. Zarządca pamięci wirtualnej przechowuje informacje o wszystkich stronach pamięci fizycznej w bazie ramek stron. Każda ramka (strona fizyczna) ma jeden wpis w tej bazie. Wpis ten pokazuje na pozycję w tablicy stron (PTE), a ta pokazuje na ramkę. Ramki stron są powiązane w listy (np. stron wyzerowanych, stron wolnych). Jeśli pojawi się brak strony, to zarządca VM wprowadza brakującą stronę w pierwszą ramkę na liście stron wolnych ponieważ odwołania do pamięci zwykle mają cechę lokalności (locality), więc zarządca VM zakłada, że brak strony dotyczy również kilku sąsiednich stron i też je sprowadza. Jeśli na liście wolnych stron brakuje ramek, to do każdego procesu, który ma więcej stron niż wynosi jego minimalny zbiór roboczy stosowany jest algorytm FIFO odbierania stron. Wiesław Płaczek Systemy Operacyjne: Wykład 13 16

Egzekutor zarządca procesów Zarządca procesów (process manager) świadczy usługi tworzenia, usuwania i użytkowania wątków, procesów i zadań (jobs). Nie zawiera żadnych danych o związkach między rodzicami a ich potomkami ani o hierarchii procesów takie informacje należą do odpowiedniego podsystemu środowiskowego będącego właścicielem procesu. Procesy zawierają jeden lub wiele wątków, a same mogą być grupowane w jednostki zwane obiektami zadań (job objects) używane do kierowaniu wielkimi maszynami centrów danych. Przykład tworzenia procesu w środowisku podsystemu Win32: Po wywołaniu funkcji CreateProcess przez aplikację podsystemu Win32, do Win32 wysłany zostaje komunikat wywołujący interfejs API zarządcy procesów w celu utworzenia procesu. Zarządca procesów wywołuje zarządcę obiektów w celu utworzenia obiektu procesu, a następnie zwraca uchwyt do obiektu podsystemowi Win32. Podsystem Win32 jeszcze raz wywołuje zarządcę procesu, aby ten utworzył wątek danego procesu. Na koniec system Win32 zwraca uchwyty do nowego procesu i wątku. Wiesław Płaczek Systemy Operacyjne: Wykład 13 17

Egzekutor wywołanie procedury lokalnej Udogodnienia wywoływania procedur lokalnych (local procedure call LPC) używa się do przekazywania zamówień i wyników między procesami klienta i serwera na tej samej maszynie w szczególności przy zamawianiu usług różnych podsystemów XP. Proces serwer na prośbę klienta tworzy kanał komunikacyjny (złożony z pary portów: K S, S K) w obiekcie portu łączącego i zwraca klientowi uchwyt. Po utworzeniu kanału LPC należy określić jedną z trzech technik przekazywania komunikatów: Pierwsza jest odpowiednia dla małych komunikatów (do kilkuset bajtów); portowa kolejka komunikatów jest używana jako pamięć pośrednia, a komunikaty są kopiowane od jednego procesu do drugiego. Druga nadaje się do dłuższych komunikatów unika się kopiowania danych przez zastosowanie pamięci dzielonej; przesyłane komunikaty zawierają jedynie wskaźnik do obszaru pamięci dzielonej i informację o jego rozmiarze. Trzecia technika wykorzystuje interfejsy API do bezpośredniego czytania i pisania w przestrzeni adresowej procesu; LPC dostarcza funkcji i synchronizacji umożliwiających serwerowi dostęp do danych klienta. Zarządca okien (window manager) Win32 używa metody przekazywania komunikatów niezależnej od LPC na prośbę klienta serwer tworzy trzy obiekty: wątek usługowy wyłącznie do obsługi zamówień, 64-KB obiekt sekcji pamięci wspólnej i obiekt pary zdarzeń do synchronizacji przesyłania danych. Zalety dobra wydajność! Wady duże zużycie zasobów! Wiesław Płaczek Systemy Operacyjne: Wykład 13 18

Egzekutor zarządca wejścia-wyjścia wyjścia Zarządca wejścia-wyjścia (I/O manager) jest odpowiedzialny za: systemy plików oraz za moduły sterujące urządzeń i sieci. Pamięta, które z modułów sterujących urządzeń, modułów filtrujących i systemów plików są załadowane oraz zarządza buforami zamówień WE/WY. Współpracuje z zarządcą pamięci wirtualnej (VM) przy odwzorowywaniu w pamięci wyników plikowych operacji WE/WY. Nadzoruje pracę zarządcy pamięci podręcznej, który zajmuje się przechowywaniem podręcznym dla całego systemu WE/WY. Umożliwia stosowanie zarówno operacji synchronicznych (przez czekanie na zakończenie WE/WY), jak i asynchronicznych. Zarządca WE/WY zamienia otrzymane zamówienia na standardową postać, zwaną pakietem zamówienia wejścia-wyjścia (I/O request packet IRP), po czym kieruje pakiety IRP do przetwarzania do modułów sterujących (ułożonych w stos dla każdego urządzenia). Moduły filtrujące (filter modules) moduły sterujące mające możliwość sprawdzania i modyfikowania każdej operacji WE/WY. Wiesław Płaczek Systemy Operacyjne: Wykład 13 19

Egzekutor zarządca pamięci podręcznej Windows XP stosuje scentralizowaną pamięć podręczną opartą na plikach. Proces WE/WY Zarządca pamięci podręcznej WE/WY z pamięci podręcznej System plików Zarządca pamięci wirtualnej Kopiowanie danych Brak strony Plikowe wejście-wyjście WE/WY z pominięciem pamięci podręcznej Moduł obsługi dysku Zarządca WE/WY Wiesław Płaczek Systemy Operacyjne: Wykład 13 20

Egzekutor monitor bezpieczeństwa odniesień Obiektowa natura Windows XP umożliwia zastosowanie jednolitego mechanizmu bieżącego sprawdzania dostępu oraz doglądania w systemie wszystkich jednostek użytkownika. Kiedy tylko proces zgłasza się po uchwyt do obiektu, to monitor bezpieczeństwa odniesień (security reference monitor) sprawdza żeton bezpieczeństwa procesu i listę kontroli dostępu (ACL) obiektu, aby przekonać się, czy proces ma niezbędne uprawnienia. Egzekutor zarządca automatycznego instalowania Zarządca automatycznego instalowania (plug-and-play manager PnP) jest używany do rozpoznawania i dostosowywania systemu (także dynamicznie) do zmian w konfiguracji sprzętu. Po dodaniu nowego urządzenia (np. szyna PCI lub port USB), zarządca PnP ładuje odpowiedni moduł sterujący. Zarządca PnP sprawuje również nadzór nad zasobami używanymi przez każde urządzenie oraz zasobami, które mogą być użyte. Wiesław Płaczek Systemy Operacyjne: Wykład 13 21

Podsystemy środowiskowe Podsystemy środowiskowe (enviromental subsystems) są procesami trybu użytkownika, umieszczonymi w warstwie powyżej egzekutora, których zadaniem jest umożliwianie Windows XP wykonywania programów opracowanych dla innych systemów operacyjnych, np. 16-bitowy Windows, MS-DOS, POSIX. Każdy podsystem środowiskowy udostępnia jedno środowisko aplikacji. Windows XP korzysta z podsystemu Win32 jako głównego środowiska operacyjnego; podsystem ten jest używany do rozpoczynania wszystkich procesów, zapewnia także wszystkie funkcje klawiatury, myszy i ekranu graficznego. Gdy ma nastąpić wykonanie aplikacji, Win32 wywołuje zarządcę pamięci wirtualnej (VM) w celu załadowania wykonywalnego kodu aplikacji. Zarządca VM zwraca Win32 informację o rodzaju kodu wykonywalnego. Jeżeli nie jest to rdzenny kod wykonywalny Win32, to Win32 przekazuje sterowanie właściwemu podsystemowi środowiskowemu. Podsystem środowiskowy korzysta z LPC w celu udostępniania usług systemu operacyjnego procesom klientów. Wiesław Płaczek Systemy Operacyjne: Wykład 13 22

Podsystemy środowiskowe c.d. Środowisko systemu MS-DOS jest realizowane przez aplikację podsystemu Win32 zwaną maszyną wirtualną systemu DOS (virtual DOS machine VDM) jest to proces poziomu użytkownika, który podlega stronicowaniu i planowaniu jak każdy inny proces systemu Windows XP. Środowisko 16-bitowego systemu Windows jest dostarczane przez VDM i składa się z oprogramowania zwanego Windows on Windows (WOW) zawiera procedury jądra systemu Windows 3.1 oraz namiastki (stubs) procedur zarządcy okien i funkcji graficznego interfejsu urządzeń (graphical device interface GDI). 32-bitowe środowisko Windows na procesorze IA64 warstwa konwersji wywołań 32-bitowego podsystemu Win32 na wywołania 64-bitowe: WOW64. Podsystem POSIX został zaprojektowany po to, aby wykonywać aplikacje spełniające standard POSIX1, którego podstawą jest model systemu UNIX aplikacje te mają dostęp do dowolnego systemu plików w systemie Windows XP. Podsystemy rejestracji i bezpieczeństwa: Podsystem rejestracji uwierzytelnia użytkowników podczas logowania do systemu za pomocą usługi rejestracji (logon service) WINLOGON. W celu uwierzytelnienia użytkownik musi mieć w systemie konto i odpowiednie hasło. Podsystem bezpieczeństwa wywołuje pakiet uwierzytelniana w celu sprawdzenia tożsamości użytkownika za pomocą informacji pobranych z podsystemu rejestracji lub serwera sieciowego, a następnie generuje żeton dostępu służący do reprezentowania użytkownika w systemie żeton ten jest sprawdzany przez monitor bezpieczeństwa odniesień przy każdej próbie dostępu użytkownika do obiektu w systemie. Wiesław Płaczek Systemy Operacyjne: Wykład 13 23

System plików W systemie Windows XP istnieje możliwość korzystania z systemów plików FAT16 (MS-DOS, Windows 3.x) i FAT32 (Windows 95/98), ale podstawowym systemem plików jest NTFS. Podstawową jednostką systemu NTFS jest tom (volume). Tom jest tworzony przez program administrowania dyskiem systemu XP. Jest oparty o logiczny podział dysku. Może zajmować część dysku lub cały dysk, albo też obejmować kilka dysków. W systemie NTFS wszystkie metadane (metadata), takie jak informacje dotyczące tomu, są pamiętane w zwykłym pliku. Jako jednostek przydziału dyskowego NTFS używa klastrów (gron), tj. grup przyległych sektorów dyskowych. Liczba sektorów w klastrze jest potęgą liczby 2. Wielkość klastra jest ustalana podczas formatowania systemu NTFS w zależności od wielkości tomu może ona wynosić 0.5, 1, 2 lub 4 KB. Rozmiar klastrów jest znacznie mniejszy niż w 16-bitowym systemie FAT16 (32 KB), co redukuje wewnętrzną fragmentację. Np. dla dysku o pojemności 1.6 GB zawierającego 16 000 plików, wewnętrzna fragmentacja w systemie FAT16 zużyłaby średnio 400 MB przestrzeni dyskowej, natomiast w systemie NTFS tylko 17 MB. Wiesław Płaczek Systemy Operacyjne: Wykład 13 24

Budowa wewnętrzna NTFS Jako adresów dyskowych NTFS używa logicznych numerów klastrów (logical cluster number LCN). Plik w NTFS nie jest zwykłym strumieniem bajtów, jak w systemach MS-DOS lub UNIX, ale jest obiektem strukturalnym złożonym z atrybutów. Każdy atrybut pliku jest niezależnym strumieniem bajtów, który podlega tworzeniu, usuwaniu, czytaniu i zapisywaniu. Niektóre atrybuty są standardowe dla wszystkich plików, np. nazwa(y) pliku, czas jego utworzenia, deskryptor bezpieczeństwa, inne są specyficzne dla określonych rodzajów plików, np. katalog ma atrybuty w postaci indeksów nazw zawartych w nim plików, zwykły plik ma atrybut danych itd.. Każdy plik jest opisany przez jeden lub więcej rekordów tablicy przechowywanej w specjalnym pliku o nazwie główna tablica plików (master file table MFT). Rozmiar rekordu tablicy MFT wynosi od 1 do 4 KB. Małe atrybuty przechowywane są w samym rekordzie MFT i zwane są atrybutami rezydentnymi. Wielkie atrybuty (np. dane) przechowywane są w jednym lub więcej ciągłych rozszerzeń na dysku, do których wskaźniki znajdują się w rekordzie MFT. Wiesław Płaczek Systemy Operacyjne: Wykład 13 25

Wiesław Płaczek Systemy Operacyjne: Wykład 13 26 Budowa wewnętrzna NTFS c.d. Każdy plik w tomie systemu NTFS ma niepowtarzalny identyfikator zwany odsyłaczem do pliku (file reference). 64-bitowy odsyłacz składa się z 48-bitowego numeru pliku (numer rekordu w strukturze MFT) i 16-bitowego numeru kolejnego. Numer kolejny jest zwiększany przy każdym ponownym użyciu wpisu w tablicy MFT, co umożliwia systemowi NTFS wykonywanie wewnętrznej kontroli spójności (np. wychwycenie nieaktualnego odwołania do usuniętego pliku po użyciu wpisu MFT na nowy plik). Przestrzeń nazw zorganizowana jest w hierarchię katalogów: Każdy katalog używa struktury danych o nazwie B+-drzewa do zapamiętywania indeksu nazw swoich plików (B+-drzewo pozwala unikać kosztu reorganizacji drzewa oraz długość każdej drogi od korzenia drzewa do liścia jest taka sama). Korzeń indeksu katalogu zawiera górny poziom B+-drzewa. Każdy wpis w katalogu zawiera: nazwę pliku, odsyłacz do pliku, kopię znacznika czasu uaktualnienia i rozmiar pliku pobrane z atrybutów pliku rezydujących w tablicy MFT.

Budowa wewnętrzna NTFS c.d. Podstawowe pliki metadanych systemu NTFS: Tablica MFT oraz kopia jej pierwszych 16 pozycji (do działań naprawczych). Plik dziennika: do zapisywania wszystkich uaktualnień metadanych NTFS. Plik tomu: nazwa tomu, wersja systemu NTFS, bit uszkodzenia tomu. Tablica definicji atrybutów: typy atrybutów i dozwolone operacje na nich. Katalog główny: katalog najwyższego poziomu w hierarchii systemu plików. Plik mapy bitów: wskazuje przydzielone do plików oraz wolne klastry tomu. Plik rozruchowy: kod rozruchowy Windows XP, adres fizyczny tablicy MFT. Plik złych klastrów: przechowuje informacje o wadliwych obszarach tomu. Kopie-cienie tomów W systemie Windows XP istnieje możliwość doprowadzenia tomu do określonego stanu, a następnie utworzenia kopii-cienia (shadow copy). Jest do odmiana kopiowania przy zapisie, w którym oryginalna treść bloków zmienionych po utworzeniu kopii-cienia jest zachomikowana w kopii. Kopii-cienia można używać jako kopii zapasowej spójnego obrazu tomu. Serwerowa wersja Windows XP używa kopii-cieni do wydajnego utrzymywania starych wersji plików pamiętanych w serwerach plików. Wiesław Płaczek Systemy Operacyjne: Wykład 13 27

NTFS usuwanie skutków awarii Wszystkie uaktualnienia struktur danych NTFS odbywają się w ramach transakcji. Zanim nastąpi zmiana struktury danych, transakcja zapisuje w dzienniku działań (log) wszelkie informacje niezbędne do powtórzenia lub anulowania podjętych czynności. Po zmianie struktury danych, w dzienniku wpisywany jest rekord zatwierdzający, aby zaznaczyć, że transakcja zakończyła się pomyślnie. Po awarii system jest w stanie przywrócić struktury danych do stanu spójnego poprzez przetwarzanie zapisów dziennika. Okresowo (zwykle co 5 s) do dziennika zapisywany jest rekord zwany punktem kontrolnym (checkpoint) rekordy przed nim można usuwać. Schemat ten nie gwarantuje, że zawartość wszystkich plików użytkownika będzie poprawna po awarii; zapewnia tylko, że struktury danych systemu (pliki metadanych) będą nieuszkodzone i będą odzwierciedlać stan sprzed awarii. Dziennik jest przechowywany w trzecim pliku metadanych na początku tomu tworzony jest przy formatowaniu systemu plików. Czynności uaktualniania dziennika realizowane są przez obsługę dziennika (log-file service) systemu Windows XP. Wiesław Płaczek Systemy Operacyjne: Wykład 13 28