7673


Systemy - opracowanie:

SYSTEMY

Systemy wsadowe: program np. na taśmie.. nie interaktywny… stanowiący całość… jednoprocesowy

Spooling - zadania zamiast w pamięci przechowuje się na dysku. Istnieje pula zadan czekających na wykonanie. Dzięki temu możliwe jest wieloprogramowanie.

Systemy wieloprogramowe - same decydują o kolejności zadań

- efektywniej wykorzystują zasoby i moc obliczeniową

Systemy z podziałem czasu - interaktywne, system przełącza się między zadaniami co jakiś kwant czasu dzięki czemu użytkownik może wpływać na program w trakcie jego działania

Stosuje się tu:

Przetwarzanie symetryczne - każdy procesor pracuje pod identyczną kopią systemu

Przetwarzanie asymetryczne - jeden proc rozdziela zadania, reszta robi

System rozproszony - wiele komputerów w sieci. Odbierane jak jedno środowisko. Każdy użytkownik widzi je jako całość

System czasu rzeczywistego:

Twardy:

- wszędzie tam gdzie liczy się prędkość i terminowość wypełniania zadań

- kłuci się z systemami z podziałem czasu

- brak lub bardzo mała pamięć pomocnicza

- np. linie produkcyjne

Łagodny:

- współpracuje z systemami z podziałem czasu

- już nie do przemysłu

Interpreter poleceń - pośredniczy miedzy użytkownikiem a systemem (tłumaczy kliknięcia)

ALGORYTMY PLANOWANIA CZASU PROCESORA

FCFS (ang. First Come First Served) - pierwszy zgłoszony pierwszy obsłużony - FIFO

SJF (ang. Shortest Job First) - najpierw najkrótsze zadanie

- algorytm bierze pod uwagę długość najbliższej fazy procesora każdego procesu

- jak równe to SCFS

- optymalny

- trudno oszacować następną długość

Szacowanie długości fazy procesora

- zakłada się, że długość następnej fazy procesora jest zbliżona do długości faz poprzednich

- następna faza procesora jest średnią wykładniczą pomiarów długości poprzednich

0x01 graphic

T - długość n-tej fazy procesora

N - szacowana długość następnej fazy procesora

n+1 - parametr o wartości z przedziału < 0,1 > parametr stanowi wagę pomiędzy niedawną a wcześniejszą historią

0x01 graphic

Planowanie priorytetowe

- procesy mają priorytety

- ryzyko zagłodzenia procesów

- rozwiązaniem jest postarzanie procesów

Planowanie rotacyjne - wywłaszczeniowy FCFS

- wadą tej metody jest długi średni czas oczekiwania

Wielopoziomowe kolejki - to logiczne… te ze sprzężeniem dodatkowo mogą przesuwać procesy między kolejkami o różnych priorytetach

Push/pull migration - nadmiernie odciążony procesor oddaje część obliczeń… albo niedociążony pobiera.

OCENA ALGORYTMÓW

Modelowanie deterministyczne - definiujemy jakies obciążenie i liczymy zachowanie systemu (tak robimy na kole)

Symulacje

A potem jest 30 slajdów z kompletnym bełkotem… on to chyba sklejał z czegoś.. na 100% nie jest autorem całości

0x01 graphic

Przydział pamięci

na początku podstawy o dynamicznych i statycznych bibliotekach… było na c

Nakładka - w pamięci tylko potrzebne dane i rozkazy. Reszta doczytywana w razie potrzeby. Można wykonywać procesy większe niż niż dostępna pamięć.

0x01 graphic

Adresy fizyczne to adresy logiczne przesunięte o wartość bazy

0x01 graphic

Fragmentacja zewnętrzna - przestrzeń pamięci pocięta na wiele kawałków. W sumie starcza pamięci na zadanie ale nie tworzy ona spójnego obszaru

Fragmentacja wewnętrzna - bezużyteczny kawałek pamięci wewnątrz obszaru przydzielonego do procesu

Upakowanie - przemieszczenie danych tak aby pamięć wolna była w jednym bloku

Stronicowanie - zapobiega zewnętrznej fragmentacji

- dzielimy pamięć na ramki i strony - adres logiczny to numer strony i odległość na stronie

- używamy tablicy stron, która zawiera adresy bazowe

Bufory TLB - takie małe dziadostwa zawierające adresy kilku stron (jakoś tam szacują jakie strony będą potrzebne)

Stronicowanie wielopoziomowe - strony wskazujące na strony itd.

SEGMENTACJA

Pamięć jako zbiór segmentów i zróżnicowanych rozmiarach (np. main, czy funkcje)

- każdy segment ma nazwę i długość

- adresy to nazwa i odległość wewnątrz

- realizacje przez tablice segmentów czyli wykaz par:

Baza segmentu - początkowy adres fizyczny

Granica segmentu - długość segmentu

- adres fizyczny = baza + przesunięcie

- brak fragmentacji wewnętrznej

SEGMENTACJA ZE STRONICOWANIEM

Stronicowanie tablicy stron segmentów łooo!!!

Anomalia belady'ego - wraz ze wzrostem liczby ramek wzrasta współczynnik braków stron

Stronicowanie na żądanie - procesy postronicowanie i trzymane na dysku.

- leniwe - wymienia się strony tylko jak trzeba już koniecznie

- potrzeba tablicy stron (adresy i bity poprawności) i pamięci pomocniczej (do danych)

ALGORYTMY ZASTĘPOWANIA STRON

- wskazują ramkę do wymiany

FIFO - zwykłe FIFO jak zawsze.. po kolei

Algorytm optymalny

- nie dotknięty anomalią belady'ego

- ma najmniejszy współczynnik braku stron

Anomalia belady'ego - więcej ramek powoduje wzrost współczynnika braku stron

Algorytm LRU

- (least recently used) - zamienia stronę, która była najdawniej używana

- implementacja za pomocą stosu lub listy liczników

Algorytmy przydziału ramek

Przydział równy (equal allocation) - każdy po równo. Co zostanie to jako bufor.

Przydział proporcjonalny - każdemu według wielkości procesu

0x01 graphic
gdzie ai- il ramek dla procesu, m ogólna ilość ramek, Si - ilość pamięci wirtualnej procesu, S - suma pamięci wirtualnej wszystkich procesów

Przydział lokalny - jak zabraknie stron to szukamy ramki do zamiany tylko u siebie

Przydział globalny - można kraść innym procesom ramki ;-)

Szamotanie - ciągle brakuje stron bo ciągle trzeba nowych i musimy wywalać potrzebne

Segmentacja na żądanie:

- wolniejsze ale żre mniej sprzętu niż stronicowanie na żądanie

METODY DOSTĘPU DO PLIKÓW

Dostęp sekwencyjny- przesuwa się wskaźnik o ileś pozycji. Taka lista dwukierunkowa troche

Dostęp bezpośredni - możliwość stosowania rozkazów odwołujących się do konkretnego rekordu (plik jako tablica)

Indeksowanie - mamy indeks ze wskaźnikami do pliku. I właśnie jego przeszukujemy

METODY PRZYDZIAŁU MIEJSCA NA DYSKU TWARDYM

Przydział ciągły - plik zajmuje pika kolejnych bloków na dysku

- fragmentacja zewnętrzna i wewnętrzna

- mało elastycznie

Przydział listowy - plik jako ciąg powiązanych bloków (każdy ma wskaźnik do następnego)

- tylko do plików o dostępie sekwencyjnym

- awaryjność (tracimy koniec jak jeden blok)

- wskaźniki zajmują miejsce

Przydział indeksowy - plik ma jeden blok z lista wskaźników do pozostałych

- rozmiar bloku indeksowego

- umożliwia dostep bezpośredni

Zarządzanie wolnymi obszarami:

Wektor bitowy - ma 1 tam gdzie zajęty blok, 0 tam gdzie wolny

- trudność gdy nie można umieścić go w pamięci (duży jest)

Lista powiązana - przechowuje wskaźnik do początku wolnego obszaru a w pozostałych wpisuje wskaźniki do następnych (przechowuje strażników)

- mało wydajne to

Grupowanie - przechowuje adresy n wolnych bloków, gdzie blok n-ty ma adresy do kolejnych n bloków

Zliczanie - przechowuje adres pierwszego bloku i ilość następnych

Implementacja katalogu:

Lista liniowa - lista nazw z wskaźnikami do danych

Tablica haszowania - każdy wie co to

Przykład: Obliczyć rozmiar tablicy alokacji plików dla dysku o pojemności 1GB i rozmiarze klastra 32kB dla systemu FAT16

Liczba klastrów = 1GB/32 kB = 32768 klastrów

Rozmiar tablicy = 32768 * 16 = 524 288 B = 1024 sektorów = 16 klastrów

PLANOWANIE DOSTĘPU DO DYSKU

FCFS - standard… po kolei

SSTF - wybiera zamówienie najbliżej pozycji głowicy

- ryzyko zagłodzenia

SCAN - lecimy od krawędzi do krawędzi

C-SCAN - lecimy w jedną stonę a potem wracamy(nie czytając) i znowu

LOOK - lecimy do skrajnego zamówienia a potem do tego naprzeciwko (po drodze wypełniając inne)

C-LOOK - podobnie jak wyżej. Wracamy na początek jak dojdziemy do ostatniego zamówienia

Niezawodność:

ECC- kod korygujący

RAID1 -odbicie lustrzane

RAID5 - przeplatanie bloków parzystości



Wyszukiwarka

Podobne podstrony:
7673
7673
7673
7673
praca-magisterska-wa-c-7673, Dokumenty(2)
7673
7673
7673
08OlJ wyżid 7673 ppt
7673

więcej podobnych podstron