lastscan8 (12)

lastscan8 (12)




Przełączanie procesów jest inicjowane przez przerwanie zewnętrzne lub wewnętrzne Wyjątkiem od tej reguły jest jawne wywołanie funkcji (uslugi)sy stemowej Proces obsługi przerwania jest podobny do wywołania procedury z tą istotną różnicą, że w przypadku wywołania procedury minimalny kontekst procesu musi zawierać tylko ślad (adres) powrotu ponieważ jest wykonywany jako wątek procesu (wykonuje się w środowisku programowym procesu) W przypadku wywołania procedury obsługi minimalny kontekst procesu musi zawierać przynajmniej rejestr statusu i adres powrotu a operacja przełączania kontekstu musi być operacją niepodzielną W systemie wieloprocesowym obsługa przerwania musi przechować minimalny kontekst procesu bieżącego i załadować kontekst procesu obsługi tego przerwania Po wykonaniu procedury obsług Ppr zerwani a musi nastąpić zwrotne wywołanie procesu przerwanego a co za tym idzie przełączenie kontekstu procesu, które także musi być realizowane jako operacja niepodzielna (atomowa) Wywołanie zwrotne procesu przerwanego wykonywane jest synchronicznie jako wywołanie usługi systemowej i jest inicjowane specjalną instrukcją powrotu (np w maszynach Intel 80x86 - reti)

Nie wszystkie przerwania są jednakowo ważne dla systemu operacyjnego Konsekwencją tego jest wprowadzenie priorytetów przerwań które pozwalają określić metody postępowania w sytuacji, kiedy zostaną zgłoszone dwa przerwania w tym samym czasie (w jednym cyklu zegara) Wyróżnia się trzy klasy przyczyn przerwań

•    (H) spowodowane naruszeniem bezpieczeństwa lub błędem sprzętowym

•    (M) krytyczne ze względu na czas obsługi

•    (L) spowodowane obniżeniem przepustowości systemu lub związane z obsługą zdarzeń, których ważność jest określona przez użytkownika.

Przerwania najwyższego poziomu - H muszą być niezwłocznie obsłużone a próba kontynuowania bieżącego procesu przed zakończeniem obsługi takiego przerwania grozi naruszeniem spójności systemu. Przerwania poziomu M muszą być obsłużone bez opóźnień ponieważ są one skutkiem wystąpienia zdarzeń wymagających krótkiego czasu reakcji. Obsługa przerwań typu L może być odłożona na później ponieważ grozi to tylko obniżeniem przepustowości systemu lub opóźnieniem wykonania procesu

Z uwagi na istnienie priorytetów przerwań i potrzebę synchronizacji procesów ich obsługi z innymi procesami, niezbędna staje się kontrola możliwości zgłoszeń Można to zrealizować poprzez mechanizmy maskowania i odkładania obsługi. Najprostszym sposobem realizacji mechanizmu maskowania jest zablokowanie przerwań określonej klasy. Zazwyczaj niedozwolone jest blokowanie przerwań klasy H. Maskowanie innych przerwań polega na selektywnym ignorowaniu zgłoszeń Rozwiązanie takie może powodować błędy wykonania procesu Częściej więc stosuje się odkładanie obsługi przerwań, polegające na odłożeniu obstugi przerwań niższego priorytetu, których zgłoszenie zapamiętano. Należy jednak zdawać sobie sprawę, że odłożenie obsługi przerwań poziomu M czyli krytycznych ze względu na czas obsługi może powodować te same skutki jak ich ignorowanie.

Pomimo że zgłoszenia przerwań mogą być asynchroniczne to procesy ich obsługi powinny być zsynchronizowanie z innymi procesami w systemie Wyróżnia się przerwania precyzyjne których obsługa może się rozpocząć po zakończeniu wykonywania aktualnie wykonywanego rozkazu i przerwania nieprecyzyjne których obsługa rozpoczyna się natychmiast po zgłoszeniu. Przerwania nieprecyzyjne zwane także niemaskowalnymi zwykle związane są z błędem sprzętu lub zerowaniem systemu. Obsługa tych przerwań nic zapewnia powrotu do przerwanego programu.

Jeżeli w systemie w systemie istnieje wiele potencjalnych źródeł przerwań to pojawia się problem identyfikacji źródła przerwania. Problem ten można rozwiązać poprzez odpytywanie (pooling) lub samoidcmyftkację Odpytywanie polega na cyklicznym sprawdzaniu statusu urządzeń które mogą być przyczyną przerwania, rozwiązanie takie wprowadza duże opóźnienie obsługi przerwań i we współczesnych systemach nie jest stosowane. Samo identyfikacja polega na wytwarzaniu unikatowego identyfikatora wytwarzanego przez źródło przerwania. Stosuje się wektoryzację przerwań która zapewnia bezpośrednią identyfikację źródła lecz nie rozwiązuje problemów rozstrzygania konfliktów zgłoszeń i rozpoznawania ich priorytetów. W praktyce problem ten rozwiązuje się poprzez zastosowanie do lego celu osobnego układu programowalnego sterownika, który umożliwia nadawanie i modyfikację priorytetów przerwań, ich zapamiętywanie i maskowanie. W systemach wieloprocesorowych sterownik powinien leź zapewnić dystrybucję zgłoszeń pomiędzy procesory systemu Istnieją dwa sposoby dystrybucji zgłoszeń Pierwszy to wskazanie procesora który powinien przejąć obsługę przerwania, drugi sposób to rozgłaszanie czyli informowanie wszystkich procesorów o zaistniałym przerwaniu a obsługę podejmuje procesor najmniej obciążony.

6. Ochrona procesu

Utrzymanie spójności systemu wymaga ochrony zasobów. Jeśli bowiem proces użytkownika uzyskałby dostęp do tablicy harmonogramowania, to mógłby zmonopolizować procesor. Ochrona zasobów powinna zapewnić

•    bezpieczeństwo systemu - zapobieganie upadkowi systemu z powodu błędów podczas wykonywania procesów użytkowników

*    prywatność procesów - blokada nieupoważnionego dostępu procesu do zasobów innych procesów

Ochronę procesów współbieżnych utrudnia potrzeba umożliwienia wymiany informacji między nimi Wymaga to, niezależnie od formy komunikacji, przekazywania mechanizmów ochrony pomiędzy procesami. Metody ochrony zasobów dzieli się na;

*    zapobieganie zamierzonemu łub przypadkowemu naruszeniu bezpieczeństwa systemu lub prywatności procesów

•    wykrywanie, rozpoznawanie i unieważnienie działań użytkownika ingerujących w mechanizmy ochrony

Pierwsza z metod polega na eliminacji działań ingerujących w mechanizmy ochrony, np w językach wysokiego poziomu poprzez usunięcie ze składni ryzykownych konstrukcji językowych takich jak wskaźniki lub wstawki w językach asemblerowych. Współcześnie metoda ta nie jest stosowana, a języki wysokiego poziomu zazwyczaj dopuszczają użycie niebezpiecznych kwistrukcji językowych.

• pamięć wieloz.akresową (muhi-thmuun) - cala pamięć jest p<x!zielona na N rozłącznych obszarów Proces uzy skuje prawo dostępu do pewnego podzbioru tych obszarów, a każdy obszar może być dostępny bądź dla różnych procesów, bądź tylko dla jednego procesu

W pamięci wielo/aloesowej procesowi może być przydzielonych wiele zbiorów domen (obszarów separował nych) Dostęp do wszystkich obszarów w jednym zbiorze domen jest realizow any w ten sam sposób Jeśli zatem jeden z obszarów jest dzielony z innym procesem to nic ma możliwości ochrony zasoWiw własnych żadnego z tych procesów, bo sposób dostępu do obszaru współdzielonego i własnego musi być identyczny Ochłonę wówczas można zapewnić wyłącznie poprzez dynamiczną zmianę zasad dostępu do obszaru wspólnego, no przykład aktualizacje wartości zmiennej kluczującej po każdym dostępie do obszaru wspólnego

Jeżeli jednak procesowi przydzielono więcej niż jeden zbiór domen, to dla każdego z nich można zdefiniować odrębny mechanizm ochtony, co zapewnia zarówno ochronę własnych zasobów każdego procesu, jak i ochronę obszarów współdzielonych przed procesami nieuprawnionymi.

Model ten można zrealizować jako hierarchiczną strukturę zbiorów domen, albo jako elastyczną stnikturę domen poszczególnych procesów Pierwszy model jest realizowany w wirtualnym trybie adresowania piocesiuów Intel 803R6/Pentium, jako czteiopo/iomowa struktura uprzywilejowania Zasoby umieszczone są w innej warstwie uptzywilejowania są udostępniane procesowi przez selektywne przekazanie uprawnień dostępu za pomocą mechanizmu furtki (gale) W drugim modelu w kontekście każdego procesu są zdefiniowane tablice dostępu, wskazujące, które domeny są dostępne dla tego procesu Tablice te jako część kontekstu procesu, muszą być przełączane podczas przełączania procesów

Bardziej zaawansowanym mechanizmem ochrony stosowanym na poziomie zarządzania pamięcią, jest ustanowienie selektywnych praw dostępu do zasobów pamięci zorganizowanych w błoki.

Wykład 5 - Zarządzanie pamięcią

Zarządzanie pamięcią

Często okazuje się iż zaprojektowany przez programistę program wymaga większego obsz.aru pamięci niż jest dostępny w danym systemie. W systemach jednoprocesorowych problem ten rozwiązywano poprzez zastosowanie nakładkowania Metoda ta polega na podzieleniu kodu programu i struktur danych na części sekwencyjnie wymieniane w pamięci. Rozwiązanie to wymaga zaangażowania programisty w zadania związane z organizacją przetwarzania. Przy przetwarzaniu procesów współbieżnych pojawia się dodatkowo potrzeba podziału pamięci na niezależne obszary przydzielane poszczególnym procesom a nieznajomość przydziału w chwili pisania programu wymaga stosowania skomplikowanych technik programowania, szczególnie gdy procesy mają się komunikować

Rozwiązanie problemów przydziału pnmięei można uzyskać przez stosowanie mechanizmów zarządzania pamięcią na poziomie systemu operacyjnego Mechanizmy te umożliwiają

•    ochronę zasobów pamięci

•    współdzielenie obszarów pamięci przez różne procesy

•    przemieszczanie obszarów pamięci

•    przeźroczystą dla programów organizację pamięci    fizycznej

•    przeźroczystą dla programów organizację pamięci    logicznej

Ochrona zasobów pamięci może być realizowana dwu poziomowo: przez blokadę nieautoryzowanego dostępu oraz przez sprawdzanie dodatkowych ograniczeń jeżeli dostęp jest dozwolony. Procesy korzystające ze wspólnej pamięci nie powinny mięć dostępu do lokacji im nieprzydziełonych W momencie kiedy dopuszczamy możliwość posługiwania się w programach dynamicznymi wskaźnikami to testowanie legalności dostępu do danego adresu tylko podczas kompilacji staje się niewystarczająca i konieczna jest także kontrola legalności adresu również w czasie wykonywania programu

Choć współdzielenie pamięci jest logicznie sprzeczne z ochroną pamięci to implementacja mechanizmów przydziału zasobów umożliwia zarówno ochronę pamięci procesu jaki i bezkonfliktowe korzystanie z pamięci współdzielonej jeżeli dostęp do wspólnych zasobów jest kontrolowany.

Aby możliwy był elastyczny przydział pamięci procesom w programach opisujących treść poszczególnych procesów powinny operować jedynie na adresach symbolicznych. Takie rozwiązanie umożliwia relokację bloków pamięci

7,e względu na koszt pamięci głównej większość systemów korzysta z tańszej pamięci wtórnej co wymaga kontroli przepływu informacji pomiędzy pamięcią główna i wtórną Ponieważ wspomniane wcześniej metody nakładkowania wymagają od programisty znajomości reguł tej techniki lepszym i prostszym rozwiązaniem jest nadzorowanie współdziałania pamięci pierwotnej i wtórnej na poziomie sy stemu operacyjnego

Większość programów ma konstrukcję modułową tzn. zawiera procedury i tablice które stanowią jednostki programowe niezależnie przetwarzane lub rozmieszczane w pamięci Podczas jednoczesnej realizacji wielu procesów niezależnymi jednostkami są również ż.asoby procesu Niezależna obsługa takich jednostek może być realizowana przez ustanowienie logicznej organizacji pamięci, umożliwiającej niezależną obsługę poszczególnych jednostek w systemie zarządzania pamięcią

Koncepcja pamięci wirtualnej

Niebezpośrednie odwzorowanie adresów logicznych (wytwarzanych w czasie kompilacji programu) na adresy fizyczne prowadzi do koncepcji pamięci wirtualnej (viriual niemoty, VM) Taki sposób odwzorowywania adresów logicznych na adresy fizyczne umożliwia przypisanie różnym strukturom programowym tych samych obszarów pamięci fizycznej co umożliwia użycie w programie adresów logicznych z zakresu przekraczającego rozmiar dostępniej w systemie pamięci głównej (fizycznej). Rozwiązanie takie umożliwia też łatwą realizację mechanizmów zarządzania pamięcią. W systemie wieloprocesorowym odwzorowanie adresów może również obejmować ich powiązanie z procesami. Adres obejmujący odwzorowanie logicznej struktury programu i jej powiązanie z procesem nazywa się adresem wirtualnym, a obszar tak adresowany to przestrzeń wirtualna


Druga z metod może być realizowana na poziomie architektury rzeczywistej łub na poziomie zarządzania pamięcią Ochrona na poziomie architekiury polega na zapobieganiu wykonania niedozwolonych operacji przez sygnalizację próby ich wykonania Nielegalność instrukcji może być skutkiem niepoprawnego kodowania operacji, operandu lub danej. Odpowiednio do przyczyny wyróżnia się ochronę:

•    w przestrzeni kodów, która polega na uniemożliwieniu wykonania instrukcji uprzywilejowanych i wykonywania instrukcji uprzywilejowanych w trybie użytkownika Rozwiązanie takie wymaga wyróżnienia co najmniej dwóch poziomów uprzywilejowania i wykonywania procesu użytkownika na poziomic niższym, a instrukcji uprzywilejowanych na poziomie niższym

•    w przestrzeni operandów, która polega na wykluczeniu wykonania w trybie użytkownika operacji używających zastrzeżonych operandów (na przykład rejestru stanu) łub testowaniu legalności adresów operandów zastrzeżonych, co może być częścią mechanizmu zarządzania pamięcią

•    w przestrzeni danych, co wymaga przypisania każdej danej znacznika (lag) co jest sprzeczne z klasyczną koncepcją pamięci i dlatego nie jest stosowane w obszarze pamięci głównej, a tylko w buforach pamięci podręcznych.

Ochrona procesu na poziomie pamięci

Efektywnym sposobem ochrony zasobów w przestrzeni adresowej jest separacja obszarów pamięci, stanowiących pod przestrzenie obszaru adresowego procesora Zależnie od liczby separowanych przestrzeni przydzielonych procesowi wyróżnia stę

•    pamięć jednozakresową (smg/e domain) - proces otrzymuje wyłącznie przydział własnej pamięci nie dostępnej dla innych procesów. W tej metodzie procesy nie mogą używać wspólnych procedur lub danych. Niemożliwa także jest komunikacja przez pamięć

•    pamięć dwuzakresową {two domom) - jeden z obszarów jest współdzielony i dostępny dla wszystkich procesów, drugi zaś jest obszarem prywatnym procesu (niedostępnym dła innych procesów), wszystkie obszary są separowalne

Realizacja pamięci wirtualnej obejmuje dwie grupy zagadnień (rys 6 8):

•    translację adresu wirtualnego (logicznego) na adres rzeczywisty

•    odwzorowanie adresu wirtualnego w pamięci fizycznej

Adresowanie obiektów programowych w pamięci wirtualnej jest irójpoziomowe. Adresy logiczne odpowiadają porządkowi instrukcji i lokalizacji danych w przestrzeni adresów logicznych, której rozmiar odpowiada zakresowi wskaźników adresowych obliczanych zgodnie z trybem adresowania Podczas aktywacji procesu są one kojarzone z identyfikatorem procesu (PID - UN1X, S!D - Windows), tworząc adres wirtualny Układ zarządzania pamięcią MMU (memory menagmenl unit) dokonuje translacji adresów wirtualnych na adresy rzeczywista, wskazując adresv( lokacje) w pamięci głównej (fizycznej) (rys. 6.9. folia). Jeśli obiekt z uwagi na ograniczony rozmiar pamięci głównej nie jest lam obecny, to nastąpi jego pobranie z pamięci wtórnej, z miejsca które wskazuje adres zewnętrzny. W systemie pamięci wirtualnej rozróżnienie adresowania pamięci głównej i pamięci wtórnej musi być dla procesu przeźroczyste. Uruchomienie przesyłania bloków danych pomiędzy pamięcią główną a pamięcią wtórną jest realizowane jako obsługa wyjątku zwanego błędem braku jednostki (missing iłem fauh) Translacja adresu wirtualnego na adres rzeczywisty wymaga relokacji bloków pamięci Jeśli odwzorowanie adresów wirtualnych na adresy rzeczywiste jest znane podczas ładowania procesu to mówimy o relokacji statycznej Relokację dynamiczną cechuje tłumaczenie każdego adresu wirtualnego na adres rzeczywisty w czasie wykonywania procesu. Ponieważ działanie to musi być zrealizowane bardzo szybko, więc wskazane jest sprzętowe wspomaganie tego mechanizmu

Możliwa byłaby translacja adresu wirtualnego każdej elementarnej jednostki danych, jednak rozwiązanie takie byłoby pamięciożeme i równoważne z etykietowaniem każdej danej 2. drugiej strony regularność i spójność logicznych struktur programu umożliwia ograniczenie translacji do adresów bloków danych Część adresu danej, określająca jej lokację względem początku adresowanego bloku, zwaną przemieszczeniem (offset), nic musi być wtedy przekształcona

3    Model zbioru roboczego

frfr:


Michał Jur



Wyszukiwarka

Podobne podstrony:
LastScan13 (11) Ponieważ trzpień jest przeciągany przez ciągadło wraz z rurą, występują tu mniejsze
4c (12) 10.    Mózgowie jest zaopatrywane przez: a. t. szyjną wewnętrzną h. (. szyjną
DSC00264 (12) Strategia organizacji jest przyjętą przez jej kierownictwo spójną koncepcją działania,
12 BACHOTfcpC ’98 Dopiero cztery farby podstawowe, zwane przez drukarzy „triadą” lub CMYK-iem (od
DSC00064 (19) procesu jest fakt istnienia przylegającej do ściany warstwy laninamej. W warstwie tej
stolarstwo9 104 którćj trzy ściany boczne są pełne, przednia zaś zamykana jest drzwiczkami, przez c
Leczenie gruźlicy x jest prowadzone przez okres 6-9 m-cy 3 lub 4 lekami (rifampicyna, izoniazyd, pyr
131(1) 2) Pętla danej krzywej jest zakreślana przez punkt bieżący krzywej przy zmianie y od 0 d
- poślizg; • końcowe sprawdzenie wyników procesu produkcyjnego, np przez inspekcję wizualną lub
Zanieczyszczenie Zanieczyszczenie jest: •    pobierane przez koi zenie lub
2 -w celu zajęcia wierzytelności, której zabezpieczenie jest ujawnione przez wpis w KW lub przez zło
UMOWA O ŚWIADCZENIE PRZEZ OSOBĘ TRZECIĄ Nic ma wyjątku od zasady względnego charakteru zobowiązań. S
Są jednak wyjątki od tej zasady. Wsteczną moc uzyskały przepisy dotyczące przestępstw popełnionych p
Są jednak wyjątki od tej zasady. Wsteczną moc uzyskały przepisy dotyczące przestępstw popełnionych p
i m v 11 < < u /. - ■ IS.OUCKS L,l>kl l^OkUibMCJ 2.    Wyjątkiem od tej zasa

więcej podobnych podstron