• Nie Znaleziono Wyników

Zadania systemu operacyjnego

N/A
N/A
Protected

Academic year: 2021

Share "Zadania systemu operacyjnego"

Copied!
52
0
0

Pełen tekst

(1)

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/

(2)

Zadania systemu operacyjnego

1. Wygodna obsługa – wygodny, domyślny interfejs

2. Wydajność – system plików

3. Możliwość rozwoju – system plików,

interfejs, przenośność

(3)

Idea budowy komputera - architektura

von Neumanna

(4)

Architektura von Neumanna

Architektura von Neumanna - rodzaj

architektury 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 - architektura

harwardzka

(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 systemie Windows 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)

Stany procesów

1 3 2

4

Running

Ready

Blocked

(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

Zarządzanie procesem Zarządzanie pamięcią

Rejestry Wskaźnik do segmentu kodu

Licznik rozkazów (PC) Wskaźnik do segmentu danych Słowo stanu procesora (PSW) Wskaźnik do segmentu stosu

Wskaźnik stosu Stan procesu Priorytet

Parametry szeregowania Zarządzanie plikami

ID procesu Katalog root

(32)

Typowe pola elementu tablicy procesów

Zarządzanie procesem Zarządzanie pamięcią

Proces rodzic Katalog bieżący

Grupa procesu Deskryptory plików

Sygnały ID użytkownika

Czas startu procesu ID grupy Użyty czas CPU

Czas następnego alarmu

(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

Model funkcjonowania jądra monolitycznego.

aplikacje

jądro systemu operacyjnego

procesor pamięć urządzenia

(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)

Mikrojądro

Model komunikacji mikrojądra z aplikacjami.

aplikacje

jądro systemu operacyjnego serwery

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

(51)

Jądro hybrydowe

Model komunikacji jądra hybrydowego z aplikacjami aplikacje

jądro systemu operacyjnego serwery

(52)

Cytaty

Powiązane dokumenty

Była to główna część wielkiej fali protestów, które rozpoczęły się 1 lipca w WSK PZL Mielec i przeszły w ciągu tego miesiąca przez całą Polskę, kończąc się w

Podróż wagonu z Lublina można będzie śledzić w internecie pod adresem wagon2010.lublin.pl, gdzie zamieszczane będą relacje z trasy.. Falę strajków na Lubelszczyźnie,

I nie chodzi o nowe połączenie kolejowe, ale o projekt realizo- wany przez Ośrodek „Brama Grodzka - Teatr NN".. rocznicy Lubelskie- go Lipca i powstania

W Gdańsku młodzi ludzie przekazali ECS powielacz działacza opozycji, kierownika Urzędu od Spraw Kombatantów i Osób Represjonowanych, Janusza Krupskiego, który zginął w

Aby upamiętnić to ważne wydarzenie, które w połączeniu z szeregiem innych zdarzeń doprowadziło do powstania Solidarności, grupa młodych ludzi wyruszyła 17 lipca w podróż

Do wszystkich klas definiujących stopnie, czyli do klasy bazowej Stopien_walu oraz do klas pochodnych StopienFazaZLewej, StopienFazaZPrawej dodamy metodę XMLZapisz –

Zerwanie nici łączącej świadomość z działaniem jest równoznaczne z otwarciem zasobów pamięci wspomnieniowej, które jednak wówczas nie są przez świadomość kontrolowane. To

Znany podróżnik Józef Wróbel wspólnie z reporterem Jackiem Wiewiórką wkrótce wybiorą się w podróż.. Karol lubi