Systemy operacyjne w czasie swego istnienia przeszły znaczące zmiany. Pierwsze z nich były bardzo proste i mało wydajne. Dzisiejsze systemy operacyjne są systemami o dużym stopniu skomplikowania, zajmują nieraz wiele megabajtów pamięci, a ich wydajność jest niewyobrażalna w porównaniu z możliwościami ich odpowiedników sprzed lat.

 

Systemy wsadowe były jednymi z pierwszych systemów operacyjnych. Ich konstrukcja była bardzo prosta, a co za tym idzie również i ich możliwości.

Były one instalowane w pierwszych komputerach, w których urządzeniami wejściowymi były czytniki kart perforowanych. Użytkownik takiego systemu przygotowywał najpierw program i zapisywał go na kartach. Tak przygotowane dane trafiały do operatora komputera, który grupował podobne zadania w tak zwane wsady (ang. batch) i wprowadzał do komputera. Po przetworzeniu przez jednostkę centralną wyniki były wyprowadzane na drukarkę wierszową.

Zasadniczą cechą wsadowego systemu operacyjnego było:

Niskie wykorzystanie jednostki centralnej wynikało przede wszystkim z przestojów spowodowanych niską prędkością urządzeń wejścia wyjścia.

 

Aby podnieść wydajność takich systemów wprowadzono mechanizm, któremu nadano nazwę spooling.

Spooling wykorzystuje technologie dyskowe i polega na buforowaniu danych na dyskach przed i po ich wprowadzeniu do pamięci operacyjnej. Umożliwiało to znaczne zwiększenie wydajności systemu, gdyż procesor miał teraz więcej roboty.

 

Rysunek 6. Mechanizm spoolingu

Spooling umożliwiał jednoczesne przetwarzanie danych przez jednostkę centralną i pracę urządzeń wejścia-wyjścia. Mechanizm ten jest wykorzystywany do dziś między innymi przy przetwarzaniu danych w instalacjach zdalnych (np. przy komunikacji ze zdalną drukarką).

Zastosowanie buforowania danych na dysku dało systemowi nowe możliwości. Nie musiał on już teraz wykonywać zadań w kolejności, jakiej zostały one wprowadzone do systemu. Otrzymał prawo wyboru!!

System operacyjny dysponując magazynem zadań (w postaci dysku), do którego miał łatwy dostęp rozpoczął pracę koncepcyjną polegającą na planowaniu zadań. Wybierał on zadania do wykonania tak, aby zmaksymalizować wydajność systemu.

Odbywa się to mniej więcej tak.

Wybrane zadania są umieszczane w pamięci operacyjnej.

Jednostka centralna rozpoczyna pracę nad jednym zadaniem. Po pewnym czasie może okazać się, że wykonywane zadanie zażądało dostępu do dysku lub czytnika taśm. W systemie jednozadaniowym jednostka centralna musiała czekać na dostęp do dysku lub zamontowanie czytnika. W systemie wielozadaniowym system operacyjny może odłożyć takie zadanie i pobrać do wykonania następne, znajdujące się w pamięci operacyjnej. Tego typu zachowanie zwiększa oczywiście wydajność systemu, ale wymusza konieczność uporania się z wieloma trudnymi problemami takimi jak: w jaki sposób wybierać zadania do wykonania, jak zapewnić ochronę danych umieszczonych w pamięci, w jaki sposób i kiedy współpracować z pamięcią dyskową.

 

Systemy wieloprogramowe nie rozwiązały wszystkich problemów. W dalszym ciągu użytkownik nie miał możliwości ingerencji w wykonywany program w trakcie jego trwania. Musiał więc przewidzieć możliwe zachowania programu przed jego uruchomieniem. Trudną sprawą było też testowanie programów, gdyż nie można było zmienić jego przebiegu obserwując jego zachowanie.

Systemy te, zwane też systemami wielozadaniowymi (ang. multitasking), dzielą czas procesora między zadania umieszczone w pamięci. Jednostka centralna wykonuje więc jedno zadanie przez pewien czas, a następnie odkłada je i zabiera się za następne. Procesor przełącza się więc nieustannie między zadaniami. Te przełączenia występują na tyle szybko, że użytkownik może pracować z każdym z wykonywanych programów nie zauważając tych przełączeń.

Dzięki temu użytkownik systemu komputerowego ma możliwość interakcji z system. Może też wydawać polecenia programowi i oglądać w trakcie jego wykonywania wyniki działania programu.

 

Aby w sposób wydajny wykorzystywać mechanizm wielozadaniowości system operacyjny musi charakteryzować się takimi cechami jak:

Systemy równoległe są przystosowane do obsługi systemów komputerowych wyposażonych w  więcej niż jeden procesor. Procesory te współpracują ze sobą wykorzystując wspólną szynę danych, zegar, często pamięć i urządzenia wejścia-wyjścia.

Dzięki zastosowaniu systemów wyposażonych w kilka procesorów można zwiekszyć wydajność całego systemu, zmniejszyć jego koszty poprzez wykorzystanie wspólnych urządzeń zewnętrznych, obudów, zasilaczy itp. oraz podnieść niezawodność dzięki dublowaniu zadań.

 Systemy rozproszone przeznaczone są do obsługi systemów, w których wykonywane zadania są rozdzielone między kilka procesorów. W odróżnieniu jednak od systemów równoległych, procesory te nie dzielą wspólnej szyny danych ani zegara. Procesory komunikują się ze sobą za pomocą szybkiej szyny danych, łączy telefonicznych lub szybkich łączy dalekiego zasięgu.

Dzięki zastosowaniu systemów rozproszonych można łączyć ze sobą jednostki słabsze i lepsze, wykorzystywać drukarki zdalne, stosować rozproszone bazy danych itp. Kolejną zaletą systemów rozproszonych jest możliwość przyspieszenia obliczeń. Dzieje się tak jeśli dużą liczbę obliczeń można podzielić na kilka współbieżnych procesów. Użytkownik może wykonywać nawet skomplikowane obliczenia siedząc przy mniej wydajnej maszynie, jeśli część zadań przejmie procesor z bardzo silnej i wydajnej jednostki zdalnej.

Systemy operacyjne czasu rzeczywistego stanowią odrębną grupę systemów operacyjnych. Są to systemy wysoce specjalizowane, które muszą przede wszystkim dbać o osiągnięcie bardzo krótkiego czasu reakcji systemu na bodźce przychodzące ze środowiska.

Systemy czasu rzeczywistego wykorzystywane są w takich urządzeniach jak systemach nadzorujących stan pacjenta, systemach sterowania pociskami, w systemach sterowania robotami itp.

Ze względu na rygorystyczne wymagania czasowe muszą one być lepiej dopasowane do sprzętu, na którym działają niż pozostałe systemy, które często mogą pracować na różnych platformach sprzętowych.

 

NASTĘPNA