Systemy operacyjne ()

advertisement
Systemy operacyjne, architektura komputerów
1. Struktura komputera: procesor, we/wy, magistrala, pamiec. Działanie
komputera.
Linie magistrali systemowej.
Linia danych – do przenoszenia danych np. szyna danych 8b a rozkaz 16b: 2 x transfer z pamięci
Linie adresowe- do określenia adresu danych
Linie sterowanie – do sterowania liniami
Linie zasilania
Struktura procesora
Rejestry, połączenia wewnętrzne CPU, jednostka arytmetyczno-logiczna ALU, jednostka sterująca
Rejestry procesora.
Licznik programu (PC)- adres rozkazu do pobrania
Rejestr rozkazu (IR)- kod rozkazu
Rejestr adresowy pamięci (MAR) – adres lokacji
Rejestr buforowy pamięci (MBR)- dane do/z pamięci
Rejestr PSW – słowo stanu pamięci, informacje o stanie
Realizacji we/wy.
Programowane – dane są wymieniane miedzy procesorem a modułem we/wy, procesor czeka na
zakończenie operacji we/wy
Sterowane przerwaniami – procesor wydaje operację we/wy i wykonuje dalsze rozkazy do
momentu zakończenia operacji we/wy (przerwanie we/wy)
Bezpośredni dostęp do pamięci – moduł we/wy wymienia dane bezpośrednio z pamięcią bez
udziału procesora.
Rodzaje pamięci ze względu na własności fizyczne.
- półprzewodnikowa - RAM, ROM, Flash
- magnetyczna – dysk & taśma
- magnneto-optyczna CD&DVD zanikanie, rozpad
- zanikania, rozpad
- ulotność
- wymazalność
-zasilanie do utrzymania zawartości
Metody dostępu do pamięci.
1
a) dostęp sekwencyjny –
- dostęp liniowy blok po bloku wprzód lub wtył
- czas dostępu zależy od pozycji bloku względem pozycji bieżącej
- np. taśmy
b) dostęp bezpośredni
- każdy blok ma unikalny adres
- czas dostępu realizowany przez kok do najbliższego otoczenia i sekwencyjne przeszukiwanie
- np. dysk magnetyczny
c) dostęp swobodny
- każdy adresowalna lokacja w pamięci ma unikalny, fizycznie wbudowany mechanizm
adresowania
- czas dostępu nie zależy od poprzednich operacji i jest stały
- np.. RAM
d) dostęp skojarzeniowy
- dane są lokalizowane raczej na podstawie porównania z ich zawartością niż na podstawie adresu
- czas dostępu nie zależy od poprzednich operacji i jest stały
- np. pamięć podręczna
Wzór na szybkość transferu do/z pamięci.
a) czas dostępu
- dostęp swobodny: czas niezbędny do zrealizowania operacji
- dostęp swobodny: czas niezbędny na ustawienie głowicy
b) czas_cyklu pamięci
- czas dostępu + czas, który musi upłynąć aby mogła nastąpić kolejna operacja ( zapis, odczyt)
c) szybkość transferu
- dostęp swobodny: 1/czas_cyklu
- dostęp nie swobodny : T_n = T_a + n/r
+ T_n – śr. Czas operacji na n-bitach, T_a = śr. czas dostępu
+ r – szybkość transferu w b/sek
2. Architektura systemu operacyjnego, jadro systemu.
- System operacyjny-program, który nadzoruje i koordynuje dostęp programów do zasobów
- System operacyjny-dystrybutor zasobów przydziela zasoby poszczególnym zamawiającym
- System operacyjny-program, który działa jako pośrednik miedzy użytkownikiem komputera a
sprzętem komputerowym
Struktura systemów operacyjnych.
Struktura zarządzania zadaniami procesami.
Struktura zarządzania pamięcią operacyjną.
Struktura zarządzania plikami.
Struktura zarządzania wejściem i wyjściem
Sieciowy system operacyjny
System ochrony
System interpretacji poleceń
Rodzaje systemów operacyjnych.
Proste systemy wsadowe, wieloprogramowe systemy wsadowe, systemy rozproszone,
Ze względu na architekturę systemy dzielimy na: monolityczna i mikrojądra
2
Start jądra systemu UNIX
Pierwszy sektor na dysku ( Master Boot rekord, MBR) zawiera program boot, który zostaje
wczytany do pamięci
Uruchomiony zostanie program boot, który
- relokuje się, aby zwolnić początkowe adresy pamięci na jądro systemu
- czyta katalog root na dysku
- wczytuje jądro systemu
- przekazuje sterowanie jądra systemu
+ asemblerowy kod inicjujący jądra systemu
Start jądra systemu WINDOWS
Pierwszy sektor na dysku ( Master Boot Rekord, MBR) zawiera program boot, który zostaje
wczytany do pamięci
Uruchomiony zostanie program boot, który
- relokuje się, aby zwolnić początkowe adresy pamięci na jądro systemu
- czyta katalog root na dysku
- wczytuje program ntldr
- przekazuje sterowanie programowi ntldr
+ czyta plik konfiguracyjny Boot.ini
+ wczytuje plik: hal.dll, ntoskrnl.exe, bootvid.dll
+ wczytuje drivery (mysz…)
+ przekazuje sterowanie programowi ntoskrnl.exe
3. Rodzaje planistów i decyzje o przydziale procesora. Algorytmy przydziału
procesora.
Rodzaje planistów.
1)Planista długoterminowy (ang.long-term scheduler) lub planista zadań (ang.job scheduler)wybiera procesy,które powinny być sprowadzone do pamięci z kolejki procesów gotowych;jest
wołany rzadko(min,sek)dlatego może być wolniejszy
2)Planista krótkoterminowy (short-) lub planista przydziału procesora (ang.CPU scheduler)wybiera proces następny do wykonania z kolejki procesów gotowych i przydziela mu procesor;jest
wołany bardzo często (milisekundy) dlatego musi być bardzo szybki
3)planista średnioterminowy(medium-)-swapping(wymiana)-w celu uzyskania lepszego doboru
procesów.
Sytuacje w jakich planista przydziału procesora podejmuje decyzje o przydziale procesora.
Planista (krótkoterminowy) przydziału procesora wybiera jeden proces spośród przebywających w
pamięci procesów gotowych do wykonania i przydziela mu procesor. Decyzje o przydziale
procesora podejmowane są:
1) gdy proces przeszedł od stanu aktywności do czekania (np.z powodu we/wy)
2) gdy proces przeszedł od stanu aktywności do gotowości (np.wskutek przerwania)
3) gdy proces przeszedł od stanu czekania do gotowości (np. po zakończeniu we/wy) 4)gdy proces
kończy działanie.
Planowanie wywłaszczeniowe.
Celem planowania jest maksymalizacja czasu wykorzystania procesora przy wieloprogramowości.
Planow.Wywł. ma miejsce gdy planista podejmuje decyzje w chwilach:1) przejścia procesu ze
stanu oczekiwania do gotowości(np. w skutek przerwania); 2) przejścia procesu aktywnego do
stanu gotowości. Są sytuacje w których planista swoją decyzją wstrzymuje proces aktywny, aby nie
3
było sytuacji gdy-wszystkie procesy czekają na we/wy i żaden nie jest gotowy do korzystania z
procesora
Algorytm FCFS.
Pierwszy zgłoszony,pierwszy obsłużony (ang. first-come,first-served -FCFS).Implementuje się
łatwo za pomocą kolejek FIFO –blok kontrolny procesu dołączany na koniec kolejki, procesor
dostaje PCB z czoła kolejki. Algorytm FCFS jest niewywłaszczający. Proces utrzymuje procesor do
czasu aż zwolni go wskutek zakończenia lub zamówi operację we/wy. Algorytm FCFS jest
kłopotliwy w systemach z podziałem czasu bowiem w takich systemach ważne jest uzyskiwanie
procesora w regularnych odstępach czasu.
Algorytm SJF.
Algorytm najpierw najkrótsze zadanie (ang.shortest-job-first-SJF) wiąże z każdym procesem
długość jego najbliższej z przyszłych faz procesora.Gdy procesor staje się dostępny wówczas
zostaje przydzielony procesowi o najkrótszej następnej fazie (gdy fazy s ą równe to mamy FCFS)
Algorytm może być 1) wywłaszczający-SJF usunie proces jeśli nowy proces w kolejce procesów
gotowych ma krótszą następną fazę procesora od czasu do zakończenia procesu; metoda najpierw
najkrótszy pozostały czas (ang. Shortest - remaining time-first -SRTF) 2) niewywłaszczający
-pozwól procesowi zakończyć.******SJF jest optymalny:daje minimalny średni czas
oczekiwania.Nie ma sposobu na poznanie dł. następnej fazy,możemy ją jedynie oszacować. SJF jest
przykładem planowania priorytetowego w którym każdemu procesowi przypisuje się priorytet
(liczbę).
Algorytm SRTF.- (SJF wywłaszczający)
Algorytm RR.
Planowanie rotacyjne (ang.round-robin -RR,time-slicing)
zaprojektowano dla systemów z podziałem czasu. Każdy proces otrzymuje małą jednostkę
czasu,nazywaną kwantem czasu (ang.time quantum,time slice)zwykle od 10 do 100 milisekund.
Gdy ten czas minie proces jestwywłaszczany i umieszczany na końcu kolejki zadań gotowych
(FCFS z wywłaszeniami). Jeśli jest n procesów w kolejce procesów gotowych a kwant czasu
wynosi q to każdy proces otrzymuje 1/n czasu procesora porcjami wielkości co najwyżej q
jednostek czasu. Każdy proces czeka nie dłużej niż (n-1)*q jednostek czasu. Wydajność algorytmu
gdy q duże to RR przechodzi w FCFS,gdy q małe to mamy dzielenie procesora (processor sharing)
ale wtedy q musi być duże w stosunku do przełączania kontekstu (inaczej mamy spowolnienie).
Mniejszy kwant czasu zwiększa przełączanie kontekstu. Czas cyklu przetwarzania zależy od
kwantu czasu.
Czas cyklu przetwarzania-czas między nadejściem procesu do systemu a chwilą jego
zakończenia:
Suma czasów czekania na wejście do pamięci, czekania w kolejce procesów gotowych,
wykonywania we/wy, wykonania (CPU),
Czas oczekiwania -suma okresów, w których proces czeka w kolejce procesów gotowych do
działania.
4
4. Zarzadzanie pamiecia i jej adresacja. Algorytmy przydziału pamieci.
Opisz różnicę między adresacją logiczną i fizyczną.
Adres oglądany przez jednostkę pamięci zwie się fizyczną przestrzenią adresową;to w jaki sposób
fizyczna przestrzeń adresowa jest odwzorowywana jest podstawową cechą zarzadzania pamięcią:
1)Logiczny adres–wygenerowany przez CPU; jeśli odwzorowany na adres fizyczny podczas
wykonywania programu wtedy jest to wirtualny adres;
2)Fizyczny adres–adres widziany przez sterownik pamięci. Adres logiczny i fizyczny jest taki sam
podczas kompilacji i ładowania; logiczny(wirtulany) i fizyczny adres różnią się podczas wykonania.
Sposoby jak na podstawie listy wolnych dziur spełnić zamówienie procesu na pamięć.
Dziura(hole)–blok dostępnej pamięci;dziury o różnorodnej
wielkości są porozrzucane po całej pamięci operacyjnej. Gdy proces staje się gotowy,alokuje
pamięć z dziury w pamięci operacyjnej na tyle pojemnej aby sprostać wymaganiom procesu.
System operacyjny zarządza:a)zaalokowanymi partycjami b)wolnymi partycjami (dziurami w
pamięci); 1)Pierwsze dopasowanie: (first-fit)-przydziel pierwszą dziurę o wystarczającej
wielkości.2) Najlepsze dopasowanie:(best-fit)-przydziel najmniejszą z dostatecznie dużych dziur;
przejrzyj całą listę, chyba że jest uporządkowana według rozmiarów. Strategia ta zapewnia
najmniejsze pozostałości po przydziale. 3)Najgorsze dopasowanie:(worst-fit)-przydziel największą
dziurę; należy również przeszukać całą listę. Strategia ta pozostawia po przydziale największą
dziurę, która może okazać się bardziej użyteczna niż pozostałość wynikająca z podejścia
polegającego na przydziale najlepiej pasującej dziury. Symulacje wykazały,że first-fit i best-fit są
lepsze od worst-fit zarówno ze względu na zmniejszanie czasu jak i zużycia pamięci.
Fragmentacja zewnętrzna i wewnętrzna
1)Fragmentacja zewnętrzna (external fragmentation)–suma wolnych obszarów w pamięci wystarcza
na spełnienie zamówienia ale nie tworzą one ciągłego obszaru.(ma zmienne jednostki przydziału)
2)Fragmentacja wewnętrzna (internal fragm.)–zaalokowana pamięć jest nieznacznie większa od
żądania alokacji pamięci; różnica ta stanowi bezużyteczny kawałek pamięci wewnątrz
przydzielonego obszaru; Rozwiązanie problemu zewnętrznej fragmentacji to upakowanie
(compaction). Przemieszczenie zawartości pamięci w taki sposób aby cała wolna pamięć znalazła
się w jednym wielkim bloku. Upakowanie nie jest możliwe jeśli ustalanie adresów jest statyczne;
jest możliwe jeśli ustalanie adresów jest dynamicznie wykonywane podczas działania procesu (ma
stałe jednostki przydziału).
Mechanizm stronicowania.
Logiczna przestrzeń adresowa procesu może być nieciągła tj. procesowi można przydzielać
dowolne dostępne miejsca w pamięci fizycznej.Pamięć fizyczną dzieli się na bloki stałej długości
zwane ramkami (frames)(rozmiar jest potęgą 2, między 512B a 16MB). Pamięć logiczną dzieli się
na bloki tego samego rozmiaru zwane stronami (pages). Pamiętana jest lista wolnych ramek.
Wykonanie procesu o rozmiarze n stron wymaga znalezienia n wolnych ramek i załadowanie w nie
procesu. Utworzenie tablicy stron (page table) do odwzorowywania adresów logicznych na.
Fizyczne. Eliminuje się fragmentację zewnętrzna ale może powstać fragmentacja wewnętrzna.
Mechanizm segmentacji.
Segmentacja (segmentation) to schemat zarządzania pamięcią który urzeczywistnia sposób
widzenia pamięci przez użytkownika. Program jest zbiorem segmentów czyli jednostek logicznych
takich jak: program główny, procedura, funkcja, zmienne lokalne, zmienne globalne, common
block, stos, tablica symboli, arrays. Adres logiczny – segmentacja <numer segmentu, odległość >.
Program użytkownika jest tłumaczony za pomocą kompilatora, który automatycznie konstruuje
segmenty odpowiadające programowi. Kompilator języka Pascal wytwarza segmenty: 1) zmienne
globalne 2)stosu wywołań procedur 3) kod funkcji i procedur 4) lokalne zmienne funkcji lub
5
procedury. Program ładujący przydziela numery segmentów.
5. Pamiec wirtualna. Algorytmy zastepowania stron.
UWAGA (cześć z punktu 4.) Uzupełnić i poprawić
1. Stronicowanie na żądanie
2. Błąd strony i jego obsługa
3. Problem zastępowania i wznawiania rozkazów
4. Algorytmy wymiany i ich klasyfikacja
5. Anomalia Belady'ego
6. Problemy implementacji algorytmów wymiany
 Najważniejsze pojęcia i zagadnienia: stronicowanie na żądanie, bit poprawności, błąd strony,
wymiana stron, problem wznawiania rozkazów, bit modyfikacji, bit odniesienia, algorytm
wymiany, zbiór roboczy, wstępne sprowadzanie, efektywność działania systemu pamięci
wirtualnej.
Pamięć wirtualna jest organizacją zasobów pamięci, zrealizowaną w oparciu o
tzw. przestrzeń wymiany w pamięci drugiego rzędu (na dysku). Pamięć
operacyjna (fizyczna) jest dla tych zasobów tylko pewnym oknem,
przechowującym część zawartości na potrzeby bieżącego przetwarzania.
Stosowanie pamięci wirtualnej ma wiele zalet nie tylko związanych z
możliwością powiększenia zasobów pamięci ponad dostępną pamięć fizyczną.
Umożliwia bardziej racjonalne wykorzystanie pamięci operacyjnej, gdyż
programy tworzone są często z nadmiarem w stosunku do typowych potrzeb. Na
przykład rozmiary tablic statycznych ustala się z nadmiarem w stosunku do
typowych potrzeb, w kodzie uwzględnia się obsługę sytuacji wyjątkowych do
których może nigdy nie dojść. Ten nadmiar nie musi być ładowany do pamięci.
Zastosowanie pamięci wirtualnej może też zmniejszyć czas odpowiedzi, gdyż
skraca czas ładowania kodu, który często odwzorowywany jest w przestrzeń
adresową procesu bezpośrednio z pliku i sprowadzany w niewielkich porcjach na
żądanie.
6. Systemy plików i ich organizacja.
Uzupełnić i poprawić
* Dyskowy system plików - "normalny" system plików pozwalający na zarządzanie danymi na
stacjonarnych nośnikach danych, takich jak twarde dyski. Każdy system posiada swój własny
system plików (np. Linux - ext2, Windows NT - NTFS itd.).
* Sieciowy system plików - w zasadzie jest to protokół umożliwiający przesyłanie poleceń do
serwera przez sieć oraz wykonywanie operacji na odległość. Informacje są z powrotem
6
przekazywane z serwera do klienta. Dzięki takiemu rozwiązaniu użytkownik nie widzi żadnej
różnicy między pracą na sieciowym systemie plików a pracą na lokalnym systemie plików.
Najbardziej znane to NFS, Coda, AFS (System plików Andrew'sa), SMB oraz NCP (Novell'a).
* Specjalne systemy plików (Wirtualne systemy plików) - nie umożliwiają zarządzania danymi,
np. system /proc (w Linuksie) dostarcza interfejsu, który umożliwia dostęp do niektórych struktur
jądra.
* Systemy oparte na bazie danych - systemy plików, w których pliki są identyfikowane na
podstawie swojej charakterystyki (np. autora, typu czy tematu, którego dotyczą) - jak w bazach
danych.
•
Systemy dziennikujące (lub księgujące, ang. journaling) - systemy z mechanizmem
księgującym, zwiększającym bezpieczeństwo danych i umożliwiającym szybkie
przywrócenie sprawności systemu po awarii. Mechanizm taki posiadają nowsze systemy
plików (np. NTFS, HFS+ lub ext3).
System plików — warstwa logiczna
1. Pojęcie pliku i jego atrybuty
2. Atrybuty plik
3. Logiczny i fizyczny obraz pliku
4. Metody dostępu do pliku
5. Podstawowe operacje na plikach
6. Uniksowy interfejs dostępu do pliku
7. Logiczna organizacja systemu plików
* Najważniejsze pojęcia i zagadnienia: plik, typ pliku, struktura pliku, dostęp sekwencyjny,
dostęp bezpośredni, dostęp indeksowy, strefa, katalog.
System plików — warstwa fizyczna
1. Fizyczna organizacja systemu plików na dysku
o przydział miejsca na dysku
o zarządzanie wolną przestrzenią
o implementacja katalogu
2. Przechowywanie podręczne w systemie plików
3. Integralność systemu plików
4. Semantyka spójności i synchronizacja współbieżnego dostępu do pliku
* Najważniejsze pojęcia i zagadnienia: przydział ciągły, przydział listowy, przydział indeksowy,
FAT, integralność systemu plików.
System plików — przykłady implementacji
1. Systemu plików CP/M
2. Systemu plików FAT
3. Systemu plików ISO 9660
4. Systemu plików Unix
5. Systemu plików NTFS
* Najważniejsze pojęcia i zagadnienia: blok kontrolny pliku FCB, FAT16, FAT32, i-węzeł,
główna tablica plików MFT.
7
Download