550 likes | 876 Views
Bibliografia: „ Systemy operacyjne. Struktura i zasada budowy ” W. Stallings; wyd. MIKOM „ Podstawy systemów operacyjnych ” A. Silberschatz; wyd. WNT http://pl.wikipedia.org/. Zadania systemu operacyjnego. Zadania systemu operacyjnego. Wygodna obsługa – wygodny, domyślny interfejs
E N D
Bibliografia: „Systemy operacyjne. Struktura i zasada budowy” W. Stallings; wyd. MIKOM „Podstawy systemów operacyjnych” A. Silberschatz; wyd. WNT http://pl.wikipedia.org/ Zadania systemu operacyjnego
Zadania systemu operacyjnego Wygodna obsługa – wygodny, domyślny interfejs Wydajność – system plików Możliwość rozwoju – system plików, interfejs, przenośność
Architektura von Neumanna Architektura von Neumanna - rodzajarchitektury komputera, przedstawionej po raz pierwszy w 1945 roku przez Johna von Neumanna stworzonej wspólnie z Johnem W. Mauchly'ym i Johnem Presper Eckertem.
Architektura von Neumanna Polega na ścisłym podziale komputera na trzy podstawowe części: • procesor (w ramach którego wydzielona bywa część sterująca oraz część arytmetyczno-logiczna) • pamięć komputera (zawierająca dane i sam program) • urządzenia wejścia/wyjścia
Architektura von Neumanna System komputerowy zbudowany w oparciu o architekturę von Neumanna powinien: • mieć skończoną i funkcjonalnie pełną listę rozkazów • mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywanie w pamięci w sposób identyczny jak danych • dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora • informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji w procesorze.
Architektura von Neumanna Podane warunki pozwalają przełączać system komputerowy z wykonania jednego zadania (programu) na inne bez fizycznej ingerencji w strukturę systemu, a tym samym gwarantują jego uniwersalność. System komputerowy von Neumanna nie posiada oddzielnych pamięci do przechowywania danych i instrukcji. Instrukcje jak i dane są zakodowane w postaci liczb. Bez analizy programu trudno jest określić czy dany obszar pamięci zawiera dane czy instrukcje.
Architektura von Neumanna Wykonywany program może się sam modyfikować traktując obszar instrukcji jako dane, a po przetworzeniu tych instrukcji - danych - zacząć je wykonywać. Model komputera wykorzystującego architekturę von Neumanna jest często nazywany przykładową maszyną cyfrową (PMC).
Architektura harwardzka • rodzaj architektury komputera. W odróżnieniu od architektury von Neumanna, pamięć danych programu jest oddzielona od pamięci rozkazów. Podstawowa architektura komputerów zerowej generacji i początkowa komputerów pierwszej generacji. Prostsza (w stosunku do architektury von Neumanna) budowa przekłada się na większą szybkość działania - dlatego ten typ architektury jest często wykorzystywany w procesorach sygnałowych oraz przy dostępie procesora do pamięci cache.
Architektura harwardzka Separacja pamięci danych od pamięci rozkazów sprawia, że architektura harwardzka jest obecnie powszechnie stosowana w mikrokomputerach jednoukładowych, w których dane programu są najczęściej zapisane w nieulotnej pamięci ROM (EPROM/EEPROM), natomiast dla danych tymczasowych wykorzystana jest pamięć RAM (wewnętrzna lub zewnętrzna).
Plik wymiany Pamięć wirtualna - składa się z pliku wymiany (pliku stronicowania) i zainstalowanej fizycznej pamięci RAM. Plik wymiany w Windows – pagefile.sys jest ukryty, chroniony przez system i użytkownik nie może go zmieniać bezpośrednio. Plik stronicowania – używany przez system Windows do przechowywania części plików programów i danych, które są zbyt duże i nie mogą być umieszczone w całości w pamięci. System Windows przenosi dane z pliku stronicowania do pamięci zgodnie z potrzebami oraz z pamięci do pliku stronicowania , aby zwolnić miejsce dla nowych danych.
Plik wymiany W systemieWindows XP tylko jądro systemu operuje bezpośrednio na pamięci RAM. Wszystkie inne procesy i aplikacje korzystają w mniejszym lub większym stopniu z pośrednictwa pamięci wirtualnej. W pamięci RAM przechowywane są dane pozostające aktualnie w użyciu. Jeśli w pamięci RAM nie ma już miejsca, system przenosi do pliku stronicowania wszystko to, co w danej chwili nie jest konieczne. Tworzy w ten sposób wolne miejsce dla danych bieżących. Każda informacja z pliku wymiany potrzebna w danej chwili przenoszona jest do pamięci RAM.
Ćwiczenie 1 Sygnałem, że pamięci może być za mało, jest wyraźne spowolnienie pracy systemu. Zajrzeć do Menedżera zadań [Alt] + [Ctrl] + [Delete] Menedżer zadań / Wydajność – Pamięć - Razem
Ćwiczenie 2 Lokalizacja pliku stronicowania – znajdź plik stronicowania Wyszukaj – pagefile.sys
Defragmentacja pliku wymiany Pamięć wirtualną powinno ustawiać się na dysku zdefragmentowanym – to jednak nie daje gwarancji zachowania ciągłości tego pliku. Dynamicznie rozciągający się plik ulega fragmentacji – operacje na takim pliku tracą na wydajności. Defragmentator Windows nie potrafi scalać pliku pagefile.sys. Najlepiej skorzystać z programu narzędziowego np.. darmowy PageDefrag
Ćwiczenie 3 Ustawienie wielkości pliku stronicowania Panel sterowania / System / Zaawansowane – Wydajność – Ustawienia Zaawansowane / Pamięć wirtualna / Zmień • Ustaw Kombinacje rozmiaru • rozmiar niestandardowy • rozmiar początkowy • rozmiar maksymalny • rozmiar kontrolowany przez system • bez pliku stronicowany
Tryby pracy procesora Tryb rzeczywisty – real mode Tryb chroniony – protected mode Tryb wirtualny – virtual mode
Proces w systemie operacyjnym Procesem nazywamy wykonujący się program wraz z jego środowiskiem obliczeniowym. Proces stanowi podstawowy obiekt dynamiczny w systemie operacyjnym.
Wymagania odnośnie systemu operacyjnego odnośnie zarządzania procesami: • umożliwienie przeplatania się wykonywania procesów, • akceptowalnie krótki czas odpowiedzi systemu, • zarządzanie przydziałem zasobów poszczególnym procesom, • udostępnianie mechanizmów do komunikacji międzyprocesowej, • udostępnianie mechanizmów do tworzenia procesów.
Tworzenie i kończenie procesów Utworzenie procesu może być rezultatem: • inicjalizacji systemu, • wywołania przez już uruchomiony proces funkcji systemowej do tworzenia procesu, • zlecenia użytkownika utworzenia nowego procesu, • uruchomienia zadania wsadowego.
Tworzenie i kończenie procesów Zakończenie działania procesu może być rezultatem: • zakończenia algorytmu procesu, • celowego zakończenia w wyniku wystąpienia błędu, • wykonania niedozwolonej operacji (zakończenie wymuszone), • otrzymania sygnału od innego procesu (zakończenie wymuszone).
Running 1 2 3 Blocked Ready 4 Stany procesów
Stany procesów • uruchomiony - (ang. running), w danej chwili wykonuje się na procesorze, • gotowy - (ang. ready), gotowy do wykonania, ale wstrzymany w oczekiwaniu na przydział czasu procesora, • wstrzymany - (ang. blocked), nie może kontynuować pracy do momentu wystąpienia pewnego zewnętrznego zdarzenia.
Stany procesów w systemie Unix • uruchomiony w trybie użytkownika - (ang. user running), • uruchomiony w trybie jądra - (ang. kernel running), • gotowy, w pamięci - (ang. ready to run, in memory), • wstrzymany, w pamięci - (ang. asleep in memory), • gotowy wymieciony - (ang. ready to run, swapped),
Stany procesów w systemie Unix • wstrzymany, wymieciony - (ang. sleeping, swapped), • wywłaszczony - (ang. preempted), • utworzony - (ang. created), • zombie - (ang. zombie).
Zarządzanie pamięcią Zarządzanie pamięcią (ang. Memory Management, MM) na poziomie systemu operacyjnego uwarunkowane jest architekturą systemu.
Zarządzanie pamięcią Oczekiwania w stosunku do pamięci systemu: • by była duża, • by była szybka, • by była nieulotna. Hierarchia pamięci: • mała szybka droga pamięć (np. cache), • średnia, średnio szybka, umiarkowanie droga, pamięć (np. pamięć operacyjna), • ogromna, wolna i tania pamięć (np. pamięć dyskowa/ taśmowa).
Organizacja zarządzania pamięcią W zależności od długości pola adresacji przestrzeń adresowa może pokrywać się z zakresem adresów pamięci operacyjnej, może być większa lub mniejsza. Na organizację zarządzania mają wpływ: • pole adresowe argumentów rozkazu, • miejsce pola adresacji w słowie, • sprzętowe możliwości przekształcania pola adresacji.
Funkcje systemu operacyjnego w kontekście zarządzania pamięcią:
Funkcje systemu operacyjnego w kontekście zarządzania pamięcią: • zagospodarowanie przestrzeni adresowej poprzez wykorzystanie mechanizmów translacji adresów, • ochrona zawartości pamięci, • organizacja dostępu do obszarów dzielonych, • efektywna organizacja pamięci operacyjnej.
Jądro systemu operacyjnego Jądro systemu operacyjnego (ang. kernel) – podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania.
Jądro monolityczne Jądro monolityczne – często stosowane w systemach typu Unix. Wszystkie zadania są wykonywane przez jądro, będące jednym, dużym programem działającym w trybie jądra. Przykładami takiego jądra są systemy z rodziny Linux, chociaż większość posiada umiejętność dołączania i odłączania modułów (najczęściej zawierających kod sterownika urządzenia lub obsługi potrzebnego w danej chwili systemu plików).
Jądro monolityczne aplikacje jądro systemu operacyjnego procesor pamięć urządzenia Model funkcjonowania jądra monolitycznego.
Zalety i wady • Zaletą tej techniki jest prostota, stabilność, łatwość komunikacji pomiędzy różnymi członami jądra (jedna przestrzeń adresowa). • Wadą jest, w późniejszym stadium rozwoju projektu, uciążliwość w rozwijaniu programu oraz w znajdywaniu błędów.
Mikrojądro Mikrojądro – w tej technice z monolitycznego jądra zostaje tylko jego podstawowa część, a części odpowiedzialne za bardziej wyrafinowane funkcje są wydzielone do funkcjonalnych bloków albo realizowane jako zwykłe procesy w trybie użytkownika.
serwery aplikacje jądro systemu operacyjnego Mikrojądro Model komunikacji mikrojądra z aplikacjami.
Nanokernel nanokernel – technika zbliżona do techniki mikrojądra, różnica w wielkości – nanokernel jest jeszcze mniejszy.
Exokernel Exokernel – architektura będąca odmianą nanojądra. Cechą wyróżniającą jest możliwość zarządzania zasobami systemu przez nieuprzywilejowanego użytkownika, a rola jądra sprowadza się do zabezpieczania zasobów. Przykładem systemu korzystającego z tego typu jądra jest system XOK, zbudowany w MIT Laboratory for Computer Science, pracujący na komputerach PC. Wyposażony on został w bibliotekę ExOS, która implementuje system UNIX i umożliwia uruchamianie większości aplikacji tego systemu.
Cachekernel Cachekernel – w tej technice jądro systemu buforuje obiekty systemowe takie jak wątki czy przestrzenie adresowe tak jak sprzęt komputerowy buforuje pamięć. Jądra aplikacji trybu użytkownika są odpowiedzialne za ładowanie tych danych i ponowne ich zapisanie stosując specyficzne dla danej aplikacji mechanizmy.
Jądro hybrydowe Jądro hybrydowe – kompromis między architekturą jądra monolitycznego i mikrojądra. W krytycznych usługach - np. stos sieci - 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. Klasyfikacja ta budzi kontrowersje niektórych programistów. Jądro tego typu zastosowano w systemie Windows.