w4m.doc

(62 KB) Pobierz
Pojecie systemu operacyjnego

Pojecie systemu operacyjnego

System operacyjny jest specjalnym typem programu, który działa jako pośrednik między użytkownikiem komputera a sprzętem komputerowym. Zadaniem systemu operacyjnego jest tworzenie środowiska, w którym użytkownik może wykonywać inne programy.

Podstawowym celem systemu operacyjnego jest:wydajna eksploatacja sprzętu komputerowego.spowodowanie, aby system komputerowy był wygodny w użyciu.

Systemy wsadowe SW

Pierwsze komputery były wielkimi (fizycznie) maszynami obsługiwanymi za  Pośrednictwem konsoli. Popularnymi   urządzeniami   wejściowymi   były  czytniki kart i przewijaki taśm. Na wyjściu najczęściej można było spotkać  drukarki wierszowe, przewijaki taśm i perforatory kart. Użytkownicy takich systemów nie współpracowali bezpośrednio z systemem komputerowym.  Przeciwnie,  użytkownik  przygotowywał zadanie,  które składało  się z programu, danych  i  pewnych,  charakteryzujących  zadanie informacji sterujących (karty sterujące), po czym przedkładał  to wszystko operatorowi komputera. Systemy operacyjne tych pierwszych komputerów były zupełnie proste.

Podstawowym ich obowiązkiem było automatyczne  przekazywanie  sterowania od  jednego zadania do następnego. System operacyjny rezydował na stałe w pamięci operacyjnej, aby przyspieszyć  przetwarzanie, zadania o podobnych wymaganiach grupowano razem   i   wykonywano   w komputerze   w   formie tzw.wsadu Programiści  zostawiali  zatem programy  operatorowi. Operator sortował              je    w    grupy    o              podobnych wymaganiach  i  z  chwilą,  gdy  komputer  stawał się dostępny, przekazywał  poszczególne pakiety zadań  do wykonania.

Systemy SW ze spoolingiem

Kolejnym  krokiem  było  wprowadzenie  metody  przetwarzania nazwanej spooling, od skrótu  pełnej  nazwy  angielskiej  „simultaneous  peripheral operation  on-line”  (jednoczesna, bezpośrednia praca  urządzeń).  Spooling w istocie polega na tym, że używa się  dysku  jako olbrzymiego bufora do czytania z maksymalnym wyprzedzeniem z urządzeń   wejściowych oraz do przechowywania plików wyjściowych do czasu, aż urządzenia wyjściowe będą w stanieje przyjąć

Spooling  umożliwia nakładanie w czasie operacji wejścia-wyjścia jednego zadania na obliczenia innych zadań. Nawet w prostym systemie procedura spooler może czytać dane jednego zadania i równocześnie drukować wyniki innego. W tym samym czasie może być  wykonywane jeszcze inne zadanie(lub zadania), które czyta  swoje  „karty"  z  dysku  i  również              na  dysku„drukuje" wiersze swoich wyników. Spooling kosztem pewnego obszaru pamięci   na   dysku   i niewielu  tablic procesor pozwalał Wykonywać obliczenia jednego zadania równocześnie z operacjami  wejścia-wyjścia  dla innych zadań.

Wieloprogramowe SW

Ze spoolingiem jest związana bardzo ważna struktura danych - pula zadań  Gdy kilka zadań znajdzie się na urządzeniu o dostępie bezpośrednim - jak dysk, wówczas staje się możliwe planowanie zadań (szeregowanie zadań; ang. job scheduling). Sytuacja taka ma miejsce gdy kilka zadań jest gotowych do wprowadzenia do pamięci operacyjnej, lecz brakuje dla wszystkich miejsca, wobec tego system musi wybierać spośród nich. Wybrawszy  któreś z  zadań z  puli,  system wprowadza je do pamięci operacyjnej w celu wykonania.  Przechowywanie wielu programów w pamięci w tym samym czasie wymaga jakiegoś zarządzania pamięcią Jeżeli kilka zadań  jest gotowych do  działania w tym samym czasie, to system musi wy-brać któreś              z nich. Tego rodzaju decyzje są planowaniem przydziału procesora.

Systemy z podziałem czasu

Podział  czasu  (inaczej wielozadaniowość;  ang.  multitasking)  stanowi logiczne   rozszerzenie wieloprogramowości.  Procesor  wykonuje  na przemian wiele  różnych zadań, przy czym przełączenia następują  tak często, że użytkownicy mogą współdziałać z  każdym  programem podczas jego wykonania.

Interakcyjny  lub  bezpośredni system  komputerowy umożliwia  bezpośredni  dialog użytkownika  z  systemem.  Użytkownik wydaje bezpośrednio              instrukcje systemowi operacyjnemu lub programowi i otrzymuje natychmiastowe odpowiedzi. Za  wejście służy  zazwyczaj klawiatura, a jako wyjściowe -  ekran (np. ekran monitora). Po   wykonaniu  jednego  polecenia  system  szuka  następnej „instrukcji sterującej" przekazywanej nie za  pośrednictwem  czytnika  kart,  lecz klawiatury użytkownika. Aby użytkownicy mogli wygodnie korzystać  zarówno  z danych, jak i z oprogramowania, powinien mieć  bezpośredni dostęp do systemu plików.

Plik jest  zestawem  powiązanych  informacji,  zdefiniowanym przez jego twórcę. Z grubsza biorąc, w plikach pamięta się programy (zarówno w postaci źródłowej, jak i wynikowej) oraz dane. Pliki danych mogą zawierać liczby, teksty lub mieszane dane alfanumeryczne. Pliki mogą  mieć  układ swobodny, jak w plikach  tekstowych, lub precyzyjnie określony format

Systemy z podziałem czasu -cz. II

Zazwyczaj pliki są  zorganizowane w logiczne niepodzielne grupy,  czyli  katalogi (ang. directories), ułatwiające ich odnajdywanie i wykonywanie na nich działań. Ponieważ do plików ma dostęp wielu użytkowników, jest pożądane, by istniał nadzór nad tym, kto i w jaki sposób z nich korzysta. W  systemie  operacyjnym  z  podziałem  czasu  zastosowano  planowanie przydziału procesora  i  wieloprogramowość,  aby  zapewnić każdemu  użytkownikowi możliwość korzystania z małej porcji dzielonego czasu pracy  komputera. Każdy użytkownik ma przynajmniej jeden oddzielny program w pamięci. Załadowany do pamięci operacyjnej i wykonywany w niej program przyjęto nazywać procesem Aby zagwarantować  akceptowalny czas odpowiedzi,zadania z  pamięci  operacyjnej  trzeba  niekiedy  odsyłać na dysk  i  wprowadzać do niej z powrotem. Dysk  staje  się zapleczem  dla  pamięci  głównej  komputera. Popularną metodą osiągania tego celu jest pamięć wirtualna  czyli   technika   umożliwiająca  wykonywanie   zadania   nie  mieszczącego się w całości w pamięci operacyjnej. Aby zagwarantować porządek wykonywanych działań, w systemie muszą istnieć mechanizmy synchronizowania zadań oraz  komunikacji  między nimi; system musi również zapewniać, że   zadania   nie będą się zakleszczać, nieustannie wzajemnie na siebie czekając

Systemy równoległe

Dzisiejsze  systemy  są w większości  jednoprocesorowe,  tzn. mają tylko jedną, główną jednostkę centralną. Obserwuje się jednakże zainteresowanie systemami wieloprocesorowymi W  systemach  tego  rodzaju  pewna  liczba  procesorów ściśle współpracuje ze sobą, dzieląc szynę komputera, zegar, a czasami pamięć i urządzenia  zewnętrzne.  Systemy  takie  nazywa  się  ściśle  powiązanymi. Obecnie w systemach wieloprocesorowych używa się  najczęściej modelu wieloprzetwarzania symetrycznego (ang.  symmetric multiprocessing), w którym na każdym   procesorze działa identyczna kopia   systemu operacyjnego. Kopie te komunikują się ze sobą w zależności od potrzeb. W niektórych systemach zastosowano wieloprzetwarzanie asymetryczne polegające na tym, że każdy procesor ma przypisane inne zadanie.   Systemem   takim   zawiaduje   procesor główny.   Inne   procesory   albo   czekają na   instrukcje od procesora głównego,  albo  zajmują się swoimi uprzednio określonymi zadaniami. Procesorg główny planuje i przydziela prace procesorom podporządkowanym.

Systemy rozproszone

Struktura, w której procesory nie dzielą pamięci ani zegara, natomiast  każdy procesor ma własną  pamięć  lokalną  a  komunikacja odbywa się  za pomocą różnych  linii komunikacyjnych  nazywa  się zazwyczaj              systemami  luźno powiązanymi lub rozproszonymi.

Właściwości systemów rozproszonych:

Podział zasobów:Po połączeniu ze sobą różnych stanowisk (o różnych możliwościach)  użytkownik  jednego  stanowiska może  korzystać z zasobów dostępnych  na innym. Podział zasobów  w  systemie  rozproszonym  tworzy mechanizmy dzielonego dostępu do plików w węzłach zdalnych, przetwarzania informacji  w  rozproszonych bazach danych, drukowania plików  w  węzłach zdalnych,  zdalnego  użytkowania  specjalizowanych  urządzeń sprzętowych  i wykonywania innych operacji.

Przyspieszanie obliczeń: Jeśli pewne obliczenie da się  rozłożyć  na zbiór obliczeń cząstkowych,  które  można  wykonywać współbieżnie,  to  system  rozproszony umożliwia przydzielenie tych obliczeń do poszczególnych stanowisk i współbieżne ich wykonanie. Ponadto, jeżeli pewne stanowisko jest w danej chwili przeciążone zadaniami,  to  część z nich  można  przenieść do  innego,  mniej  obciążonego stanowiska. Takie przemieszczanie zadań  nazywa się  dzieleniem obciążeń (ang. load sharing).

Niezawodność:W    przypadku    awarii    jednego    stanowiska   

 

 

w systemie rozproszonym pozostałe mogą kontynuować pracę.

Systemy czasu rzeczywistego

Innym rodzajem specjalizowanego systemu operacyjnego jest system czasu rzeczywistego (ang. real-time). System czasu rzeczywistego jest stosowany tam,  gdzie istnieją surowe  wymagania  na  czas  wykonania  operacji  lub przepływu danych,

Istnieją dwie odmiany systemów czasu rzeczywistego.

Rygorystyczny system czasu rzeczywistego gwarantuje terminowe   wypełnianie krytycznych zadań. Osiągnięcie tego celu wymaga ograniczenia   wszystkich   opóźnień w systemie, poczynając od   odzyskiwania przechowywanych  danych,  a  kończąc  na czasie  zużywanym przez system  na wypełnienie dowolnego zamówienia.

Łagodny  system  czasu  rzeczywistego ,w którym krytyczne zadanie do obsługi w czasie rzeczywistym otrzymuje pierwszeństwo przed innymi  zadaniami i zachowuje  je  aż do  swojego  zakończenia.  Podobnie  jak  w rygorystycznym systemie czasu rzeczywistego opóźnienia muszą być ograniczone Żaden z istniejących, uniwersalnych systemów operacyjnych nie  umożliwia działania w czasie rzeczywistym. Systemy te  nie  mają  również  większości cech nowoczesnych systemów operacyjnych, które oddalają  użytkownika od sprzętu, zwiększając niepewność  odnośnie do ilości czasu zużywanego przez operacje.

 

Zarządzanie procesami

Za proces można uważać program, który jest wykonywany. W  myśl tego zadanie wsadowe jest  procesem;  program  użytkownika wykonywany w systemie z podziałem czasu też  jest procesem. Procesem jest również  zadanie  systemowe, Na razie można przyjąć,  że procesem jest zadanie lub program pracujący w systemie z podziałem czasu, choć w istocie pojęcie procesu jest tu o wiele ogólniejsze. Program sam  w  sobie  nie  jest  procesem                 Program  jest elementem pasywnym, tak jak zawartość pliku przechowywanego na dysku. Natomiast proces jest jednostką  aktywną,  której  licznik rozkazów  określa następną  instrukcję  do wykonania. Wykonanie  procesu musi przebiegać  w sposób sekwencyjny. Jednostka centralna wykonuje instrukcje procesu jedna po drugiej, aż do jego zakończenia. Jeden wykonywany program rodzi wiele procesów .Proces jest jednostką pracy w systemie. W takim ujęciu system składa się ze  zbioru   procesów, z   których część to procesy systemu operacyjnego  (te,  które  wykonują kod systemu), pozostałe zaś są procesami     użytkowymi (wykonującymi kod określony przez użytkownika). Wszystkie procesy potencjalnie mogą być wykonywane współbieżnie,  na  zasadzie multipleksowania między  nimi  jednostki centralnej.

 

Zarządzanie procesami

Aby wypełnić  swoje zadanie, proces musi korzystać  z pewnych zasobów,  takich              jak  czas  jednostki  centralnej,  pamięć,  pliki  i  urządzenia   wejścia- wyjścia. Zasoby te proces otrzymuje w chwili jego utworzenia albo są  one przydzielane procesowi podczas jego działania. W odniesieniu do zarządzania procesami system operacyjny odpowiada za następujące czynności: tworzenie i usuwanie  zarówno  procesów  użytkowych,  jak systemowych; wstrzymywanie i wznawianie procesów; dostarczanie mechanizmów synchronizacji procesów; dostarczanie mechanizmów obsługi zakleszczeń

 

Zarządzanie pamięcią operacyjną

W  celu  właściwego  wykorzystanie  jednostki  centralnej,  jak  i   szybszej reakcji komputera na polecenia jego użytkowników należy przechowywać kilka programów  w  pamięci  operacyjnej.  Jest wiele różnych sposobów zarządzania pamięcią.   Odzwierciedlają one różne podejścia do tego zagadnienia, przy czym efektywność poszczególnych algorytmów zależy od konkretnej sytuacji. Wybór sposobu zarządzania  pamięcią  zależy od wielu czynników, a zwłaszcza od rozwiązań sprzętowych zastosowanych w danym systemie. Każdy algorytm   wymaga swoistego wspomagania sprzętowego. W odniesieniu do zarządzania pamięcią  system operacyjny odpowiada za:

utrzymywanie  ewidencji  aktualnie  zajętych  części  pamięci  wraz  z  informacją, w czyim są władaniu; decydowanie o tym, które procesy mają być załadowane do zwolnionych obszarów pamięci; przydzielanie i zwalnianie obszarów pamięci stosownie do potrzeb.

 

Zarządzanie plikami

System operacyjny definiuje pliki,czyli jednostki logiczne przechowywanej informacji, niezależne od fizycznych właściwości używanych urządzeń pamięci. System  operacyjny  odwzorowuje  pliki  na  fizyczne  nośniki informacji i umożliwia do nich dostęp za pomocą urządzeń pamięci. Pliki są zazwyczaj zorganizowane w katalogi, co ułatwia ich użytkowanie. Jeśli wielu użytkowników ma dostęp do plików, to może być pożądane  sprawowanie pieczy nad tym, kto i w jaki sposób korzysta z tego dostępu.W odniesieniu do zarządzania plikami system operacyjny odpowiada za:

tworzenie i usuwanie plików; tworzenie i usuwanie katalogów; dostarczanie elementarnych operacji do manipulowania plikami i katalogami; odwzorowywanie plików na obszary pamięci pomocniczej; składowanie plików na trwałych nośnikach pamięci

 

Zarządzanie systemem we -wy

Jednym   z   celów   systemu operacyjnego   jest   ukrywanie   przed użytkownikiem      szczegółów      dotyczących      specyfiki urządzeń sprzętowych. Osobliwości urządzeń wejścia-wyjścia są ukrywane przed większością samego systemu operacyjnego przez tzw. podsystem wejścia-wyjścia. Podsystem ten składa się z: części zarządzającej pamięcią, wliczając w to: buforowanie, pamięć podręczną i spooling; ogólnego interfejsu do modułów sterujących urządzeń; modułów sterujących (programów obsługi) poszczególnych urządzeń sprzętowych.

Inne moduły zarządzania

Zarządzanie pamięcią pomocniczą. W odniesieniu do zarządzania dyskami system operacyjny odpowiada za: zarządzanie obszarami wolnymi; przydzielanie pamięci; planowanie przydziału obszarów pamięci dyskowej.

Zarządzanie systemem ochrony

Ochrona jest mechanizmem   nadzorowania   dostępu   programów, procesów  lub użytkowników do zasobów zdefiniowanych przez system komputerowy. Mechanizm ten  musi  zawierać  sposoby określania, co i jakiej  ma  podlegać ochronie,  jak  również  środki  do  wymuszenia zaprowadzonych ustaleń.

System interpretacji poleceń

Wiele   poleceń jest przekazywanych   do   systemu   operacyjnego za pomocą instrukcji  sterujących W  chwili rozpoczęcia nowego zadania automatycznie zaczyna pracować  program interpretujący   instrukcje   sterujące.   Program   ten   bywa   niekiedy nazywany  interpreterem  kart  sterujących  lub  interpreterem  wiersza poleceń, a często jest znany pod nazwą powłoki.

Programy systemowe

Programy systemowe tworzą wygodniejsze środowisko do opracowywania i  wykonywania innych programów.

Interpretowanie poleceń.

Manipulowanie plikami: Są  to programy, które służą  do tworzenia, usuwania, kopiowania, przemianowywania,  składowania  i wyprowadzania  zawartości plików bądź katalogów.

Informowanie  o  stanie  systemu:  Pewne  programy  po  prostu  pobierają z systemu dane określające datę, czas, ilość  dostępnej pamięci lub miejsca na dysku,  liczbę użytkowników  lub  podobne  informacje  o  stanie  systemu  i komputera.  Uzyskana  informacja  jest  potem  formatowana  i drukowana  na terminalu lub innym urządzeniu wyjściowym, względnie posyłana do pliku.

Tworzenie i zmienianie zawartości plików : Rozmaite odmiany edytorów służą do tworzenia i zmieniania zawartości plików przechowywanych na dyskach lub taśmach.

Ładowanie  i  wykonywanie programów: Po  przetłumaczeniu  programu  za pomocą  asemblera lub kompilatora należy go wprowadzić  do pamięci w celu  wykonania. System może dostarczać  programów  ładowania kodu o adresach absolutnych   i   kodu   przemieszczalnego,   konsolidatorów              oraz ładowaczy nakładek. Potrzebne są również systemy uruchomieniowe dla kodu w językach wyższego poziomu oraz w języku maszynowym.

Komunikacja: w tej  grupie  znajdują   się   programy  realizujące  mechanizmy tworzenia wirtualnych połączeń  między procesami, użytkownikami i różnymi systemami komputerowymi.

Prosta struktura systemu

Istnieje   wiele   komercyjnych   systemów   nie   mających   dobrze określonej struktury. Systemy  te  powstały  najczęściej  jako  małe,  proste  i  ograniczone systemy  operacyjne,  które następnie  rozrastały  się,  przekraczając  pierwotne założenia.

Struktura warstwowa

Modularyzację systemu można   uzyskać              na   wiele   sposobów,   ale najbardziej obiecujące jest podejście warstwowe, polegające na dzieleniu  systemu operacyjnego na warstwy (poziomy), przy czym każda następna warstwa jest zbudowana powyżej niższych warstw. Najniższą  warstwę(warstwę 0) stanowi sprzęt; najwyższą (warstwąN) jest  interfejs  z użytkownikiem.

Warstwa systemu operacyjnego jest implementacją abstrakcyjnego obiektu,  wyizolowanym zbiorem danych  i  operacji,  które  mogą  danymi tymi  manipulować. Typową warstwę systemu operacyjnego - powiedzmy warstwę  M-   widać  na rys. Zawiera ona struktury danych i procedury, które mogą  być  wywołane z wyższych warstw. Natomiast warstwa  M może wywołać operacje  dotyczące niższych warstw.

Główną zaletą              podejścia warstwowego jest modularność. Warstwy są wybrane w ten sposób, że każda używa   funkcji    (operacji)    i korzysta   z   usług   tylko   niżej położonych  warstw. To podejście upraszcza wyszukiwanie   błędów i weryfikację systemu.

Maszyny wirtualne

Stosując  planowanie  przydziału  procesora              i technikę pamięci  wirtualnej, system operacyjny może tworzyć  złudzenie,  że  wiele procesów pracuje na własnych procesorach z własną (wirtualną) pamięcią. Dzięki koncepcji maszyny wirtualnej nie uzyskuje się żadnych dodatkowych funkcji, lecz tworzy jedynie interfejs identyczny z podstawowym sprzętem.  Każdy proces otrzymuje (wirtualną) kopię  komputera  będącego podstawą systemu .Największa    trudność związana z maszyną wirtualną  dotyczy systemów dyskowych. Rozwiązaniem jest zastosowanie dysków    wirtualnych, które są pod każdym względem identyczne  z fizycznymi z wyjątkiem rozmiaru. Tego rodzaju konstrukcji nadano   miano minidysków. Suma rozmiarów    wszystkich minidysków musi    być mniejsza    od              aktualnie dostępne wielkości fizycznej przestrzeni dyskowej.

Modele systemu:

(a)maszyna niewirtualna;

(b)maszyna wirtualna

Projektowanie systemu

Uproszczony  schemat postępowania przy projektowaniu systemu operacyjnego jest następujący:

Założenia projektowe Określenie  specyfikacji  systemu.  Na  najwyższym  poziomie  projekt systemu  będzie  w  dużym stopniu zależał od wyboru sprzętu i typu systemu czy  ma  to  być system  wsadowy,  z  podziałem  czasu,  dla jednego  użytkownika czy wielozadaniowy, rozproszony, pracujący w czasie  rzeczywistym czy też ogólnego przeznaczenia. Sformułowanie wymagań co do celu systemu  Można  je  zasadniczo podzielić na dwie grupy: cele użytkownika i cele systemu

Określenie mechanizmów i polityki

Mechanizmy określają, jak czegoś dokonać.   Natomiast   polityka

decyduje o tym, co ma być zrobione. Odseparowanie polityki od mechanizmu jest bardzo ważne ze względu na elastyczność. Zasady polityki zmieniają  się  zależnie od miejsca i czasu. W najgorszym przypadku każda zmiana polityki może pociągać konieczność zmiany leżącego u jej podłoża  mechanizmu.  O  wiele bardziej pożądany jest mechanizm ogólny. Zmiana polityki  wymaga wtedy co najwyżej przedefiniowania pewnych   parametrów   w systemie.

Projektowanie systemu

Implementacja systemu. Po zaprojektowaniu system operacyjny     trzeba zrealizować. Tradycyjnie systemy operacyjne pisano w  językach asemblerowych. Jednak zasada  ta  przestała  już obowiązywać.  Systemy  operacyjne można obecnie pisać w językach wyższego poziomu.

Generowanie systemu

Można zaprojektować i zrealizować system operacyjny wyłącznie dla jednej maszyny w jednej instalacji. Częściej jednak projektuje się  systemy operacyjne przeznaczone  do działania na pewnej  klasie  maszyn  w rozmaitych instalacjach ze zmienną konfiguracją urządzeń zewnętrznych. Proces konfiguracji nazywa  się niekiedy generowaniem systemu  W  skrajnym przypadku informacje  z  SYSGEN  mogą posłużyć do wprowadzenia  zmian  do  kopii  kodu źródłowego  systemu.  Program systemu operacyjnego musi zostać potem w całości skompilowany. W   bardziej   elastycznej metodzie opis systemu może spowodować utworzenie tablic i wybranie zawczasu  skompilowanych  modułów  z biblioteki.  Wygenerowanie systemu nastąpi w wyniku skonsolidowania tych modułów. Na przeciwnym biegunie leży możliwość skonstruowania systemu całkowicie sterowanego tablicami. System zawiera zawsze  cały kod, a  wyborów dokonuje się  nie podczas kompilacji lub konsolidacji, lecz w czasie wykonania.

 

 

...
Zgłoś jeśli naruszono regulamin