1 / 52

Zadania systemu operacyjnego

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

Download Presentation

Zadania systemu operacyjnego

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Zadania systemu operacyjnego Wygodna obsługa – wygodny, domyślny interfejs Wydajność – system plików Możliwość rozwoju – system plików, interfejs, przenośność

  3. Idea budowy komputera- architekturavon Neumanna

  4. 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.

  5. 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

  6. 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.

  7. 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.

  8. 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).

  9. Idea budowy komputera- architekturaharwardzka

  10. 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.

  11. 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).

  12. Pamięć wirtualna.Plik wymiany

  13. 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.

  14. 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.

  15. Ćwiczenia

  16. Ć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

  17. Ćwiczenie 2 Lokalizacja pliku stronicowania – znajdź plik stronicowania Wyszukaj – pagefile.sys

  18. 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

  19. Ć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

  20. Tryby pracy procesora

  21. Tryby pracy procesora Tryb rzeczywisty – real mode Tryb chroniony – protected mode Tryb wirtualny – virtual mode

  22. Procesy i wątki

  23. Proces w systemie operacyjnym Procesem nazywamy wykonujący się program wraz z jego środowiskiem obliczeniowym. Proces stanowi podstawowy obiekt dynamiczny w systemie operacyjnym.

  24. 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.

  25. 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.

  26. 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).

  27. Running 1 2 3 Blocked Ready 4 Stany procesów

  28. 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.

  29. 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),

  30. Stany procesów w systemie Unix • wstrzymany, wymieciony - (ang. sleeping, swapped), • wywłaszczony - (ang. preempted), • utworzony - (ang. created), • zombie - (ang. zombie).

  31. Typowe pola elementu tablicy procesów

  32. Typowe pola elementu tablicy procesów

  33. Zarządzanie pamięcią

  34. Zarządzanie pamięcią Zarządzanie pamięcią (ang. Memory Management, MM) na poziomie systemu operacyjnego uwarunkowane jest architekturą systemu.

  35. 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).

  36. 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.

  37. Funkcje systemu operacyjnego w kontekście zarządzania pamięcią:

  38. 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.

  39. Jądro systemu operacyjnego

  40. Jądro systemu operacyjnego Jądro systemu operacyjnego (ang. kernel) – podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania.

  41. Budowa jądra systemu operacyjnego

  42. 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).

  43. Jądro monolityczne aplikacje jądro systemu operacyjnego procesor pamięć urządzenia Model funkcjonowania jądra monolitycznego.

  44. 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.

  45. 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.

  46. serwery aplikacje jądro systemu operacyjnego Mikrojądro Model komunikacji mikrojądra z aplikacjami.

  47. Nanokernel nanokernel – technika zbliżona do techniki mikrojądra, różnica w wielkości – nanokernel jest jeszcze mniejszy.

  48. 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.

  49. 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.

  50. 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.

More Related