SYSTEMY OPERACYJNE
dr. hab. Vitaliy Yakovyna
yakovyna@matman.uwm.edu.pl http://wmii.uwm.edu.pl/~yakovyna/
UNIWERSYTET WARMIŃSKO-MAZURSKI W OLSZTYNIE
Wydział Matematyki i Informatyki
Literatura Podstawowa
• A. Silberschatz, P. B. Galvin, Podstawy systemów operacyjnych, Wydanie 7, WNT, 2006
• A. Silberschatz, P. B. Galvin, G. Gagne, Operating system concepts, 10th edition, NJ : Wiley, 2018
• A. S. Tanenbaum, H. Bos, Systemy Operacyjne, Wydanie IV, Wydawnictwo Helion, 2015
Dlaczego warto studiować systemy operacyjne?
• Prawie cały kod działa na systemie operacyjnym – wiedza o działaniu systemów operacyjnych ma kluczowe znaczenie dla właściwego, wydajnego, efektywnego i bezpiecznego programowania
• Zrozumienie podstaw systemów operacyjnych,
sposobu, w jaki sterują one sprzęt komputerowy i tego, co dostarczają aplikacjom, jest bardzo
przydatne dla tych, którzy piszą na nich programy i używają ich
Wprowadzenie
Definicja
• System operacyjny to oprogramowanie, które zarządza sprzętem komputera
• podstawą dla programów aplikacyjnych – program sterujący, który zarządza wykonywaniem programów użytkownika
• pośrednik między użytkownikiem komputera a sprzętem komputerowym – alokator zasobów
• Podstawową odpowiedzialnością systemu operacyjnego jest przydzielanie zasobów sprzętowych (procesora, pamięci i urządzeń wejścia/wyjścia) do programów
Składniki Systemu Komputerowego
Składniki Systemu Operacyjnego
• System operacyjny (SO) jest jedynym programem uruchomionym przez cały czas na komputerze — zwykle nazywane jądrem
• Inne rodzaje programów:
• programy systemowe, które są związane z systemem operacyjnym, ale niekoniecznie są częścią jądra
• programy aplikacyjne, które obejmują wszystkie programy niezwiązane z działaniem systemu
• Mobilny SO często zawiera oprogramowanie pośrednie (middleware) – zestaw frameworków programowych, które zapewniają dodatkowe usługi programistom
Historia Systemów Operacyjnych
• Pierwsza generacja (1945-1955): lampy próżniowe
• Druga generacja (1955-1965): tranzystory i systemy przetwarzania wsadowego
• FMS (Fortran Monitor System), IBSYS
• Trzecia generacja (1965-1980): układy scalone i wielozadaniowość
• OS/360, CTSS, MULTICS, UNIX
• Czwarta generacja (od 1980): komputery osobiste
• СР/М, MS-DOS, Windows, Linux, FreeBSD, MacOS
• Piąta generacja (od 1990 r.): komputery mobilne
• Symbian OS, Windows Mobile, Blackberry OS, iOS, Android
Wczesne Systemy
• Przed 1940 r. urządzenia komputerowe
projektowano i implementowano do wykonywania określonych, stałych zadań
• Lata 1940 – Alan Turing i John von Neumann: idea komputera programowego o uniwersalnym
przeznaczeniu
• Manchester Mark I – jeden z najwcześniejszych
komputerów przechowujących instrukcje w pamięci
Manchester Mark 1 (1949)
Rozwój Oprogramowania i Sprzętu
• Czytniki kart, drukarki liniowe, taśmy magnetyczne
• Asemblery, ładowarki i łączniki zostały zaprojektowane w celu ułatwienia programowania
• Biblioteki wspólnych funkcji - można skopiować do
nowego programu bez konieczności ponownego pisania -> ponowne wykorzystanie oprogramowania
• Sterowniki urządzeń (ang. driver) – napisane dla każdego urządzenia wejścia / wyjścia
• Później kompilatory dla FORTRAN, COBOL i innych języków
Dedykowane Systemy Komputerowe
• Znaczna ilość czasu konfiguracji może być zaangażowana w prowadzenie zadania:
• Ładowanie taśmy kompilatora FORTRAN
• Uruchamianie kompilatora
• Rozładowywanie taśmy kompilatora
• Ładowanie taśmy asemblera
• Uruchamianie asemblera
• Rozładowywanie taśmy asemblera
• Ładowanie programu obiektowego
• Uruchamianie programu obiektowego
• Potrzeba wysokiego wykorzystania czasu procesora
Współdzielone Systemy Komputerowe
• Rozwiązanie dla wysokiego wykorzystania czasu procesora:
1) Profesjonalni operatorzy komputerowi 2) Zadania o podobnych potrzebach były
grupowane razem i uruchamiane przez komputer jako grupa, aby skrócić czas instalacji
• Automatyczne sekwencjonowanie zadań – pierwsze szczątkowe systemy operacyjne
• Monitor rezydentny – automatycznie przenosi kontrolę z jednego zadania na drugie
Układ Pamięci Dla Monitora
Rezydentnego
Talia Kart dla Prostego Systemu
Wsadowego
Wejście / Wyjście On-line i Off-line
• Problem - urządzenia wejścia / wyjścia są same w sobie wolniejsze niż procesor
• Działanie urządzeń wejścia / wyjścia:
(a) on-line, (b) off-line
Spooling
• Simultaneous Peripheral Operation On-Line
• nakłada operacje w/w jednego zadania z obliczaniem innych
• CPU i w/w działają z dużo większą szybkością
• naturalnie prowadzi do multiprogramowania
IBM 360
Migracja Koncepcji i Funkcji
Systemu Operacyjnego
Organizacja Systemu
Komputerowego
Typowy System Komputerowy
Typowa Operacja W/W
• sterownik urządzenia ładuje odpowiednie rejestry do kontrolera urządzenia
• kontroler urządzenia sprawdza zawartość tych
rejestrów, aby określić, jakie działania należy podjąć
• kontroler rozpoczyna przesyłanie danych z urządzenia do lokalnego bufora
• po zakończeniu przesyłania danych kontroler urządzenia informuje sterownik urządzenia o zakończeniu operacji – przerwanie
Przerwania
• Sprzęt może wywołać przerwanie w dowolnym momencie, wysyłając sygnał do procesora
• Kiedy procesor zostaje przerwany, zatrzymuje to, co robi, i natychmiast przekazuje wykonanie do
ustalonej lokalizacji – wektora przerwań
• Po zakończeniu CPU wznawia przerwane obliczenia
Implementacja Przerwań
• Sterownik urządzenia wywołuje przerwanie poprzez stanowienie sygnału na linii żądania przerwania
• CPU przechwytuje przerwanie i wysyła je do obsługi przerwań (ang. interrupt handler)
• Obsługa zapisuje każdy stan, który będzie się zmieniał podczas pracy
• Obsługa usuwa przerwanie, serwisując urządzenie
Cykl W/W z Przerwaniami
Maskowane i Niemaskowane Przerywania
• Większość procesorów ma dwie linie żądania przerwań:
• Niemaskowane przerywania – zarezerwowane dla zdarzeń takich jak nieodwracalne błędy pamięci
• Maskowane – może być wyłączony przez CPU przed wykonaniem krytycznych sekwencji instrukcji, które nie mogą być przerywane. Używany przez
kontrolery urządzeń do żądania usługi
Łańcuch i Priorytet Przerwań
• Łańcuch przerwań: każdy element wektora przerwania wskazuje na głowę listy procedur obsługi przerwań
• Gdy przerwanie jest wywoływane, procedury obsługi na odpowiedniej liście są wywoływane jeden po drugim, dopóki nie zostanie znaleziony, który może obsłużyć żądanie
• Poziomy priorytetu przerwań: umożliwia procesorowi odłożenie obsługi przerwań o niskim priorytecie bez maskowania wszystkich przerwań i umożliwia
wywłaszczenie przerwania o niskim priorytecie dla obsługi przerwania o wysokim priorytecie
Tablica Wektorów Przerwań
Procesorów Intel
Struktura Pamięci
• Komputery ogólnego przeznaczenia uruchamiają większość swoich programów z pamięci
wielokrotnego zapisu, zwanej pamięcią główną (pamięć o dostępie losowym, pamięć RAM)
• Program bootstrap - electrically erasable
programmable read-only memory (EEPROM)
• Wszystkie formy pamięci są tablicą bajtów
• Architektura von Neumanna i Harvarda
Typowy Cykl Wykonania Instrukcji
• Pobieranie instrukcji z pamięci
• Przechowywanie tej instrukcji w rejestrze instrukcji
• Dekodowanie instrukcji (może powodować
pobieranie operandów z pamięci i zapisywanie ich w wewnętrznym rejestrze)
• Wykonywanie instrukcji (wynik może być zapisany w pamięci)
Dodatkowa Pamięć
• Jednostka pamięci widzi tylko strumień adresów pamięci
• Większość systemów komputerowych zapewnia pamięć dodatkową jako rozszerzenie pamięci głównej
• Najpopularniejszymi urządzeniami dodatkowej pamięci dyski twarde (HDD) i urządzenia pamięci nieulotnej (pamięć flash)
Hierarchia Pamięci
Bezpośredni Dostęp do Pamięci
• Sterowane przerwaniami W/W mogę generować wysokie koszty, gdy są używane do masowego
przesyłania danych
• Rozwiązanie – bezpośredni dostęp do pamięci (DMA)
• Sterownik urządzenia przesyła cały blok danych
bezpośrednio do lub z urządzenia i pamięci głównej bez interwencji procesora
• Podczas gdy kontroler urządzenia wykonuje operacje W/W, procesor jest dostępny do wykonania innej pracy
Architektura Systemu
Komputerowego
Architektura Systemu Komputerowego
• Systemy jednoprocesorowe
• Systemy wieloprocesorowe
• Systemy wielordzeniowe
• Systemy klastrowe
Symetryczne Przetwarzanie Wieloprocesowe
• Symetryczne przetwarzanie wieloprocesowe (SMP):
każdy procesor wykonuje wszystkie zadania, w tym funkcje SO i procesy użytkownika
• Zła skalowalność – rywalizacja o magistrali systemowej staje się wąskim gardłem
Nierównomierny Dostęp do Pamięci
• Nierównomierny dostęp do pamięci (NUMA) – każdy procesor (lub grupa procesorów) jest wyposażony we własną pamięć lokalną, do której można uzyskać dostęp za pośrednictwem szybkiej lokalnej magistrali
• Procesory są połączone wspólnym interkonektem,
więc wszystkie procesory współużytkują jedną fizyczną przestrzeń adresową
• Systemy NUMA można skalować bardziej efektywnie w miarę dodawania kolejnych procesorów
• Potencjalna wada - zwiększone opóźnienie, gdy procesor musi uzyskać dostęp do pamięci zdalnej
Architektura NUMA
Ogólna Struktura Systemu
Klastrowego
Systemy Klastrowe
• Klaster składa się z kilku systemów komputerowych połączonych za pośrednictwem sieci
• Usługa wysokiej dostępności:
• zgrabna degradacja
• odporne na uszkodzenia
• Klastrowanie asymetryczne: jedna maszyna
znajduje się w stanie gotowości do pracy, podczas gdy druga obsługuje aplikacje
• Klastrowanie symetryczne: co najmniej dwa hosty obsługują aplikacje i monitorują się nawzajem
Operacje Systemu
Operacyjnego
Multiprogramowanie
• System operacyjny zapewnia środowisko, w którym wykonywane są programy
• Jednym z najważniejszych aspektów SO jest możliwość uruchamiania wielu programów
• Multiprogramowanie zwiększa wykorzystanie procesora
• W systemie wieloprogramowym program w trakcie wykonywania nazywa się procesem
Wielozadaniowość
• Wielozadaniowość jest logicznym rozszerzeniem multiprogramowania
• W systemach wielozadaniowych procesor wykonuje wiele procesów, przełączając się między nimi, ale przełączenia występują często, zapewniając
użytkownikowi szybki czas reakcji
Multiprogramowanie i
Wielozadaniowość (kont.)
• Posiadanie kilku procesów w pamięci w tym samym czasie wymaga pewnej formy zarządzania pamięcią
• Jeśli kilka procesów jest gotowych do uruchomienia w tym samym czasie, system musi wybrać, który
proces będzie uruchamiany w następnej kolejności – planowanie procesora
• Typową metodą zapewnienia rozsądnego czasu reakcji jest pamięć wirtualna. Robi abstrakcję pamięci głównej jako dużej, jednolitej macierzy pamięci, oddzielając pamięć logiczną od pamięci fizycznej
Multiprogramowanie i
Wielozadaniowość (kont.)
• Systemy wieloprogramowe i wielozadaniowe muszą również zapewniać system plików
• Aby zapewnić prawidłowe wykonanie, system musi również zapewniać mechanizmy synchronizacji i komunikacji procesów
• SO może zapewnić, że procesy nie zostaną zakleszczone (ang. deadlock)
Obsługa w Dwóch Trybach
• Konieczne jest rozróżnienie między wykonaniem kodu systemu operacyjnego a kodu użytkownika w celu zapewnienia prawidłowego wykonania
systemu
• Przynajmniej potrzebujemy dwóch oddzielnych trybów działania: trybu użytkownika i trybu jądra
• Bit trybu jest dodawany do sprzętu komputera, aby wskazać bieżący tryb
• Instrukcje uprzywilejowane - mogą być wykonywane tylko w trybie jądra
Przejście z Trybu Użytkownika do
Jądra
Działanie Wielomodowe
• Procesory Intel mają cztery oddzielne pierścienie ochronne
• Systemy ARMv8 mają siedem trybów
• Procesory z wirtualizacją - osobny tryb dla menedżera maszyn
wirtualnych (VMM): więcej uprawnień niż proces
użytkownika, ale mniej niż jądro
Cykl Życia Instrukcji Wykonania
• Kontrola początkowa znajduje się w systemie
operacyjnym, gdzie instrukcje są wykonywane w trybie jądra
• Po nadaniu kontroli aplikacji użytkownika tryb zostaje ustawiony na tryb użytkownika
• W końcu sterowanie jest przełączane z powrotem do systemu operacyjnego przez przerwanie,
pułapkę lub wywołanie systemowe
• Obsługa w dwóch trybach zapewnia lepszą ochronę systemu operacyjnego
Cykl Życia Instrukcji Wykonania:
Wywołania Systemowe
• Wywołania systemowe udostępniają programowi użytkownika zasoby, aby poprosił SO o wykonanie zadań zarezerwowanych dla systemu operacyjnego w imieniu programu użytkownika
• Kiedy wywołanie systemowe jest wykonywane, jest ono zazwyczaj traktowane przez sprzęt jako
przerwanie programowe
• Sterowanie przechodzi przez wektor przerwań do procedury serwisowej w systemie operacyjnym, a bit trybu jest ustawiony na tryb jądra
Naruszenia Zasad
• Sprzęt ochronny wykrywa błędy, które naruszają tryby
• Błędy te są zwykle obsługiwane przez SO
• Jeśli program użytkownika w jakiś sposób zawodzi, sprzęt przechwytuje system operacyjny
• Pułapka przekazuje sterowanie przez wektor przerwań do SO, tak jak to robi przerwanie
• Gdy wystąpi błąd programu, system operacyjny musi zakończyć program nieprawidłowo
Regulator Czasu
• System operacyjny musi utrzymywać kontrolę nad procesorem - regulator czasu
• Regulator czasu można ustawić tak, aby przerwał
działanie komputera po określonym czasie: stałym lub zmiennym
• Zmienny regulator czasu jest na ogół realizowany przez zegar o stałej szybkości i licznik
• Przed przekazaniem kontroli użytkownikowi SO zapewnia, że regulator czasu jest ustawiony na przerwanie
• Instrukcje modyfikujące zawartość regulatora czasu są uprzywilejowane
Zarządzanie Zasobami
Zarządzanie Procesami
• Program nie może nic zrobić, dopóki jego instrukcje nie zostaną wykonane przez procesor
• Proces wymaga pewnych zasobów – w tym czasu procesora, pamięci, plików i urządzeń wejścia / wyjścia – w celu wykonania tego zadania
• Proces jednowątkowy ma jeden licznik programu określający następną instrukcję do wykonania
Zarządzanie Procesami
System operacyjny odpowiada za następujące czynności związane z zarządzaniem procesami:
• Tworzenie i usuwanie zarówno procesów użytkownika, jak i systemu
• Planowanie procesów i wątków na procesorach
• Zawieszanie i wznawianie procesów
• Zapewnienie mechanizmów do synchronizacji procesów
• Zapewnienie mechanizmów komunikacji procesowej
Zarządzanie Pamięcią
• Główna pamięć ma kluczowe znaczenie dla funkcjonowania systemu komputerowego
• Pamięć główna (RAM) to duża tablica bajtów; każdy bajt ma swój własny adres
• Aby program mógł zostać wykonany, musi zostać zmapowany na adresy bezwzględne i załadowany do pamięci
• Kilka programów w pamięci – potrzeba zarządzania pamięcią
Zarządzanie Pamięcią
System operacyjny odpowiada za następujące czynności związane z zarządzaniem pamięcią:
• Śledzenie, które części pamięci są obecnie używane i który proces ich używa
• Przydzielanie i zwalnianie pamięci w razie potrzeby
• Podejmowanie decyzji, które procesy (lub części procesów) i dane powinny być przeniesione do i z pamięci
Zarządzanie Systemem Plików
• Aby system komputerowy był wygodny dla użytkowników, system operacyjny zapewnia jednolity logiczny widok przechowywania informacji
• System operacyjny abstrahuje od fizycznych właściwości urządzeń pamięci masowej, aby zdefiniować logiczną jednostkę pamięci – plik
• System operacyjny mapuje pliki na nośniki fizyczne i uzyskuje dostęp do tych plików za pośrednictwem urządzeń pamięci masowej
Zarządzanie Systemem Plików
System operacyjny odpowiada za następujące czynności związane z zarządzaniem plikami:
• Tworzenie i usuwanie plików
• Tworzenie i usuwanie katalogów
• Obsługa prymitywów do manipulowania plikami i katalogami
• Odwzorowywanie (mapowanie) plików na pamięć masową
• Tworzenie kopii zapasowej plików na stabilnym (nieulotnym) nośniku pamięci
Zarządzanie Pamięcią Masową
System operacyjny odpowiada za następujące czynności związane z zarządzaniem pamięcią masową:
• Montowanie i odmontowanie
• Zarządzanie wolnym miejscem
• Przydział pamięci
• Planowanie dysku
• Partycjonowanie
• Ochrona
Zarządzanie Pamięcią Podręczną
Poziom 1 2 3 4 5
Nazwa rejestry pamięć
podręczna
pamięć główna
dysk SSD dysk HDD
Typowy rozmiar < 1 KB < 16MB < 64GB < 1 TB < 10 TB Technologia
wdrażania
pamięć
niestandardowa z wieloma
portami CMOS
on-chip lub off-chip CMOS SRAM
CMOS DRAM pamięć flash dysk
magnetyczny
Czas dostępu (ns) 0.25-0.5 0.5-25 80-250 25,000-50,000 5,000,000
Przepustowość (MB/sec)
20,000 -100,000 5,000 -10,000 1,000 - 5,000 500 20 – 150
Zarządzany przez kompilator sprzęt
komputerowy
system operacyjny
system operacyjny
system operacyjny Wspierany przez pamięć
podręczna
pamięć główna
dysk dysk dysk lub taśma
Zarządzanie Pamięcią Podręczną
• Buforowanie to ważna zasada systemów komputerowych
• Ponieważ pamięć podręczna ma ograniczony rozmiar, zarządzanie pamięcią podręczną jest ważnym problemem projektowym
• Staranny dobór rozmiaru pamięci podręcznej i polityki zastępczej może spowodować znaczne zwiększenie wydajności
Zarządzanie Systemem Wejścia / Wyjścia
• Jednym z celów systemu operacyjnego jest ukrycie specyfiki poszczególnych urządzeń sprzętowych od użytkownika
• Podsystem wejścia / wyjścia składa się z kilku komponentów:
• Komponent zarządzania pamięcią, który obejmuje buforowanie, pamięć podręczną i spooling
• Ogólny interfejs między urządzeniem a sterownikiem
• Sterowniki dla konkretnych urządzeń sprzętowych
Bezpieczeństwo i
Ochrona
Ochrona Danych
• Pliki, segmenty pamięci, procesor i inne zasoby
mogą być obsługiwane tylko przez te procesy, które uzyskały odpowiednią autoryzację z systemu
operacyjnego
• Ochrona to dowolny mechanizm kontrolujący dostęp procesów lub użytkowników do zasobów zdefiniowanych przez system komputerowy
• System zorientowany na ochronę zapewnia środki pozwalające na rozróżnienie między
autoryzowanym a nieautoryzowanym użyciem
Bezpieczeństwo
• Zadaniem bezpieczeństwa jest obrona systemu przed atakami zewnętrznymi i wewnętrznymi:
• wirusy i robaki
• ataki typu odmowa usługi (DoS)
• kradzież tożsamości
• kradzież usługi (nieautoryzowane użycie systemu)
• Zapobieganie niektórym z tych ataków jest uważane za funkcję systemu operacyjnego w
niektórych systemach; inne systemy pozostawiają je polityce lub dodatkowemu oprogramowaniu
Wirtualizacja
Wirtualizacja
• Wirtualizacja to technologia, która pozwala na abstrahowanie sprzętu z jednego komputera w
kilku różnych środowiskach wykonawczych, tworząc w ten sposób wrażenie, że każde oddzielne
środowisko działa na swoim prywatnym komputerze
• Wirtualizacja umożliwia uruchomienie systemów operacyjnych jako aplikacji w innych systemach operacyjnych
Emulacja
• Emulacja obejmuje symulację sprzętu
komputerowego w oprogramowaniu i jest zwykle używana, gdy źródłowy typ procesora jest inny niż docelowy
• Emulacja ma wysoką cenę
• Każda instrukcja maszynowa, która działa natywnie w systemie źródłowym, musi zostać
przetłumaczona na równoważną funkcję w systemie docelowym, co często prowadzi do kilku instrukcji docelowych
Architektura Hyper-V
Architektura XenClient
Systemy Rozproszone
Systemy Rozproszone
• System rozproszony to zbiór fizycznie oddzielnych, możliwie heterogenicznych systemów
komputerowych, które są połączone w sieć, aby zapewnić użytkownikom dostęp do różnych
zasobów, utrzymywanych przez system
• Dostęp do udostępnionego zasobu zwiększa szybkość obliczeń, funkcjonalność, dostępność danych i niezawodność
Sieciowe i Rozproszone Systemy Operacyjne
• Sieciowy system operacyjny to system operacyjny, który udostępnia funkcje sieciowe, które umożliwia różnym procesom na różnych komputerach
wymianę komunikatów
• Komputer działający w sieciowym SO działa
autonomicznie, chociaż jest świadomy sieci i może komunikować się z innymi komputerami
• Rozproszony system operacyjny zapewnia mniej autonomiczne środowisko
• Różne komputery komunikują się wystarczająco blisko, aby zapewnić iluzję, że tylko jeden system operacyjny kontroluje sieć
Wprowadzenie.
Streszczenie
Streszczenie (1)
• System operacyjny to oprogramowanie, które zarządza sprzętem komputerowym, a także
zapewnia środowisko do uruchamiania programów.
• Przerwania są kluczowym sposobem interakcji sprzętu z systemem operacyjnym. Urządzenie
sprzętowe wyzwala przerwanie, wysyłając sygnał do procesora CPU, aby ostrzec, że pewne zdarzenie
wymaga uwagi. Przerwanie jest zarządzane przez procedurę obsługi przerwań.
Streszczenie (2)
• Aby komputer mógł uruchamiać programy, one
muszą znajdować się w głównej pamięci, która jest jedynym obszarem pamięci, do którego procesor może uzyskać bezpośredni dostęp.
• Pamięć główna to zwykle pamięć ulotna, która traci swoją zawartość, gdy zasilanie jest wyłączone lub utracone.
• Pamięć nieulotna jest rozszerzeniem pamięci
głównej i jest w stanie utrzymać duże ilości danych na stałe.
Streszczenie (3)
• Najpopularniejszym nieulotnym urządzeniem pamięci masowej jest dysk twardy, który może przechowywać zarówno programy, jak i dane.
• Szeroka gama systemów pamięci masowej w
systemie komputerowym może być zorganizowana w hierarchię według szybkości i kosztów. Wyższe poziomy są drogie, ale są szybkie. Gdy
przechodzimy w dół hierarchii, koszt na bajt zwykle zmniejsza się, podczas gdy czas dostępu wzrasta.
Streszczenie (4)
• Nowoczesne architektury komputerowe są
systemami wieloprocesorowymi, w których każdy procesor zawiera kilka rdzeni obliczeniowych.
• Nowoczesne systemy operacyjne wykorzystują multiprogramowanie, które umożliwia
jednoczesne zapisanie kilku zadań w pamięci, dzięki czemu procesor zawsze ma zadanie do wykonania.
• Wielozadaniowość jest rozszerzeniem
multiprogramowania, w którym algorytmy
planowania CPU szybko przełączają się między
procesami, zapewniając użytkownikom szybki czas reakcji.
Streszczenie (5)
• Aby uniemożliwić programom użytkownika
zakłócenie prawidłowego działania systemu, sprzęt systemu ma dwa tryby: tryb użytkownika i tryb
jądra.
• Różne instrukcje są uprzywilejowane i mogą być wykonywane tylko w trybie jądra. Przykłady
obejmują instrukcję przejścia do trybu jądra, sterowania wejściem / wyjściem, zarządzania
regulatorem czasowym i zarządzania przerwaniami.
Streszczenie (6)
• Proces jest podstawową jednostką pracy w
systemie operacyjnym. Zarządzanie procesami obejmuje tworzenie i usuwanie procesów oraz zapewnienie mechanizmów umożliwiających komunikację i synchronizację procesów.
• System operacyjny zarządza pamięcią, śledząc, które części pamięci są używane i przez kogo. Jest również odpowiedzialny za dynamiczne
przydzielanie i zwalnianie przestrzeni pamięci.
Streszczenie (7)
• Przestrzeń dyskowa jest zarządzana przez system operacyjny; obejmuje to zapewnienie systemów plików do reprezentowania plików i katalogów oraz zarządzania przestrzenią na urządzeniach pamięci masowej.
• Systemy operacyjne zapewniają mechanizmy
ochrony i bezpieczeństwa systemu operacyjnego i użytkowników.
• Wirtualizacja obejmuje abstrahowanie sprzętu komputera do kilku różnych środowisk
wykonawczych.