Nowoczesne systemy operacyjne

Podobne dokumenty
Działanie systemu operacyjnego

Działanie systemu operacyjnego

Jądro systemu operacyjnego

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Wprowadzenie do systemów operacyjnych

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

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Struktury systemów operacyjnych

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

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

dr inż. Jarosław Forenc

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

System komputerowy. System komputerowy

Prezentacja systemu RTLinux

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

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

LEKCJA TEMAT: Zasada działania komputera.

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Mikroprocesor Operacje wejścia / wyjścia

4. Procesy pojęcia podstawowe

Monitor maszyn wirtualnych

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Komputery przemysłowe i systemy wbudowane

System plików. Warstwowy model systemu plików

Systemy operacyjne III

4. Procesy pojęcia podstawowe

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

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

SYSTEMY OPERACYJNE WYKLAD 5 - zarządzanie pamięcią pomocniczą

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

System plików i zarządzanie pamięcią pomocniczą. Koncepcja pliku. Atrybuty pliku. Struktura pliku. Typ pliku nazwa, rozszerzenie (extension)

Systemy operacyjne. Paweł Pełczyński

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

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

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

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Architektura systemów informatycznych. system operacyjny podstawowe pojęcia, budowa

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Urządzenia wejścia-wyjścia

Systemy operacyjne III

Zarządzanie procesami i wątkami

System operacyjny MACH

Budowa systemów komputerowych

Architektura komputerów

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

SYSTEMY WEJŚCIA-WYJŚCIA

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

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

4. Procesy pojęcia podstawowe

Informatyka. informatyka i nauki komputerowe (computer science)

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

projektowanie systemu

Tworzenie sterowników dla FreeBSD. Michał Hajduk

Systemy operacyjne system przerwań

dr inż. Jarosław Forenc

Zarządzanie pamięcią operacyjną

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

Architektura komputerów

System operacyjny komputera Informacje podstawowe

16MB - 2GB 2MB - 128MB

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

Architektura komputerów

Systemy operacyjne, architektura komputerów

Architektura komputerów. Układy wejścia-wyjścia komputera

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Pliki. Operacje na plikach w Pascalu

Sieciowe Systemy Operacyjne

1. Etapy rozwoju systemów komputerowych

System operacyjny. System operacyjny to program kontrolujący pracę komputera

Zarządzanie pamięcią operacyjną

Architektura i administracja systemów operacyjnych

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

Struktura systemów komputerowych

Sektor. Systemy Operacyjne

DOS COMMAND.COM. Rys. 2. Główne moduły programowe systemu operacyjnego DOS. Interpreter poleceń. Rys. 3. Warstwowa struktura systemu DOS

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008

Tworzenie partycji i dysków logicznych

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

Podstawowe zagadnienia

PAMIĘĆ OPERACYJNA...107

Systemy plików FAT, FAT32, NTFS

Systemy operacyjne i sieci komputerowe Szymon Wilk Partycjonowanie 1

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

Programowanie Niskopoziomowe

Warstwy systemu Windows 2000

Systemy operacyjne i sieci komputerowe Szymon Wilk System operacyjny 1

MAGISTRALE ZEWNĘTRZNE, gniazda kart rozszerzeń, w istotnym stopniu wpływają na

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

1. Co to jest system operacyjny

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

Temat. Budowa systemu komputerowego Zakładka 1. Elementy tworzące stanowisko komputerowe.

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Organizacja typowego mikroprocesora

Transkrypt:

Nowoczesne systemy operacyjne Szymon Krywult Jan Kleszczyński 13 maja 2013

Plan Wstęp Kernel Procesy i wątki System plików System wejścia-wyjścia Podsumowanie

Wstęp Definicja Zbiór oprogramowania zarządzającego warstwą sprzętową komputera oraz zapewniającą odpowiednią warstwę abstrakcji (interfejs) dla aplikacji.

Wstęp Zadania systemu operacyjnego Zarządzanie warstwą sprzętową Obsługa urządzeń wejścia - wyjścia Zarządzanie zasobami (np: przydzielanie czasu procesora, zarządzanie pamięcią) Dostarczenie wygodniejszego interfejsu dla aplikacji (użytkownika) Warstwa abstrakcji dla aplikacji Interfejs użytkownika (GUI, powłoka) Zapewnienie bezpieczeństwa Ograniczenie możliwości manipulowania warstwą sprzętową przez aplikacje

Wstęp Rys historyczny 1944-1955: Pierwsza generacja (Lampy elektronowe) 1955-1965: Druga generacja (Tranzystory i systemy wsadowe) FORTRAN Monitor System IBSYS 1965-1980: Trzecia generacja (Układy scalone) OS/360 (współdzielenie pamięci, wielozadaniowość) (MULTICS ) UNIX ( MINIX LINUX) BSD (Berkeley Software Distribution) System V (AT&T) Standard POSIX - definiuje minimalny interfejs wywołań, który musi obsługiwać każdy system zgodny z UNIX

Wstęp Rys historyczny 1980 - obecnie: Czwarta generacja (Komputery osobiste) (DOS ) MS-DOS Mac OS LINUX Windows

Wstęp Cechy nowoczesnego systemu operacyjnego W zależności od przeznaczenia nowoczesny system operacyjny charakteryzują się: możliwością obsługi konfiguracji wieloprocesorowych wielozadaniowością umożliwiać współpracę z urządzeniami zewnętrznymi dostarczać interfejs umożliwiający wygodną pracę dla użytkownika

Wstęp Rodzaje systemów operacyjnych Rodzaje systemów operacyjnych: Systemy operacyjne komputerów mainframe Systemy operacyjne serwerów Wieloprocesorowe systemy operacyjne Systemy operacyjne komputerów osobistych Systemy operacyjne urządzeń podręcznych Rozproszone systemy operacyjne Wbudowane systemy operacyjne Systemy operacyjne czasu rzeczywistego Systemy operacyjne kart elektronicznych Systemy operacyjne węzłów sensorowych

Kernel Jądro systemu (ang. Kernel) - podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Podstawowe architektury jąder: jądro monolityczne mikrojądro nanokernel jądro hybrydowe

Kernel Jądro monolityczne Jądro monolityczne - wszystkie zadania są wykonywane przez jądro, będące jednym, dużym programem działającym w trybie jądra. Zaletą jest prostota, stabilność, łatwość komunikacji pomiędzy różnymi elementami jądra (jedna przestrzeń adresowa). Spotykane w serwerach i zaporach sieciowych. Rysunek: Schemat jądra monolitycznego

Kernel Mikrojądro Mikrojądro - okrojona wersja jądra monolitycznego, części odpowiedzialne za bardziej wyrafinowane funkcje są wydzielone do funkcjonalnych bloków albo realizowane jako zwykłe procesy w trybie użytkownika. Rysunek: Schemat mikrojądra Nanokernel mniejsza wersja mikrojądra Spotykane w systemach czasu rzeczywistego i systemach wbudowanych.

Kernel Jądro hybrydowe Jądro hybrydowe architektura pośrednia między jądrem monolitycznego i mikrojądrem. Krytyczne usługi są na stałe wkompilowane w główny kod jądra, inne usługi pozostają oddzielone od głównego jądra i działają jako serwery (w przestrzeni jądra). Dzięki temu rozwiązaniu możliwe jest zachowanie wydajności jądra monolitycznego dla kluczowych usług. Stosowane w Windows i Mac OS. Rysunek: Schemat jądra hybrydowego

Kernel Tryb działania jądra Jądro systemowe działa w trybie nadzorcy, co oznacza, że ma pełną kontrolę nad warstwą sprzętową. Pełna kontrola nad warstwą sprzętową jest konieczna, ponieważ to jądro odpowiada za zarządzanie pamięcią, przydzielanie czasu procesora oraz obsługę przerwań.

Procesy i wątki Proces Proces - instancja wykonywanego programu. Składa się z: PID kodu programu licznika rozkazów stosu sekcji danych wątków Zasoby: pamięć czas procesora urządzenia I/O pliki

Procesy i wątki Wątek Wątek (ang. thread) część programu wykonywana współbieżnie w obrębie jednego procesu; w jednym procesie może istnieć wiele wątków. Proces od wątku odróżnia brak własnych zasobów dla wątku, które są wspólne dla wszystkich wątków wewnątrz jednego procesu.

Procesy i wątki Cechy wątków Wątki wymagają mniej zasobów do działania i też mniejszy jest czas ich tworzenia. Współdzielona przestrzeń adresowa - wystarczy przekazać wskaźnik. Odczyt (a niekiedy zapis) danych o rozmiarze nie większym od słowa maszynowego nie wymaga synchronizacji (procesor gwarantuje atomowość takiej operacji).

Procesy i wątki Multi CPU vs virtual CPU oraz Green threads Teoretycznie każdy proces ma własne CPU. Rzeczywiście jądro wirtualizuje procesor dla wątku, a tak naprawdę procesy wykonują się konkurencyjnie.

Procesy i wątki Multi CPU vs virtual CPU oraz Green threads Teoretycznie każdy proces ma własne CPU. Rzeczywiście jądro wirtualizuje procesor dla wątku, a tak naprawdę procesy wykonują się konkurencyjnie. Green threads Green threads - symulowanie wielowątkowości przez maszynę wirtualną nawet na maszynie nie obsługującej wątków.

Procesy i wątki Tworzenie procesów cobegin - oznaczenie kodu jako wykonującego się równolegle poprzez umieszczeni między cobegin, a coend. Niejawne, statyczne procesy. forall - równoległość danych fork - dynamiczne tworzenie procesów poprzez dyrektywy fork i join. jawnie - jawnie tworzone procesy

Procesy i wątki Planowanie Planowanie (ang. Scheduling) polega na ustaleniu kolejności oraz czasu wykonywania procesów. Odpowiadają za nie planery, które można podzielić na dwie podstawowe grupy: Wbudowane Autonomiczne

Procesy i wątki Model decyzji Wywłaszczający: zatrzymuje proces i zmienia harmonogram, jest wołany przy zmianie stanu systemu lub okresowo Niewywłaszczający: proces działa tak długo jak to możliwe, planer jest wołany gdy proces się zakończy lub zablokuje

Procesy i wątki Wybór procesów Określenie, który proces będzie aktywny następuje przez nadanie priorytetów za pomocą funkcji priorytetów. Wyróżniamy następujące ich rodzaje: Losowo Chronologicznie (FIFO) Cyklicznie (Round Robin - RR) Shortest-Job-Firt (SJF) Shortest-Remaining-Time (SRT) Multilevel Priority (ML) Multilevel Feedback (MLF) Rate Monotonic (RM) Earliest Deadline First (EDF)

Procesy i wątki FIFO Wcześniejszy proces ma wyższy priorytet. Start po czasie t = 2 Proces p 1 ma wyższy priorytet

Procesy i wątki RR Przełącza się miedzy procesami co określony czas. Proces p 1 pracuje aż do t = 2 W t = 2 6 następuje przełączanie między procesami Proces p @ kończy sie t = 6, a proces p 1 w t = 7

Procesy i wątki SJF Priorytet odwrotnie proporcjonalny do długości wykonania procesu. Start po czasie t = 2 Proces p 2 ma priorytet P = 2,a p 1 P = 5

Procesy i wątki SRT Priorytet odwrotnie proporcjonalny do pozostałego czasu. Proces p 1 działa aż do t = 2 W t = 2 proces p 2 ma P = 2, a p 1 P = 3

Procesy i wątki ML Priorytet nadany zewnętrznie. Na tym samym poziomie wykorzystuje się FIFO albo RR. p 1 z priorytetem 3 działa aż do pojawienia się p 2 z P = 7 Po skończeniu p 2 powrót do p 1

Procesy i wątki MLF Tak jak ML wybiera proces o najwyższym priorytecie, ale początkowy priorytet jest nadawany jako najwyższy, a potem zmniejszany o jeden co jednostkę czasu.

Procesy i wątki MLF - przykład p 1 zaczyna z P = n W t = 2 p 1 ma już P = n 2 pojawia się p 2 z P = n i blokuje p 1 p 2 działa przez dwa cykle zmniejszając priorytet do P = n 2 Priorytet p 2 i p 1 są równe, p 2 kończy działanie po kolejnej jednostce z P = n 3 p 1 zostaje wznowione i wykonuje się do końca.

Procesy i wątki RM Im krótszy cykl procesu tym większy priorytet. Opiera się na rzeczywistym czasie, co pozwala na użycie go w systemach RT. p 1 ma cykl równy 9, a p 2 7 p 1 działa, do pojawienia się p 2 p 1 wznawia się po skończeniu p 2

Procesy i wątki EDF Wyższy priorytet ma proces o bliższym wymaganym czasie zakończenia. d okres r rzeczywisty czas w systemie r%d czas w danym okresie d - r%d pozostały czas w okresie P = (d r%d)

System plików System plików - część systemu operacyjnego zarządzająca plikami znajdującymi się na lokalnych nośnikach danych. Określa sposób w jaki pliki będą przechowywane oraz atrybuty jakie pliki mogą posiadać. Przykładowe atrybuty: wykonywalność, właściciel, flagi określające pliki systemowe lub pliki tylko do odczytu itp.

System plików Plik Plik - logiczna jednostka informacji używana do modelowania nośnika danych. Z punktu widzenie systemu operacyjnego pliki mogą być podzielone na: tekstowe binarne systemowe specjalne wykonywalne

System plików Operacje na plikach i folderach od strony użytkownika00 Podstawowe wywołania systemowe związane z: plikami: create, delete, open, close, read, write, append, seek, get attributes, set attributes, rename katalogami: create, delete, opendir, closedir, readdir, rename, link, unlink

System plików Układ systemu plików System operacyjny traktuje dysk jak jednowymiarową tablicę bloków logicznych. W sektorze 0 dysku umieszczony jest główny rekord startowy MBR (ang. Master Boot Record), który zawiera informacje o tym, która z partycji jest aktywna (zawiera system operacyjny). Każda partycja zaczyna się od tzw. bloku startowego (ang. Boot Block), w którym znajduje się program ładujący system operacyjny

System plików Układ systemu plików Cały dysk Tablica Partycji Partycje MBR Blok startowy Superblok Mechanizm zarządzania wolnym miejscem i - węzły Katalog główny Pliki i katalogi Rysunek: Przykładowy układ systemu plików

System plików Układ systemu plików Blok startowy (ang. Boot block) - pierwszy blok partycji, zawiera program ładujący system operacyjny Superblok - zawiera najważniejsze parametry systemu plików (np. identyfikator systemu plików, liczba bloków w systemie plików) Mechanizm zarządzania wolnym miejscem - podstawowym mechanizmem jest mapa bitowa: każdy blok jest reprezentowany przez jeden bit (0 wolny) szybkie wyszukiwanie wolnych bloków wydajny wtedy, gdy mapa jest w RAM i - węzły (węzły indeksujące) - tablica struktur (po jednej dla każdego pliku), w których zawarte są informacje o plikach. Katalog główny - zawiera wierzchołek drzewa systemu plików

System plików Alokacja plików Alokacja ciągła Alokacja na bazie listy jednokierunkowej Alokacja bazująca na jednokierunkowej liście z wykorzystaniem tabeli w pamięci

System plików Alokacja ciągła Pliki lokowane po kolei, jeden po drugim. Zalety: Prosta w implementacji - należy pamiętać jedynie adres pierwszego bloku i ilość bloków w danym pliku Wydajny odczyt - cały plik można odczytać w pojedynczej operacji Wady: Fragmentacja zewnętrzna - usuwanie plików powoduje powstawanie luk Problematyczne zwiększanie rozmiaru pliku

System plików Alokacja listowa Pliki przechowywane w postaci jednokierunkowej listy bloków dyskowych. Pierwsze słowo w każdym bloku jest używane jako wskaźnik do następnego bloku. Pozostała część bloku przeznaczona na dane. Zalety: Brak fragmentacji zewnętrznej Wystarczy pamiętać adres dyskowy tylko pierwszego bloku Łatwe zwiększanie rozmiaru pliku Wady: Losowy dostęp do danych jest bardzo wolny Dane przechowywane w blokach nie muszą być potęgą dwójki

System plików Alokacja bazująca na jednokierunkowej liście z wykorzystaniem tabeli w pamięci Adresy poszczególnych bloków wchodzących w skład pliku umieszczone są w strukturze (węźle indeksowym), która ładowana jest do pamięci. Zalety: Brak fragmentacji zewnętrznej Łatwe zwiększanie rozmiaru pliku Wady: Losowy dostęp do danych jest bardzo wolny

System plików Wirtualne systemy plików Wirtualne systemy plików (VFS) - abstrakcyjna warstwa leżąca ponad rzeczywistym systemem plików. Jego zadaniem jest umożliwienie programom użytkownika na pracę niezależnie od używanego rzeczywistego systemu plików. VFS dostarcza jednolity interfejs wspólny dla wszystkich systemów operacyjnych obsługiwanych przez jądro systemu operacyjnego.

System plików Księgujące systemy plików Systemy księgujące (ang. journaling file systems) najpierw zapisują jakie operacje mają zostać wykonane, a dopiero później je wykonują. Mechanizm stosowany między innymi w systemach NTFS i ext3. Możliwe stosowanie bloków transakcji (wykonywane wszystkie operacje w transakcji lub żadna).

System wejścia-wyjścia System wejścia-wyjścia - system odpowiedzialny za komunikację z urządzeniami zewnętrznymi, podłączanymi do komputera.

System wejścia-wyjścia Jednolity interfejs urządzeń Aby system operacyjny mógł współpracować z szerokim zbiorem urządzeń, dedykowane im sterowniki muszą dostarczyć zbiór funkcji określonych przez system dla danej klasy urządzeń (jednolity interfejs zgodny z systemem operacyjnym). Często sterowniki zawierają tabelę zawierającą adresy do wymaganych funkcji.

System wejścia-wyjścia Rodzaje urządzeń pod względem dostępu do danych Urządzenia wejścia - wyjścia dzielone są pod względem sposobu dostępu do danych: urządzenia blokowe - zawierają wiele bloków danych i które można adresować niezależnie (np. dyski) urządzenia znakowe - generują lub akceptują strumień danych (np. klawiatura, drukarka)

System wejścia-wyjścia Warstwy systemu wejścia-wyjścia Odpowiedź wejścia-wyjścia Warstwa Funkcja wejścia wyjścia Żądanie wejścia-wyjścia Procesy użytkownika Wykonywanie wywołań wejścia-wyjścia; formatowanie wejścia-wyjścia, spooling Oprogramowanie niezależne od urządzenia Nadawanie nazw, zabezpieczenie, blokowanie, buforowane, przydzielanie Sterowniki urządzeń Konfiguracja rejestrów urządzeń, sprawdzanie statusu Procedury obsługi przerwań Aktywacja sterownika po zakończeniu operacji wejścia-wyjścia Sprzęt Wykonywanie operacji wejścia-wyjścia

System wejścia-wyjścia Sposoby komunikacji z urządzeniami Rejestry Zmapowanie do pamięci Pulling Przerwania Direct Memory Access

System wejścia-wyjścia Rejestry Komunikacja odbywa się poprzez rejestry przydzielone dla każdego portu. Rejestry 1-4 bajtowe. Typowo 4 podstawowe: Data In, Data Out, Status, Control. Patrz Wishbone :)

System wejścia-wyjścia Zmapowanie do pamięci Przydzielony obszar pamięci reprezentuje urządzenie. Urządzenia potzrebujące przesłać dużo i szybko (np. karty graficzne). Nie wyklucza używania również rejestrów.

System wejścia-wyjścia Pulling Host sprawdza Busy bit. Wpisuje dane, ustawia bit zapisu, ustawia bit Command Ready. Urządzenie sprawdza bit Command Ready, ustawia Busy bit. Sprawdza bit zapisu, odczytuje dane. Czyści bit błędu, Command Ready oraz Busy.

System wejścia-wyjścia Przerwania Wystawienie przez urządzenie przerwania. Obsłużenie go przez procesor. Powrót do normalnej pracy. Przerwania mają priorytety.

System wejścia-wyjścia DMA Specjalny kontroler DMA kopiuje całe obszary danych bezpośrednio do pamięci. Urządzenie (np. dysk) wskazuje skąd, ile i gdzie skopiować. DMA Conroller wykonuje kopiowanie. DMAC powiadmia przerwaniem CPU gdzie znajdują się dane. W czasie działania DMA CPU nie ma dostępu do szyny PCI czyli między innymi do pamięci RAM, musi opierać się tylko na cachu L1 i L2 oraz rejestrach. Zabronione dla procesów użytkonika ze względów bezpieczeństwa.

System wejścia-wyjścia Realizacja w Windows Rysunek: Realizacja sterowników w Windows

Podsumowanie Podsumowując, nowoczesny system operacyjny powinien: obsługiwać konfiguracje wieloprocesorowe być wielozadaniowy separować zadania jądra od zadań realizowanych przez użytkownika (kernelmode i usermode) obsługiwać I/O umożliwiać łatwy dostęp do plików obsługiwać sieć mieć wygodny UI zapewniać bezpieczeństwo danych