SYSTEMY OPERACYJNE


Strona Główna

System DOS

Microsoft

UNIX

System NetWare

Data ostatniej modyfikacji : 2003-12-11 12:07

- Czym jest system operacyjny.
- Rodzaje systemów operacyjnych.
- Budowa systemów operacyjnych.

 

Czym jest system operacyjny ?

System operacyjny – SO (ang. Operating system - OS), jest programem, lub ściślej zbiorem programów, pośredniczącym w komunikacji pomiędzy sprzętem komputerowym, programami użytkowymi i użytkownikami.

System komputerowy składa się ze sprzętu (ang. hardware), systemu operacyjnego, programów użytkowych oraz użytkowników. System operacyjny powinien umożliwiać efektywne oraz wygodne wykorzystanie zasobów sprzętowych komputera przez użytkowników tego systemu.

Korzystanie ze sprzętu komputerowego bez korzystania z systemu operacyjnego byłoby bardzo utrudnione lub wręcz niemożliwe. Dlatego SO jest częścią każdego współczesnego systemu komputerowego.

początek

Rodzaje SO.

Systemy wsadowe.

Pierwsze systemy operacyjne były prostymi programami, najczęściej rezydującymi na stałe w pamięci komputera, których zadanie polegało na przekazywaniu sterowania do kolejnych zadań znajdujących się w kolejce do wykonania. Zadania do wykonania były najczęściej zapisywane na kartach perforowanych, które były przekazywane operatorowi systemu. Na wyjściu znajdowały się najczęściej drukarki lub perforatory kart i w ten sposób system wyświetlał wynik wykonania powierzonego mu zadania. Programiści nie mieli w ogóle dostępu do takiego systemu, zarówno wejście jak i wyjście systemu obsługiwane było wyłącznie poprzez operatora. W systemach tego typu brak jest jakiejkolwiek kontroli nad wykonywanym zadaniem w trakcie jego przetwarzania.

Systemy interaktywne.

Wcześniej omówione systemy nie pozwalały na sterowanie przebiegiem wykonania poszczególnych zadań. Omawiane tutaj systemy zwane też są systemami wielodostępnymi, pozwalają na wykonywanie przez użytkownika więcej niż jednego programu „jednocześnie” oraz nadzorowanie prac związanych z wykonywanym zadaniem. Taka możliwość pozwala na interakcję z programem, wprowadzanie potrzebnych danych, kontrolę błędów podczas wykonywania programów.

Systemy rozproszone.

Systemy operacyjne mogą nadzorować pojedynczy komputer, lub pewną grupę komputerów, wtedy nazywamy je systemami rozproszonymi. W odróżnieniu od systemów wieloprocesorowych, które dzielą jednie kilka procesory (pamięć oraz zegar pozostają wspólne), systemy rozproszone posiadają osobne procesory, osobną pamięć jak również zegar. Systemy takie komunikują się ze sobą za pośrednictwem sieci komunikacyjnych, do których zliczamy zarówno szyny przesyłania danych, jak również bardziej popularne sieci komputerowe, korzystający z różnego rodzaju mediów (linie telefoniczne, światłowody, sieci bezprzewodowe). Patrząc pod kątem użytkowania takich systemów, osoby z nich korzystając mogą być nieświadome korzystania z wielu maszyn sprzętowych, pracując identycznie jak z systemami centralnymi. Systemy rozproszone są w najprostszym ujęciu współczesnymi sieciowymi systemami operacyjnymi – SSO (ang. network operating system – NOS), korzystającymi z wielu komputerów (serwerów).

Systemy operacyjne mogą być kombinacją pewnych cech zarówno systemów wsadowych jak również interakcyjnych.

początek

Schemat budowy i zadania systemu operacyjnego.

System operacyjny jest programem, który dostarcza środowisko umożliwiające wykonywanie programów użytkowników. Aby środowisko to było stabilne i dobrze przygotowane do tego zadania, system operacyjny dzieli się na części, z których każda odpowiada za pewną część funkcjonowania systemu jako całości. Ponieważ pomiędzy częściami składowymi systemu dochodzi do częstych wymiany informacji muszą one posiadać dobrze zaprojektowane wejścia oraz wyjścia, aby móc komunikować się z pozostałymi składowymi systemu. Ponieważ elementy te tworzą system jako całość (a ten musi być niezawodny), muszą one być bardzo dobrze i staranie zdefiniowane tak, aby w trakcie zadania nie doprowadzić do niestabilności systemu.

 1. Zarządzanie procesami.

 2. Zarządzanie pamięcią operacyjną.

 3. Zarządzanie pamięcią zewnętrzną.

 4. Zarządzanie plikami.

 5. Zarządzanie systemem wejścia-wyjścia.

 6. Ochrona zasobów.

 7. System interpretacji poleceń.

Oczywiście nie wszystkie systemy mają taką samą strukturę, jednakże większość z nich, w większym lub mniejszym stopniu, posiada podobną budowę złożoną z elementów wymienionych powyżej.

W przypadku systemów rozproszonych, pracujących na więcej niż jednym komputerze, definiuje się jeszcze moduł odpowiedzialny za komunikację pomiędzy poszczególnymi komputerami należącymi do tego samego systemu.

Ad. 1. Zarządzanie procesami.

Pod pojęciem zarządzania procesami rozumiemy tworzenie, usuwanie, wstrzymywanie i wznawianie procesów. System operacyjny dostarczać również musi mechanizmy umożliwiające komunikację pomiędzy poszczególnymi procesami, jak również obsługę zakleszczeń (blokad).

Definicja procesu.

Proces – program w trakcie wykonywania.

Proces jest pojęciem aktywnym (w trakcie działania), natomiast program jest pojęciem pasywnym (zapis pewnych rozkazów na nośniku danych).

Wykonywanie procesu musi przebiegać sekwencyjnie, co oznacza, że w danym momencie na zamówienie procesu może być wykonany tylko jeden rozkaz kodu programu.

Proces może znajdować się w jednym z pięciu stanów działania:

 - nowy - to taki który został właśnie utworzony,

 - aktywny - to ten którego instrukcje są aktualnie przetwarzanie przez procesor,

 - oczekiwanie - proces oczekuje na wystąpienie jakiegoś zdarzenia np. ukończenie operacji wejścia-wyjścia (wpisanie danych z klawiatury, zakończenie odczytu pliku z dysku, zakończenie wydruku), lub oczekuje pewnych danych, które będą dostępne po zakończeniu działania innego procesu np. wynik obliczeń,

 - gotowy - proces który oczekuje na przydział czasu procesora,

 - zakończony - to taki którego działanie zakończyło się.

Ważne jest, aby pamiętać, że systemie jednoprocesorowym tylko jeden proces może być aktywny, natomiast wiele procesów może być w stanie oczekiwania lub gotowy.

W systemie jednoprocesorowym mechanizm wielozadaniowości (podział czasu procesora) uzyskuje się dzięki przełączaniu wykonywania procesów przez procesor. Przełączanie to następuje tak często, że użytkownik ma złudzenie pracy z kilkoma programami jednocześnie.

Aby maksymalnie wykorzystać czas pracy procesora, system operacyjny stara się tak zarządzać pracą procesów, aby w momencie kiedy aktywny proces (który może być tylko jeden w systemie jednoprocesorowym) musi oczekiwać na jakieś zdarzenie (np. operacje wyjścia-wejścia), przełącza się go w stan „oczekiwanie”, a aktywuje się inny proces z kolejki procesów oczekujących na przydział pracy procesora. W ten sposób nie marnuje się czasu pracy jednostki centralnej. Mechanizm ten jest podstawą wielozadaniowości i zwany jest wieloprogramowaniem.

powrót

Ad. 2. Zarządzanie pamięcią operacyjną.

Pamięć odgrywa główną rolę w działaniu współczesnych systemów komputerowych. Pamięć operacyjne jest tablicą słów lub bajtów, z których każdy ma przypisany konkretny adres. Pamięć operacyjne jest jedynym typem pamięci, który może być adresowany przez system bezpośrednio, wszystkie inne operacje (jak np. czytanie, czy zapis na dysk, wykonywanie rozkazów procesu) przebiegają z wykorzystaniem pamięci operacyjnej. Aby program był wykonany musi on zostać pobrany z dysku i zapisany do pamięci operacyjnej, dopiero wtedy możliwe jest uruchomienie i wykonanie rozkazów programu (procesu).

Główne zadania systemu operacyjnego dotyczące zarządzania pamięcią operacyjną to:

 - ewidencja zajętych obszarów pamięci, wraz z informacją który proces jest w posiadaniu tych obszarów,

 - decydowanie które procesy czy dane mają być załadowany do wolnych obszarów pamięci,

 - przydzielanie i zwalnianie obszarów pamięci stosownie do aktualnych potrzeb systemu komputerowego.

Ad. 3. Zarządzanie pamięcią zewnętrzną.

Pamięć zewnętrzna jest głównym źródłem magazynowania danych dla współczesnych systemów komputerowych. Ponieważ pamięć operacyjna jest z reguły bardzo ograniczona (pojemnościowo), dlatego do składowania danych używa się pamięci zewnętrznych. Są one z reguły dużo wolniejsze niż pamięć operacyjna, jednakże mają tę zaletę, że w przeciwności do pamięci operacyjnej dane w niej zapisane nie „giną” po wyłączeniu/zaniku napięcia. (Istnieją tzw. programowalne pamięci stałe FLASH, które mogą przechowywać dane nawet po wyłączeniu zasilania, są jednak stosunkowo drogie i mało pojemne, stosuje się je przede wszystkim do zapisywania systemów wejścia/wyjścia, czyli BIOS-ów). Główni obecni przedstawiciele pamięci zewnętrznych to: dyskietki magnetyczne (dyski twarde), dyski optyczne (cd-romy),  taśmy (streamery). Dawniej były to na przykład karty perforowane.

Główne zadania systemu operacyjnego odnośnie zarządzania pamięcią zewnętrzną to:

 - utrzymywanie informacja na temat obszarów wolnych w dostępnej pamięci zewnętrznej,

 - przydzielanie i zwalnianie obszarów tej pamięci,

 - kontrola stanu funkcjonowania pamięci zewnętrznej (błędy zapisu/odczytu).

powrót

Ad. 4. Zarządzanie plikami.

Dla wygody użytkownika, system operacyjny realizuje abstrakcyjny model plików, tworząc, niezależnie od typu pamięci zewnętrznej, jednolity systemów plików i katalogów do przechowywanie danych. Każdy z nośników posiada specyficzne cechy (niektóre również różną strukturę), więc bezpośredni dostęp do tych urządzeń byłby utrudniony. Dlatego system operacyjny przejmuje nad nimi kontrolę i komunikuje się z tymi urządzeniami przy pomocy sterowników – z jednej strony, z drugiej udostępniając użytkownikom strukturę plików i katalogów.

Najważniejsze zadania systemu operacyjnego w związku z zarządzaniem plikami to:

 - tworzenie i usuwanie plików i katalogów,

 - umożliwianie wykonywania podstawowych operacji na plikach i katalogach (edycja, kopiowanie, usuwanie, tworzenie, archiwizacja, pakowanie),

 - odwzorowywanie plików na obszarze pamięci zewnętrznej,

 - składowanie (zapis) plików na nośnikach pamięci zewnętrznej.

powrót

Ad. 5. Zarządzanie systemem wejścia-wyjścia.

Każdy system komputerowy korzysta z różnorodnych urządzeń zewnętrznych, które generalnie można podzielić na trzy grupy:

 - urządzenia pamięci - dyski, taśmy, cd-romy, dyskietki itp.,

 - urządzenia interfejsu - monitor, klawiatura, myszka itp.,

 - urządzenia przesyłania danych - modem, karta sieciowa itp.

Większość współczesnych systemów operacyjnych tworzy w jądrze podsystem wejścia-wyjścia, które oddziela to złożone zagadnienie od reszty systemu operacyjnego. Ze względy na różnorodność sprzętowych modułów wejścia wyjścia, zaobserwować można podejście wykorzystania modułów sterujących przygotowanych przez producentów sprzętu dla konkretnego systemu operacyjnego (drivery, sterowniki, device controllers), które odpowiadają za komunikację systemu operacyjnego z urządzeniami wejścia-wyjścia. Udostępniają one na potrzeby systemu operacje możliwe do przeprowadzenia na konkretnym urządzeniu, np. dla drukarek mogą to być: wysunięcie papieru, przewinięcie strony papieru (dla papieru składanki), pozycjonowanie głowicy, druk w kolorach itp.

Podstawowe elementy sprzętowe, które również zaliczamy do urządzeń wejścia-wyjścia, a które występują w każdym systemie komputerowych do porty i szyny danych.

powrót

Ad. 6. Ochrona zasobów.

Jeżeli system operacyjny jest przewidziany do pracy z wieloma użytkownikami (system sieciowy), wtedy zachodzi konieczność by chronił on poszczególne elementy pracy jednego użytkownika, przed skutkami pracy innych. W skład takiej ochrony oprócz oczywistej ochrony i nadzorowania dostępu do plików i katalogów (danych), wchodzi również zagadnienie ochrony procesów uruchomionych przez poszczególnych użytkowników systemu. System chroni również dostęp do pamięci operacyjnej, w której przechowywane są dane wielu użytkowników systemu.

Ogólnie mówiąc ochrona jest mechanizmem nadzorowania dostępu programów, procesów i użytkowników do zasobów zdefiniowanych przez system komputerowy.

powrót

Ad. 7. System interpretacji poleceń.

System interpretacji poleceń jest jednym z najważniejszych modułów z jakich składa się system operacyjny. Jest to interfejs pomiędzy użytkownikiem a systemem operacyjnym. Niektóre systemu zawierają interpreter poleceń w jądrze systemu, inne (jak MS-DOS czy UNIX) używają do tego celu specjalnego programu wykonywanego w trakcie startu systemu, startu zadania, lub jak to ma miejsce w systemach UNIX w trakcie rejestracji użytkownika w systemie. Program ten bywa nazywany interpreterem wiersza poleceń lub powłoką (shell).

W systemie DOS taką funkcję pełni COMMAND.COM. Systemu Windows czy Macintosh posiadają graficzny interpreter poleceń w którym polecenia można wydawać za pomocą myszki lub też klawiatury (klikając na ikonach lub wybierając odpowiedni wpis z MENU).

Podstawowym zadaniem interpretatora poleceń jest umożliwienie użytkownikowi wydawanie poleceń (zwanych instrukcjami sterującymi) systemowi operacyjnemu (z reguły są to polecenia wewnętrzne systemu lub takie które pozwalają uruchomić polecenia zewnętrzne czyli programy).

początek