Systemy operacyjne
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.2
Informacje o kursie
• Prowadzący: – Andrzej Lewandowski, dr inŜ. – Email: [email protected]
Katedra Teorii Sygnałów, Instytut Telekomunikacji, Teleinformatyki i Akustyki
• Literatura:– A. Silberschatz., P.B. Galvin, G. Gagne „Podstawy systemów
operacyjnych”, Wyd. 7, WNT, 2006– W. Stallings , „Systemy operacyjne. Struktura i zasady budowy”, PWN,
2005
• Strona kursu:– http://zts.ita.pwr.wroc.pl/dydaktyka
• Zaliczenie kursu
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.3
Wykład 1.: Wprowadzenie do S.O.
• Do czego słuŜą systemy operacyjne
• Organizacja systemów komputerowych
• Architektura systemów komputerowych
• Struktura systemu operacyjnego
• Działanie systemu operacyjnego
• Zarządzanie procesami
• Zarządzanie pamięcią
• Zarządzanie magazynowaniem danych
• Ochrona i bezpieczeństwo
• Systemy rozproszone
• Systemy do zastosowań specjalnych
• Środowiska obliczeniowe
• Systemy operacyjne Open-Source
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.4
Cel
• Przegląd najwaŜniejszych składowych systemów operacyjnych
• Przedstawienie sposobu w jaki są zorganizowane systemy komputerowe
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.5
Co to jest system operacyjny?
• Program będący pośrednikiem pomiędzy uŜytkownikiem komputera, a sprzętem komputerowym
• Zadania systemu operacyjnego:
– Wykonywanie programów uŜytkownika i ułatwianie rozwiązywania problemów uŜytkownika
– Ułatwienie korzystania przez uŜytkownika z systemu komputerowego
– Wykorzystywania sprzętu komputera (hardware, HW) w sposób wydajny
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.6
Struktura systemu komputerowego
• W systemie komputerowym moŜna wyróŜnić cztery składowe
– Sprzęt – zapewnia podstawowe zasoby do obliczeń:
• Procesor (CPU – Central Processing Unit), pamięć, urządzenia we/wy (input/output - I/O)
– System operacyjny
• Steruje i koordynuje uŜywanie sprzętu przez róŜne aplikacje i uŜytkowników
– Aplikacje – wyznaczają sposoby wykorzystywania zasobów systemu do rozwiązywania problemów obliczeniowych
• Procesory tekstu, kompilatory, przeglądarki sieciowe, systemy baz danych, gry, ...
– UŜytkownicy
• Ludzie, maszyny, inne komputery
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.7
Składowe systemu komputerowego
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.8
Definicja systemu operacyjnego
• System operacyjny jest dystrybutorem (alokatorem) zasobów
– Zarządza wszystkimi zasobami
– Decyduje komu przydzielić zasoby w przypadku Ŝądań powodujących konflikt – cel: efektywne i uczciwe wykorzystanie zasobów
• System operacyjny jest programem sterującym
– Steruje wykonywaniem programów tak aby zapobiegać błędom i niewłaściwemu wykorzystaniu komputera, obsługuje i kontroluje pracę urządzeń we/wy
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.9
Definicja systemu operacyjnego c.d.
• Brak powszechnie zaakceptowanej definicji
– Dobre przybliŜenie: „Wszystko co dostarcza producent kiedy zamawiasz system operacyjny”
– Definicja ta jest bardzo ogólna
• „Program, który bez przerwy działa w komputerze” to jądro. Wszystko poza tym to program systemowy (dostarczany wraz z systemem) lub program uŜytkowy
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.10
Organizacja systemu komputerowego
• Działanie systemu komputerowego
– Jeden lub więcej CPU, sprzętowych sterowników urządzeń (device
controller) połączonych wspólną magistralą zapewniającą dostęp do wspólnej pamięci
– CPU i urządzenia działają równolegle konkurując o cykle pamięci
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.11
Budowa komputera
• Składowe komputera (oryg. W.Stallings „Systemy operacyjne. Struktura i zasady budowy”)
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.12
Rejestry i cykl rozkazowy
• Licznik rozkazów (Program counter (PC))
– Zawiera adres rozkazu do pobrania
• Rejestr rozkazów (Instruction register (IR))
– Zawiera ostatnio pobrany rozkaz
• Wykonanie rozkazu w architekturze von Neumanna (oryg. W.Stallings„Systemy operacyjne. Struktura i zasady budowy”)
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.13
Działanie systemu komputerowego -uruchomienie komputera
• Program rozruchowy (ang. bootstrap program) jest ładowany po włączeniu zasilania bądź ponownym uruchomieniu
– Zwykle umieszczony w ROM lub EEPROM, nazywany teŜ (ang.) firmware
– Inicjalizuje system (rejestry CPU, pamięć, kontrolery urządzeń,...)
– Ładuje jądro systemu operacyjnego do pamięci rozpoczyna jego wykonywanie
– Następuje oczekiwanie na zdarzenia
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.14
Przerwania
• Zdarzenia są sygnalizowane za pomocą przerwań (interrupt) sprzętowych lub programowych
• Przerwania sprzętowe są zgłaszane do CPU za pomocą sygnałów elektrycznych na magistrali systemowej
• Program moŜe zgłaszać przerwanie wykonując specjalną operację zwaną wywołaniem systemowym (system call) lub inaczej wywołaniem monitora (monitor call)
• Procesor przestaje wykonywać to co robił i przechodzi do wykonania instrukcji znajdującej się w określonej lokacji
• Lokacja ta zawiera adres startowy procedury obsługi przerwania
• Procedura ta wykonuje się, a po jej zakończeniu CPU wraca do wykonywania przerwanych obliczeń
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.15
Przerwanie - przebieg czasowy
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.16
Wykorzystanie przerwań
• Przerwanie przekazuje sterowanie do procedury obsługi przerwania za pomocą wektora przerwania (ang. interrupt vector), tzn. tablicy wskaźników do procedur obsługi przerwań, zawierającej adresy wszystkich procedur obsługi przerwań
• Architektura przerwań musi uwzględnić zapamiętanie adresu przerwanej instrukcji
• Często przerwania są zablokowane na czas obsługi innego przerwania
• Pułapka (trap) czyli wyjątek (exception) jest przerwaniem wygenerowanym programowo na skutek błędu (np. dzielenie przez zero) lub Ŝądania uŜytkownika, które musi być obsłuŜone przez S.O. – Przejście do wektora przerwań – rozkaz trap (w niektórych systemach
syscall
• System operacyjny jest sterowany przerwaniami (interrupt driven)
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.17
Struktura we/wy
• Urządzenia we/wy (ang. I/O) i CPU mogą pracować równolegle
• KaŜdy kontroler urządzenia zarządza określonym typem urządzenia
• KaŜdy kontroler urządzenia posiada lokalny bufor i rejestry sterujące
• Zwykle s.o. posiada moduły obsługi urządzenia (device drivers), które rozumieją swoje sterowniki urządzeń
• CPU kopiuje dane z/do pamięci głównej do/z buforów lokalnych
• Operacja I/O odbywa się pomiędzy urządzeniem a lokalnym buforem kontrolera
• Kontroler urządzenia informuje moduł obsługi urządzenia, Ŝe zakończył operację za pomocą przerwania
• Moduł zwraca sterowanie do s.o.
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.18
Struktura we/wy – przerwania we/wy
• Po rozpoczęciu operacji we/wy sterowanie wraca do procesu uŜytkownika dopiero po zakończeniu operacji we/wy (we/wy blokujące)
– Czekanie na zakończenie transmisji:
• Instrukcja wait powodująca bezczynność CPU do wystąpienia przerwania
• Pętla czekania
• NajwyŜej jedno Ŝądanie we/wy jest niezakończone w danej chwili, nie ma równoległych operacji we/wy
• Po rozpoczęciu operacji we/wy sterowanie wraca do procesu uŜytkownika bez czekania na zakończenie operacji we/wy (we/wy nieblokujące)
– Wywołanie systemowe – Ŝądanie do S.O. pozwalające uŜytkownikowi czekać na zakończenie we/wy
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.19
blokujące i nieblokujące we/wy
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.20
Anynchroniczne we/wy
• Aby odnotować wiele zamówień na operacje we/wy, S.O. wykorzystuje:
– Tablicę stanów urządzeń (Device-status table) jej elementy określają typ urządzenia, adres stan
• Urządzenie we/wy wysyła przerwanie jeśli wymaga obsługi
– S.O. określa które urządzenie zgłosiło przerwanie, a następnie
– pobiera z tablicy informacje o stanie urządzenia i zmienia odnotowując przerwanie
• Zakończenie operacje we/wy równieŜ sygnalizowane przerwaniem przez większość urządzeń
• Na koniec procedura obsługi przerwania zwraca sterowanie
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.21
Bezpośredni dostęp do pamięci - Direct Memory Access (DMA)
• UŜywane dla urządzeń we/wy o duŜej szybkości zdolnych do transmitowania danych z szybkościami zbliŜonymi do szybkości dostępu do pamięcikomputera
• Sprzętowy sterownik urządzenia transferuje bloki danych z buforabezpośrednio do pamięci głównej komputera bez udziału CPU
• Zamiast generować jedno przerwanie na kaŜdy bajt danych, generowane jest jedno przerwanie po zakończeniu transferu bloku
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.22
Struktura pamięci
• Pamięć główna (main memory) lub inaczej pamięć operacyjna (RAM –random access memory)– jedyne miejsce na dane o duŜej pojemności, do którego CPU ma bezpośredni dostęp
• Pamięć pomocnicza (secondary storage) – rozszerzenie pamięci głownejzapewniające duŜą pojemność i nieulotność (non-volatile) danych
• Dyski magnetyczne – płytki pokryte materiałem magnetycznym
– Powierzchnia dysku jest logicznie podzielona na ścieŜki(tracks), które podzielone są na sektory
– Kontroler dysku określa logiczną współpracę pomiędzy urządzeniem, a komputerem
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.23
Hierarchia systemów magazynowania danych
• Systemy magazynowania danych mają strukturę hierarchiczną
– szybkość
– koszt
– ulotność danych
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.24
Hierarchia urządzeń do magazynowania danych
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.25
Wykorzystanie pamięci podręcznej
• Przechowywanie podręczne (caching) – kopiowanie informacji do szybszego systemu magazynowania danych – pamięci podręcznej (cache). Pamięć główna moŜe być postrzegana jako ostatnia pamięć podręczna dla pamięci pomocniczej
• Wykorzystanie pamięci podręcznej jest b. waŜne na wielu poziomach komputera (w sprzęcie, systemie operacyjnym, oprogramowaniu)
• Wykorzystywane dane są kopiowane tymczasowo z wolniejszej do szybszej pamięci
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.26
Wykorzystanie pamięci podręcznej c.d.
• Najpierw jest sprawdzane czy potrzebna informacja znajduje się w pamięci podręcznej
– JeŜeli jest, dane są wykorzystywane bezpośrednio z pamięci podręcznej) (duŜa szybkość)
– JeŜeli nie, dane są kopiowane do pamięci podręcznej i stamtąd wykorzystywane
• Pamięć podręczna jest mniejsza niŜ pojemność nośnika z którego dane są do niej kopiowane
– Zarządzanie pamięcią podręczną – waŜny problem
– Dobór pojemności pamięci podręcznej
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.27
Jak pracują współczesne komputery
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.28
Architektura systemów komputerowych
• Większość systemów uŜywa jednego procesora ogólnego przeznaczenia (od urządzeń PDA do duŜych komputerów)– Większość systemów ma równieŜ procesory specjalnego przeznaczenia
• Systemy wieloprocesorowe – coraz powszechniej uŜywane– Znane równieŜ jako: systemy równoległe, systemy ściśle powiązane
(tightly-coupled systems)– Zalety
1.Większa przepustowość (throughput)2.Ekonomiczność3.Zwiększona niezawodność – łagodna degradacja
(graceful degradation) lub odporność na błędy/awarie (fault-tolerant)
– Dwa typy1.Wieloprzetwarzanie asymetryczne (Asymmetric Multiprocessing)2.Wieloprzetwarzanie symetryczne (Symmetric Multiprocessing)
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.29
Architektura wieloprzetwarzania symetrycznego
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.30
Procesor dwurdzeniowy (Dual-Core)
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.31
Systemy zgrupowane (clustered systems)
• Jak systemy wieloprocesorowe ale składają się z wielu systemów połączonych ze sobą sieciami lokalnymi, pracujących razem
• zwykle współdzielą pamięć masową tworzącą sieć pamięci masowych(storage-area network (SAN))
– Ich zadanie to uzyskanie wysokiej dostępności (high-availability) usług odpornych na awarię
– W węzłach grupy (klastra) działa warstwa oprogramowania klastra
– KaŜdy węzeł moŜe nadzorować jeden lub więcej innych węzłów
– W przypadku awarii moŜna przejąć z uszkodzonej maszyny jej zasoby pamięciowe i wznowić aplikację (na maszynie nadzorującej)
• Klastry asymetryczne (Asymmetric clustering) jedna z maszyn w gotowości, a druga pracuje
• Klastry symetryczne (Symmetric clustering) wiele węzłów wykonuje aplikacje monitorując się wzajemnie
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.32
Struktura systemu operacyjnego
• Wieloprogramowanie niezbędne do wydajnej pracy
– Pojedynczy uŜytkownik nie jest w stanie zapewnić zajęcia dla CPU i urządzeń we/wy przez cały czas
– Wieloprogramowanie organizuje zadania (kod i dane), tak aby CPU zawsze miało jedno z tych zadań do wykonania
– Pewien podzbiór wszystkich zadań (pula zadań) w systemie jest umieszczony w pamięci
– Jedno z tych zadań jest wybrane i wykonywane (tzw. Szeregowanie/planowanie zadań - job scheduling)
– Kiedy zadanie musi poczekać (np. na we/wy) system operacyjny przełącza wykonywanie na inne zadanie
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.33
Struktura systemu operacyjnego
• Praca z podziałem czasu (timesharing)/wielozadaniowość (multitasking)jest logicznym rozszerzeniem wieloprogramowanie, w którym CPU przełącza się tak często, Ŝe uŜytkownik moŜe współdziałać z kaŜdym zadaniem podczas jego wykonywania – system staje się interaktywny
– Czas odpowiedzi (Response time) powinien być < 1 sekundy
– KaŜdy uŜytkownik ma przynajmniej jeden wykonujący się program w pamięci�proces
– JeŜeli kilka zadań jest gotowych do wykonania � planowanie przydziału procesora (CPU scheduling)
– JeŜeli procesy nie mieszczą się w pamięci, wymiatanie (swapping)przenosi je na dysk i z powrotem do pamięci celu wykonania
– Pamięć wirtualna (Virtual memory) pozwala na wykonywanie procesów nie mieszczących się w całości w pamięci
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.34
Wygląd pamięci w systemie wieloprogramowym
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.35
Działania systemu operacyjnego
• System operacyjny jest sterowany przerwaniami• Błędy w programie lub Ŝądanie tworzy wyjątek (exception) inaczej pułapkę
(trap)– Dzielenie przez zero, Ŝądanie od programu uŜytkownika usługi od S.O.
• Inne problemy : pętle nieskończone, procesy modyfikujące się nawzajem lub system operacyjny
• Praca w Dual-mode pozwala S.O. chronić siebie i inne składowe systemu– Tryb uŜytkownika (User mode) i tryb jądra (kernel mode) inne nazwy:
tryb systemu, monitora, uprzywilejowany– Bit trybu (mode bit) w sprzęcie
• Daje moŜliwość rozróŜnienia czy system właśnie wykonuje kod uŜytkownika czy kod jądra systemu
• Pewne uprzywilejowane (priviledged) instrukcje kodu maszynowego mogą być wykonywane tylko w trybie jądra
• Wywołanie systemowe zmienia tryb na tryb jądra, powrót z wywołania przywraca ten tryb na tryb uŜytkownika
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.36
Przejście z trybu uŜytkownika do trybu jądra
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.37
Czasomierz (Timer)
• Wykorzystanie czasomierza do zapobiegania nieskończonym pętlom / lub próbom obchodzenia usług systemowych
– Ustawienie przerwania po zadanym czasie
– S.O. zmniejsza licznik
– Kiedy licznik zejdzie do zera generowane jest przerwanie
– Ustawienie przerwania po czasie, przed wybraniem procesu do wykonania w celu odzyskania kontroli przez s.o. lub zakończenia procesu, który przekroczył przydzielony mu czas
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.38
Zarządzanie procesami
• Proces jest to wykonujący się program. Jest to jednostka pracy w systemie. Pojęcie program jest statyczne, proces - dynamiczne.
• Proces potrzebuje zasobów aby wykonać swoją pracę:
– CPU, pamięć, I/O, pliki
– Dane inicjalizujące
• Zakończenie procesu wymaga zwrócenia wszystkich moŜliwych do ponownego uŜycia zasobów
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.39
Zarządzanie procesami c.d.
• Proces jednowątkowy (single-threaded) ma jeden licznik rozkazów(program counter) zawierający adres następnej instrukcji do wykonania
– Proces wykonuje instrukcje sekwencyjnie jedną po drugiej aŜ do zakończenia
• Proces wielowątkowy (multi-threaded) ma po jednym liczniku rozkazów na kaŜdy wątek
• Zwykle system ma wiele procesów, kilku uŜytkowników, kilka s.o. działających współbieŜnie na jednym lub wielu CPU
– WspółbieŜność na jednym CPU przez multipleksowanie procesora pomiędzy procesy/ wątki
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.40
Zadania zarządzania procesami
System operacyjny jest odpowiedzialny za następujące czynności w odniesieniu do mechanizmu zarządzania procesami:
• Tworzenie i usuwanie procesów uŜytkownika i systemowych
• Zawieszanie i wznawianie wykonania procesów
• Dostarczanie mechanizmów do synchronizacji procesów
• Dostarczanie mechanizmów do komunikacji procesów
• Dostarczanie mechanizmów do zapobiegania zakleszczeniu
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.41
Zarządzanie pamięcią
• Wszystkie dane w pamięci przed i po przetwarzaniu
• Wszystkie instrukcje w pamięci aby moŜna było je wykonać
• Zarządzanie pamięcią określa co jest w pamięci kiedy
– optymalizowane jest wykorzystanie CPU i czasów odpowiedzi komputera na Ŝądania uŜytkowników
• Zadania zarządzania pamięcią:
– Przechowywanie i aktualizacja informacji o tym jaka część pamięci jest uŜywana i przez kogo
– Decydowanie które procesy (lub ich części) i dane ładować i odsyłać z pamięci
– Alokowanie i dealokowanie przestrzeni pamięci w miarę potrzeb
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.42
Zarządzanie systemem plików
• S.O. zapewnia jednolity logiczny sposób w jaki są widziane systemy przechowywania danych
– Abstrakcja fizycznych własności do logicznej jednostki przechowywania danych – pliku (file)
– Plik – jest to zbiór powiązanych ze sobą informacji zdefiniowanych przez jego twórcę
– KaŜdy nośnik jest kontrolowany przez urządzenie (np. napęd dysku, napęd taśmy)
• RóŜne własności:
– czas dostępu,
– pojemność
– szybkość transferu danych
– sposób dostępu (sekwencyjny lub losowy)
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.43
Zarządzanie systemem plików
• Zarządzanie systemem plików
– Pliki są zwykle grupowane w katalogi
– Kontrola dostępu do plików w większości systemów w celu określenia kto moŜe mieć do czego dostęp
– Przykładowe zadania S.O.
• Tworzenie i kasowanie plików i katalogów
• Udostępnienie elementarnych funkcji do manipulowanie plikami i katalogami
• Odwzorowanie plików na obszary pamięci pomocniczej
• Tworzenie kopii bezpieczeństwa (backup) na stabilnych (nieulotnych) nośnikach informacji
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.44
Zarządzanie pamięcią pomocniczą
• Zwykle dyski są uŜywane do przechowywania danych, które nie mieszczą się w pamięci głównej bądź teŜ danych, które muszą być przechowywane przez długi okres czasu
• Właściwe zarządzanie jest kluczowe• Ogólna szybkość pracy komputera zaleŜy istotnie od podsystemu dysków i
algorytmów do dostępu do nich• Zadania S.O.
– Zarządzanie wolną przestrzenią– Alokacja miejsca– Planowanie dostępu do dysku
• Niektóre nośniki informacji (tzw. pamięć trzeciorzędna) nie muszą być b. szybkie:– Dyski optyczne, taśmy magnetyczne– TeŜ trzeba nimi zarządzać (S.O., aplikacje)– RoŜny typ: WORM (write-once, read-many-times), RW (read-write)
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.45
Wydajność róŜnych poziomów pamięci
• Transfery danych pomiędzy poziomami mogą być jawne bądź niejawne
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.46
Migracja liczby całkowitej z dysku do rejestru
• W środowisku wielozadaniowym naleŜy uwaŜać, aby uŜywać najświeŜszej wartości bez względu, gdzie się znajduje w hierarchii
• Środowiska wieloprocesorowe musi zapewnić spójność pamięci podręcznej w sprzęcie, tak, aby wszystkie CPU miały najświeŜszą wartość w swoich pamięciach podręcznych
• W środowiskach rozproszonych sytuacja jest bardziej skomplikowana
– MoŜe istnieć wiele kopii tej samej zmiennej
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.47
Podsystem we/wy
• Jednym z zadań S.O. jest „odseparowanie” uŜytkownika od konieczności znajomości urządzeń
• Podsystem we/wy:
– Zarządzanie pamięcią we/wy włączając w to buforowanie (tymczasowe zapamiętywanie danych podczas ich transferu), odsyłanie danych do pamięci podręcznej (caching) (zapamiętywanie części danych w szybszej pamięci ze względów wydajnościowych), spooling (nakładanie wyjścia dla jednego zadania z wejściem innych zadań)
– Ogólny interfejs do modułów sterujących urządzeń
– Modułów sterujących (programów obsługi) dla urządzeń specjalnych
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.48
Ochrona i bezpieczeństwo
• Ochrona – dowolny mechanizm do kontroli dostępu procesów lub uŜytkowników do zasobów zdefiniowanych w S.O.
• Bezpieczeństwo – obrona systemu przed wewnętrznymi i zewnętrznymi atakami– Szeroki zakres: denial-of-service, robaki, wirusy, kradzieŜ toŜsamości,
kradzieŜ usług• Systemy zwykle wpierw sprawdzają uŜytkownika w celu określenia kto moŜe
co robić– ToŜsamości uŜytkowników (identyfikator uŜytkownika, user ID) – nazwa i
skojarzony z nią numer (jeden na uŜytkownika)– User ID jest następnie kojarzony ze wszystkimi plikami i procesami
uŜytkownika w celu kontroli dostępu– Identyfikator grupy (group ID) pozwala definiować zbiór uŜytkowników,
identyfikator ten jest skojarzony z kaŜdym procesom i plikiem– Eskalacja uprawnień (Privilege escalation) pozwala uŜytkownikom
zwiększać swoje uprawnienia (tzw. efektywne ID)
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.49
Środowiska obliczeniowe
• Tradycyjny komputer
– DuŜa zmian na przestrzeni lat
– Środowisko biurowe
• Kiedyś: komputery podłączone do sieci, terminale podłączone do komputera głównego, minikomputery (praca wsadowa i z podziałem czasu)
• Teraz portale udostępniające Sieć pozwalające zdalnym systemom mieć dostęp do wspólnych zasobów
– Sieci domowe
• Kiedyś pojedynczy system, potem modemy
• Obecnie często zapora ogniowa (firewall), szerokopasmowy dostęp do sieci
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.50
Środowiska obliczeniowe c.d.
� Środowisko typu klient-serwer
� „głupie” terminale zastąpione „mądrymi” komputerami PC
� Wiele systemów działa jak systemy serwerowe, odpowiadając na Ŝądania generowane prze klientów
� Serwer obliczeniowy udostępnia klientom interfejs do Ŝądania usług (np. bazy danych)
� Serwer plików udostępnia klientom interfejs do zapisywania i odczytywania plików
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.51
Środowiska obliczeniowe partnerskie Peer-to-Peer
• Inny model systemu rozproszonego
• W P2P niema podziału na serwery i klientów
– Wszystkie węzły są równe (peer)
– Mogą być zarówno klientami jak i serwerami, lub jednym i drugim
– Węzeł musi dołączyć do sieci P2P
• Rejestruje swoje usługi w centralnym rejestrze usług w sieci, lub
• Rozgłasza Ŝądanie usługi i odpowiada na Ŝądania usług za pomocą tzw. discovery protocol
– Przykłady Napster, Gnutella
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.52
Środowiska obliczeniowe webowe
• Sieć stała się wszechobecna
• Podstawowe urządzenia: komputery PC
• Coraz więcej urządzeń zostaje podłączonych do sieci w celu dostępu do WWW
• Nowa kategoria urządzeń do zarządzania ruchem w sieci pomiędzy serwerami: wyrównywacze obciąŜeń (load balancers)
• S.O. takie jak Windows 95 (klient), wypierane przez Linuksa i Windows XP/Vistę, gdzie mogą być serwerami i klientami
Opracowano na podst.: Operating System Concepts – 8 th Edition , Silberschatz, Galvin and Gagne ©2009 1.53
S.O. Open-Source
• S.O. udostępniane w formacie kodów źródłowych zamiast formatu binarnego (closed-source)
• Jest to odpowiedź na ochronę prze kopiowaniem (copy protection) i ruchemDigital Rights Management (DRM)
• Zapoczątkowane przez Free Software Foundation (FSF), twórcę GNU Public License (GPL)
• Przykłady: GNU/Linux, BSD UNIX (włączając rdzeń Mac OS X), i Sun Solaris