SYSTEMY OPERACYJNE
Wykład 1
0.1. CEL WYKŁADU
0.2. METODA NAUCZANIA
0.3. ZALICZENIE WYKŁADU
0.4. TREŚĆ WYKŁADU
- procesy i wątki,
- organizacja systemu operacyjnego,
- zarządzanie urządzeniami WE-WY,
- szeregowanie procesów I zadań,
- synchronizacja procesów,
- zakleszczenia,
- zarządzania pamięcią,
- zarządzanie plikami,
- ochrona I bezpieczeństwo,
- sieci,
- systemy UNIX, Linux, NT, inne.
0.5. ZALECANA LITERATURA
W. Stallings, Operating Systems, Prentice Hall, 1995.
J. Błażewicz, W. Cellary, R. Słowinski, J. Weglarz, Badania operacyjne dla informatyków, WNT, 1983.
E. Quigley, UNIX Shells by Example, Prentice Hall PTR, 1997.
D. Gilly, UNIX in a Nutshell, O?Reilly, 1992.
1. WPROWADZENIE
- nie ma jednej, w pełni adekwatnej definicji SO.
- SO - program, który działa jako pośrednik między użytkownikami komputera a sprzętem komputerowym.
- zapewnić wykonanie się programu użytkownika oraz uczynić łatwym rozwiązywanie problemów z tym związanych.
- zapewnić, aby użytkowanie komputera było wygodne dla użytkownika.
- zapewnić efektywne użytkowanie sprzętu komputerowego (hardware).
Rys 1. Abstrakcyjne wyobrażenie elementów systemu komputerowego.
- System komputerowy.
- w jego skład wchodzą:
- sprzęt komputerowy,
- system operacyjny,
- programy użytkowe,
- użytkownicy.
Komponenty systemu komputerowego:
- Sprzęt komputerowy zawiera podstawowe zasoby obliczeniowe systemu (procesor (CPU), pamięć, urządzenia WE / WY),
- System operacyjny - kontroluje i koordynuje uzytkowanie zasobów systemu komputerowego przez różne programy oraz różnych użytkowników.
- Programy użytkowe - określają sposób użycia zasobów systemu w celu rozwiązania określonych problemów (kompilatory, systemy baz danych, gry komputerowe, programy handlowe).
- Użytkownicy (ludzie, inne komputery).
Definicje systemu operacyjnego:
- alokator zasobów (czasu procesora, obszaru pamięci operacyjnej lub pamięci plików, urządzeń We / Wy) - zarządza zasobami (przydziela je programom i użytkownikom) mając na uwadze wydajność i harmonię działania systemu komputerowego.
- program sterujący - nadzoruje wykonanie programu użytkownika oraz użytkowanie użądzeń We / Wy.
- jądro - to ten program, ta część SO, która stale rezyduje w pamięci operacyjnej i nieustannie działa.
Rys historyczny rozwoju komputerów i systemów operacyjnych.
- Wczesne systemy - początek lat 50-tych,
- struktura,
- duże maszyny uruchamiane z konsoli,
- pojedynczy użytkownik systemu,
- programista / użytkownik jako operatorzy,
- taśma perforowana / karty perforowane.
- wczesne oprogramowanie,
- asemblery, kompilatory, programy ładujące,
- biblioteki wspólnych procedur / funkcji,
- sterowniki urządzeń We / Wy,
- nieefektywne wykorzystanie drogich zasobów,
- mały stopień wykorzystania czasu procesora,
- stosunkowo długi czas niezbędny aby przygotować system do uruchomienia,
- proste systemy wsadowe.
Rys 2. Wygląd pamięci operacyjnej prostego systemu wsadowego.
- operator systemu komputerowego
- użytkownik =/= operator
- redukcja czasu przygotowania zadań w celu ich uruchomienia poprzez przygotowanie wsadu >>> zbioru zadań o podobnych wymaganiach
- karty sterujące oddzielające poszczególne zadania, dane, informacje o żądanych zasobach
- automatyczne przejście systemu od wykonania danego zadania z wsadu, do następnego
- pierwsze proste systemy operacyjne: rezydentne monitory
- wsadowy system operacyjny (rezydentny monitor) posiada następujące składowe:
- interpreter kart sterujących: odpowiedzialny za czytanie i wykonywanie instrukcji znajdujących się na kartach,
- program ładujący: ładuje programy i systemy aplikacyjne do pamięci,
- sterowniki urządzeń WE / WY,
Rys 3. Spooling
- problem: niska wydajność systemu - CPU o dużej szybkości musiał czekać na wykonanie powolnych operacji WE / WY
- rozwiązanie : spooling - jednoczesna, bezpośrednia praca urządzeń (dzięki technologii dyskowej) wykonujących pulę zadań wg. zasady pierwszy przyszedł - pierwszy obsłużony
- spooling umożliwia nakładanie w czasie operacji We / Wy jednego zadania na obliczanie innych zadań znajdujących się w wsadzie
- wieloprogramowe systemy wsadowe (multiprogramming)
- jeżeli istnieje pula zadań to możliwe jest planowanie wykonywanych zadań (szeregowanie zadań),
- najważniejszy aspekt planowania - wieloprogramowanie w celu nakładania operacji We / Wy
- wieloprogramowany SO (dość skomplikowany) musi decydować za użytkownika:
- które z zadań znajdujących się w pamięci masowej wprowadzić do pamięci operacyjnej (planowanie zadań),
- jeśli kilka zadań jest gotowych w pamięci, to które wybrać do przetworzenia,
- jak zarządzać pamięcią,
Rys 4. Wygląd pamięci w systemie wieloprogramowym.
- systemy z podziałem czasu (time - sharing system)
- podział czasu (wielozadaniowość): procesor wykonuje na przemian wiele zadań: wielu użytkowników dzieli równocześnie jeden komputer,
- przełączenie wykonywanych zadań następuje bardzo szybko
- interakcyjny system komputerowy umożliwia bezpośredni dialog użytkownika z systemem: - użytkownik wydaje instrukcję dla SO lub programu (klawiatura) i otrzymuje natychmiast odpowiedź (monitor),
- w tym celu potrzebny jest bezpośredni dostęp do systemu plików:
- plik - zestaw powiązanych informacji zdefiniowanych przez twórcę (program, dane),
- pliki są zorganizowane w logicznie niepodzielne grupy, czyli katalogi,
- SO urzeczywistnia abstrakcją koncepcję pliku, zarządzając takimi urządzeniami masowej pamięci jak taśmy i dyski oraz nadzorując nad tym kto i jak z nich korzysta.
- zadania interakcyjne składają się z wielu na ogół krótkich zadań nazywanych procesami,
- ważną cechą systemu jest jego czas odpowiedzi,
- SO-e zbudowane jako systemy wsadowe (OS|360, IBM) poszerzono o możliwości korzystania z podziału czasu (Time Sharing Option - TSO)
- SO z podziałem czasu są bardziej złożone niż wieloprogramowane SO.
- konieczność zarządzania pamięcią i ochrony, w tym zarządzania pamięcią wirtualną (zadanie, jego części, mogą być na przemian przerzucane między dyskiem i pamięcią główną),
- zarządzanie dyskami i systemem plików,
- umożliwia działanie współbieżne procesów (kilka procesów na raz obsługiwana przez CPU); wymaga to przemyślanych metod przydziału procesora,
- aby zagwarantować porządek wykonywanych zadań potrzebne są mechanizmy synchronizacji i komunikacji procesów,
- system musi zapewnić, że zadania nie mogą się zakleszczać).
- systemy operacyjne dla komputerów osobistych (personal computer systems),
- komputery osobiste - przeznaczone dla indywidualnych użytkowników,
- urządzenia We / Wy - klawiatura, myszka, monitor ekranowy, małe drukarki,
- nacisk na wygodę użytkownika i szybkość kontaktów z systemem,
- PC-ty pracują pod nadzorem systemu Microsoft Windows (wcześniej MS-DOS), IBM - OS/2, lub Apple Macintosh,
- rozwiązania opracowane dla dużych systemów (mainframe) są przenoszone na SO dla PC-tów (np. konieczność ochrony przed wirusami PC-tów dołączanych do sieci komputerowych).
Rys 5. Wędrówka cech i koncepcji systemów operacyjnych
- dobrym przykładem przenoszenia opracowanych koncepcji jest system MULTICS (Massachusetts Institute of Technology (MIT)) -----> UNIX (Bell Laboratories) -----> Microsoft Windows NT, IBM OS/2, Macintosh Operating System,
- inna droga niż PC: osobiste stacje robocze (SUN, HP/Apollo, IBM RS/6000) ---> wielkie komputery osobiste (uniwersytety, duże firmy),
- powoli zanika linia podziału między PC a komputerami osobistymi,
Rys 6. Current Operating Sysytems.
systemy wieloprocesorowe (parallel systems)
- większa niż jeden liczba procesorów ściśle współpracujących ze sobą
- ściśle powiązane systemy (trightly coupled systems): procesory dzielą wspólną na ogół pamięć, posiadają wspólny zegar,
- zalety systemów równoległych:
- zwiększenie wydajności (szybkości): uzyskany zysk (współczynnik przyśpieszenia jest jednak mniejszy niż n; n - liczba procesorów),
- ekonomiczność: wspólne użytkowanie urządzeń zewnętrznych,
- niezawodność: awaria np. jednego procesora nie zatrzymuje systemu, tylko go spowalnia (łagodna degradacja)
- wieloprzetwarzanie symetryczne
- na każdym procesorze działa identyczna kopia SO,
- te kopie komunikują się w zależności od potrzeb,
- wiele procesów może być przetwarzane jednocześnie,
- wieloprzetwarzanie asymetryczne
- system zawiaduje główny procesor,
- główny procesor (master) przydziela pozostałym procesorom (slaves) specyficzne zadania do wykonania,
- stosowane w bardzo wielkich systemach.
- systemy rozproszone (distributed systems)
- systemy w których każdy procesor ma własną lokalną pamięć oraz zegar
- procesy komunikują się poprzez różne linie komunikacyjne (szyny danych, linie telefoniczne)
- takie systemy nazywane są luźno powiązanymi (loosley coupled) lub rozproszonymi (distributed systems)
- zalety systemu rozproszonego
- podział zasobów (dysków, drukarki laserowej, itp.)
- przyspieszenie obliczeń
- niezawodność
- komunikacja (np. poczta elektroniczna)
- systemy czasy rzeczywistego (real - time systems)
- specjalizowane SO-e stosowane tam gdzie istnieją surowe wymagania na czas wykonania operacji (np. nadzorowanie pracy reaktora atomowego, obrazowanie badań medycznych, sterowanie procesami przemysłowymi, sterowanie eksperymentami naukowymi, itp.)
- rygorystyczny system czasu rzeczywistego gwarantuje terminowe wypełnienie terminowych zadań
- pamięć pomocnicza na ogół nie występuje, dane są przechowywane w pamięci o krótkim czasie dostępu, lub pamięci typu ROM,
- konflikt z systemami z podziałem czasu,
- żaden z uniwersalnych SO nie umożliwia działania w czasie rzeczywisty
- łagodny system czasu rzeczywistego
- ograniczone zastosowanie w sterowaniu procesów produkcyjnych, robotyce,
- użyteczne w zastosowaniach (techniki multimedialne, rzeczywistość wirtualna, badanie dna morza, itp.) wymagających zaawansowanych własności systemów operacyjnych, takich jak UNIX.
<<< THE END >>>