Pobierz Tryby pracy - Notatki - Informatyk i więcej Notatki w PDF z Informatyka tylko na Docsity! System operacyjny – zbiór procedur przeznaczonych do zarządzania zasobami systemu informatycznego. Funkcje s.o polegają na rozwiązywaniu konfliktów powstających podczas współubiegania się różnych zadań o zasoby systemu i na optymalizacji wykorzystania zasobów przez te zadania. S.o. spełnia funkcje: − Umożliwia komunikację systemu informatycznego z otoczeniem (sieć, interfejs) − Przechowuje i uaktualnia dane o stanie zasobów − Decyduje które zadanie, kiedy i w jakiej ilości uzyska przydział określonych zasobów − Przydziela zasoby do zadań − Odłącza zasoby od zadań Tryby pracy s.o.: 1. bezpośredni – on-line system – jeśli spełniony jest co najmniej jeden z warunków: dane wejściowe przyjmowane są wprost z obszaru ich powstawania dane wyjściowe/wyniki wysyłane są bezpośrednio do obszaru, z którego pochodzi żądanie usługi dane muszą być przetwarzane bezpośrednio po ich wprowadzeniu 2. niebezpośredni 3. czasu rzeczywistego – w systemie bezpośrednim, w którym spełnione są narzucone na proces ograniczenia albo na czas przetwarzania danych albo na czas od zbierania do wyniku przy czym te ograniczenia nie mogłyby być spełnione w tym systemie pracującym w trybie niebezpośrednim Przetwarzanie krotne obejmuje tryby: 1. wieloprzetwarzanie – tryb pracy systemu wieloprocesorowego oraz wielocząstkowego 2. wielodostępność – tryb przetwarzania, w którym co najmniej dwóch użytkowników korzysta z jednostki centralnej, tak że żaden z nich nie musi być poinformowany o sposobie użytkowania innych 3. wieloprogramowanie – tryb pracy systemu polegający na tym, że wewnątrz większego przedziału czasu kilka zadań przebywających w systemie (jednocześnie w pamięci operacyjnej) może na przemian wykorzystywać procesor. Z punktu widzenia procesu zadania te wykonywane są równolegle. Pozwala to na lepsze wykorzystanie systemu a w szczególności procesora bo umożliwia równoległą pracę procesora i urządzeń zewnętrznych. Wiąże się z nim pojęcie podziału czasu tzn. pewnej techniki szeregowania zadań zgodnie z którą zadania otrzymują przydział procesora na określony kwant czasu. Po jego upływie niezależnie od stanu zakończenia zadania inne zadanie otrzymuje przydział procesora. Kwant czasu, na który zadanie otrzymuje przydział procesora zależy od algorytmu szeregowania i nie musi być stały. SYSTEM PRZERWAŃ przerwanie – sygnał, który powoduje zawieszenie aktualnie wykonywanego programu tzn. Wstrzymanie jego wykonywania i zapamiętanie stanu oraz przejścia do wykonywania programu obsługi przerwania. stan programu – minimalna ilość danych, która jest konieczna do wznowienia wykonywania zawieszonego programu niezależnie od programów wykonywanych w czasie jego zawieszenia. Przerwanie wewnętrzne – są generowane dla poinformowania o zajściu pewnych zdarzeń wewnątrz procesora. Zdarzenia te mają najczęściej charakter błędów, np. wykrycie nadmiaru… Przerwania programowe – tzw. makroinstrukcje – SA pewnym typem rozkazów, w przeciwieństwie jednak do „normalnego” rozkazu języka wewnętrznego wykonanie makroinstrukcji powoduje wygenerowanie przerwania i przejście do programu umieszczonego na stałe w pamięci operacyjnej realizującego część makroinstrukcji. W opisany powyżej sposób odbywa się komunikacja programów użytkowych z systemem operacyjnym. Przerwania zewnętrzne – związane są z urządzeniami zewnętrznymi i w ogólności dotyczą zmiany stanu urządzenia. Przebieg współpracy z urządzeniem: 1. podczas działania programu 1 procesor wykonuje operacje we/wy, w których inicjuje elektromechaniczną operację we/wy urządzenia 2. program ten zostaje zawieszony i procesor przechodzi do wykonania innego niezależnego programu 3. gdy urządzenie wykona operację we/wy następuje wygenerowanie przerwania, które zawiesza automatycznie program 2 i umożliwia kontynuowanie programu 1. Każdemu przerwaniu przypisany jest priorytet, który decyduje o kolejności wybierania danego przerwania do obsługi. W przypadku jednoczesnego pojawienia się kilku przerwań. Nie przyjęte do obsługi przerwania czekają tworząc tzw. kolejkę żądań obsługi. Zazwyczaj podobne źródła przerwań są pogrupowane w pewne klasy a każdej z nich przypisany jest pewien poziom przerwań. W przypadku jednoczesnego pojawienia się przerwań z różnych poziomów najpierw obsługiwane są przerwania najwyższego poziomu. Co więcej przerwanie z wyższego poziomu zawiesza obsługę przerwań z niższego poziomu Niekiedy zachodzi potrzeba programowego zmienienia poziomów przerwań. Realizuje się to najczęściej przez związanie z każdym poziomem przerwań jednobitowego rejestru maski, którego zawartość może być programowo zmieniana. Przerwania maskowane nie są przyjmowane do obsługi i muszą czekać na zmianę zawartości rejestru maski. Ochrona pamięci operacyjnej W pamięci operacyjnej znajduje się zazwyczaj jednocześnie wiele programów, w tym część lub całość systemu operacyjnego. Zachodzi więc konieczność ochrony jednych programów przed drugimi, aby na skutek błędnego działania jakiegoś programu nie został zniszczony inny program lub jego dane. Istnieją różne sposoby ochrony pamięci jednych programów przed drugimi. Jeśli programy muszą zajmować w pamięci operacyjnej obszar spójny, to stosuje się dwa rejestry: rejestr bazowy i rejestr graniczny. Do rejestrów tych bezpośrednio przed przydzieleniem procesora do programu użytkowego system operacyjny wpisuje górną i dolną granicę obszaru zajętego przez program. Każde odwołanie do pamięci jest automatycznie sprawdzane w celu sprawdzenia czy nie wykracza poza dostępny obszar pamięci. W przypadku naruszenia ochrony pamięci generowane jest przerwanie świadczące o błędzie. Inny sposób ochrony pamięci polega na zastosowaniu tzw. masek ochrony pamięci. Pamięć operacyjna podzielona jest wtedy na standardowe bloki o jednakowych rozmiarach. Z każdym z bloków związany jest rejestr zwany maską ochrony pamięci. W bardzo prostych systemach maską ochrony pamięci jest 1 bit. Jeśli maska danego bloku zawiera 0 to wykonywany program nie może dokonać zapisu do tego bloku i w ten sposób informacja w danym bloku nie ulegnie zmianie. W bardziej złożonych wersjach stosuje się maski wielobitowe. W przypadku 2 bitów 00 oznacza brak możliwości dostępu do bloku, 01 jedynie wykonywanie programu, 10 jedynie czytanie danych, 11 czytanie i wykonywanie danych. System operacyjny przed przydzieleniem procesora do programu sprawdza, które bloki są dla niego dostępne i ustawia odpowiednie maski. W razie próby wykonania operacji niedozwolonej generowane jest przerwanie. Jeszcze inny sposób polega na związaniu z każdym blokiem pamięci tzw. klucza odnowy pamięci, który zawiera identyfikator programu mającego dostęp do danego bloku. Stosowanie kluczy ma na celu ochronę pamięci przed niewłaściwym dostępem ze strony procesora oraz równolegle pracujących z nim kanałów wejścia/wyjścia. Zmiana bowiem zawartości kluczy następuje w chwili zmiany przydziału danego bloku pamięci, a nie w chwili zmiany przydziału procesora. Należy zauważyć, że poprzednie rozwiązania nie uwzględniały dostępu kanałów we/wy do pamięci operacyjnej.