Systemy operacyjne cz.1





System komputerowy


• sprzęt
• system operacyjny
• programy użytkowe
• użytkownicy
• procesor (central processing unit – CPU)
• pamięć
• urządzenia WE-WY
• kompilatory
• systemy baz danych
• programy biurowe
• programy graficzne
• gry
• ...

Elementy systemu komputerowego



1.Kompilator Asembler Edytor tekstu ...
Baza danych Gra
2.Programy użytkowe
3.System operacyjny
4.Sprzęt

System operacyjny – funkcje


• „rząd”
• „dystrybutor zasobów”
• program sterujący

SO stwarza możliwość właściwego użycia zasobów komputerowych – tworzy środowisko dla innych programów. Sam nie wykonuje żadnej użytecznej funkcji.

SO przydziela zasoby (czas procesora, obszar w pamięci operacyjnej lub/i na dysku, we-wy) programom i użytkownikom gdy jest to konieczne do wykonania określonego zadania. Kieruje się przy tym wydajnością i bezawaryjnością całego systemu (konflikty).

SO steruje we-wy i programami użytkowymi. Zapobiega błędom i niewłaściwemu użyciu komputera.

System operacyjny – co wchodzi w skład ?


SO to program który uruchamia się w SK jako pierwszy i działa nieustannie (jądro). Wszystkie inne programy należą do grupy programów użytkowych. Wszystko co dostajemy kupując SO jest SO.
Definicja nieścisła
– oprogramowanie „gratis”.

System operacyjny – cel ?


Założenie – łatwiej korzysta się z SK z SO niż bez SO.
(program1=SO1,
program2=SO2,
...)
Wygodne środowisko pracy dla Efektywne
działanie SK
użytkownika
SK bez dobrego SO nie jest w stanie pracować z maksymalną wydajnością dla której został zaprojektowany. Problem drogich SK ze słabym SO.
Często sprzeczne cele!

Proste systemy wsadowe


• Użytkownik: przygotowanie zadania – program, dane, informacje sterujące (karty)
• Operator: grupowanie zadań i wykonanie.
• Wydrukowanie wyników bądź obrazu pamięci

Proste systemy wsadowe –cechy


• Brak nadzoru ze strony użytkownika nad wykonywanym programem.
• Czas obiegu zadania – opóźnienie pomiędzy przekazaniem zadania a wynikami (czas obliczeń, opóźnienie rozpoczęcia obliczeń).

Proste systemy wsadowe– pamięć operacyjna


-SO
-Obszar programów Użytkowych


SO rezydował w PO na stałe. Podstawowe zadanie SO – przekazywanie sterowania kolejnym programom użytkowym

Proste systemy wsadowe – przestoje


Różnica pomiędzy prędkością wykonywanych obliczeń a prędkością wykonywania operacji we-wy. Przykład CPU: 1000 operacji/s czytnik kart: 20 kart/s

Proste systemy wsadowe – system dyskowy


Simultaneous Peripheral Operation on-line = spool jednoczesna , bezpośrednia praca
urządzeń

Wieloprogramowe systemy wsadowe


Pula zadań (job pool) to zadania, które wczytane z wyprzedzeniem na dysk czekają na wykonanie.
Planowanie zadań – SO wybiera zadania z puli do wczytania do pamięci (pula>pamięć)
Planowanie przydziału procesora – przydzielanie dla zadań gotowych

Systemy wsadowe – wady:


• Kłopotliwe przygotowywanie danych wejściowych
• Brak możliwości ingerowania w program w trakcie jego wykonywania
• Testowanie statyczne – na podstawie „zdjęcia” obrazu pamięci

Systemy z podziałem czasu


Wielozadaniowość (multitasking) - procesor wykonuje kolejno wiele zadań. Przełączanie następuje na tyle szybko, iż użytkownicy postrzegają wykonywanie ich jako równoczesne. Użytkownik może współdziałać z programem podczas jego wykonywania.
Interakcyjny SK – bezpośredni dialog użytkownik – system. Bezpośredni dostęp do systemu plików. Krótki czas odpowiedzi – stąd konieczność stosowania pamięci wirtualnej (możliwość wykonywania zadań nie mieszczących się w pamięci operacyjnej)

Systemy wieloprocesorowe


• Zwiększenie przepustowości. Dla n procesorów wzrost wydajności jest mniejszy niż n razy (wewnętrzna komunikacja, rywalizacja o zasoby współdzielone).
• Łagodna degradacja = systemy tolerujące awarie
• Oszczędność wynikająca ze współdzielenia urządzeń zewnętrznych, wspólne obudowy i zasilanie. Pewna liczba procesorów współpracuje ze sobą, mając dostęp do jednej szyny komputera, zegara, pamięci i we-wy.

Systemy wieloprocesorowe


1.wieloprzetwarzanie asymetryczne
Procesor główny – zarządzający i procesory podporządkowne – każdy wykonuje inne zadanie, przydzielone przez procesor główny.
Procesor komunikacyjny obsługuje transakcje we-wy z terminali, odciążając procesor główny.
2.wieloprzetwarzanie symetryczne
W każdym procesorze działa identyczna kopia systemu operacyjnego – komunikacja w miarę potrzeb.

Na każdym z N procesorów można uruchomić N procesów bez pogorszenia wydajności. Konieczność efektywnego rozdziału zadań na poszczególne procesory (nierównomierne obciążenie z powodu izolacji procesorów) – stąd dostęp do wspólnych struktur danych. wieloprzetwarzanie symetryczne

Systemy rozproszone


Systemy rozproszone NIE dzielą pamięci ani zegara. Każdy procesor ma własną pamięć lokalną. Komunikacja pomiędzy poszczególnymi procesorami następuje za pomocą linii komunikacyjnych: szybkich szyn danych, sieci, łącz telefonicznych.
Każdy z węzłów systemu rozproszonego może mieć inne rozmiary (moc obliczeniową) i przeznaczenie.

Systemy rozproszone – cechy:


• Podział zasobów – dostęp do odległych zasobów dyskowych, drukarek, czy też przetwarzania informacji w rozproszonych bazach danych (np. DNS).
• Wzrost wydajności:
• Podział zadania na zadania cząstkowe i rozdzielenie ich na poszczególne stanowiska
• Odciążenie jednego stanowiska przez przeniesienie części zadań na inne.
• Niezawodność – istnienie w systemie odpowiedniego zapasu sprzętu i danych umożliwia pracę systemu w przypadku uszkodzenia pewnej liczby węzłów (stanowisk).
• Komunikacja – wymiana danych pomiędzy terminalami, przesyłanie plików, poczta elektroniczna...

Systemy czasu rzeczywistego:


1.łagodne
Krytyczne zadanie jest wykonywane przed innymi i zachowuje prawa aż do swojego zakończenia. Multimedia, wirtualna rzeczywistość, projekty badawcze.
2. rygorystyczne
Wszystkie dane przechowywane są w pamięci nieulotnej ROM, brak pamięci wirtualnej, nie mogą być mieszane z systemami z podziałem czasu Odpowiedź musi nastąpić nie później niż określono Roboty, procesy technologiczne, sterowniki

Składowe systemu - zarządzanie procesami


Program jest elementem pasywnym, analogicznie do zawartości pliku przechowywanego na dysku. Proces jest jednostką aktywną , posiadającą licznik rozkazów, który określa kolejną instrukcję do wykonania.
Procesy wykonywane są sekwencyjnie, instrukcja po instrukcji, jedna w danej chwili. Jeden program może utworzyć wiele procesów.
System składa się z wielu procesów: systemowych – utworzonych przez SO użytkowych – utworzonych przez programy użytkowe.

Składowe systemu - zarządzanie procesami


• tworzenie i usuwanie procesów (użytkowych i systemowych)
• wstrzymywanie i wznawianie procesów
• wspomaganie synchronizacji procesów
• wspomaganie komunikacji procesów
• wspomaganie obsługi zakleszczeń.

Składowe systemu - zarządzanie pamięcią operacyjną


Pamięć operacyjna jest jedyną pamięcią, którą CPU może adresować bezpośrednio. Wszystkie operacje we-wy odbywają się za pośrednictwem pamięci.

• rejestrowanie aktualnie zajmowanych części pamięci wraz z ich „dzierżawcą”
• ustalanie, które procesy mają być załadowane do zwolnionych obszarów pamięci
• zarządzanie obszarami pamięci (zwalnianiem, przydzielanie) stosownie do potrzeb

Składowe systemu - zarządzanie plikami


System komputerowy dla ułatwienia użytkownikowi pracy tworzy jednolity, LOGICZNY obraz magazynowanych danych.

• tworzenie i kasowanie plików i katalogów
• udostępnianie podstawowych operacji na plikach i katalogach
• odwzorowywanie plików na obszary pamięci wirtualnej
• składowanie plików na trwałych nośnikach

Składowe systemu - zarządzanie systemem we-wy


• zarządzanie pamięcią (buforowanie, pamięć podręczna, spooling)
• jednolity interfejs do modułów sterujących urządzeń
• moduły sterujące do poszczególnych urządzeń sprzętowych
System operacyjny ma ukryć przed użytkownikiem szczegóły urządzeń we-wy.

Składowe systemu - zarządzanie pamięcią pomocniczą


• zarządzanie obszarami wolnymi
• przydzielanie pamięci
• planowanie przydziału obszarów pamięci dyskowej

Składowe systemu


• praca w sieci
• ochrona
• interpretacja poleceń

Usługi systemu operacyjnego


• wykonanie programu (załadowanie do pamięci, rozpoczęcie wykonywania, zakończenie – normalne lub obsługa błędu)
• operacje we-wy (dla bezp. i wydajności użytkownik nie może bezpośrednio nadzorować działania urządzenia – zawsze przez system – np. głowice, przewijanie)
• zarządzanie plikami (wszelkie operacje z wykorzystaniem nazw plików)
• wykrywanie błędów (sprzętowe – awarie, pamięci, CPU, zasilania, brak połączenia w sieci, brak papieru w drukarce, programowe – próba dostępu do niedozwolonego obszaru pamięci, przekroczenie przydzielonego czasu procesora i ich obsługa, dzielenie przez zero).
• komunikacja (pomiędzy procesami w tym samym komputerze lub w komputerach odległych poprzez sieć z wykorzystaniem wspólnej pamięci lub przesyłanych komunikatów)

Usługi systemu operacyjnego - optymalizujące działanie systemu


• Przydzielanie zasobów (czasu CPU, pamięci operacyjnej i pamięci plików, urządzeń we-wy) pomiędzy użytkowników i zadania.
• Rozliczanie (rachunki, statystyka – wiedza pozwalająca na optymalizację systemu)
• Ochrona (ochrona procesów działających współbieżnie, ochrona zasobów przed nieautoryzowanym dostępem, rejestrowanie)

Funkcje systemowe


tworzą interfejs pomiędzy wykonywanym programem a systemem operacyjnym.

• nadzorowanie procesów
• operacje na plikach
• operacje na urządzeniach
• utrzymywanie informacji
• komunikacja

Programy systemowe


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

• manipulowanie plikami
• informowanie o stanie systemu
• tworzenie i modyfikowanie zawartości plików
• ładowanie i wykonywanie programów
• komunikacja

Modele systemu – maszyny wirtualne


Sprzęt
Wykorzystując przydział czasu i pamięć wirtualną można tworzyć złudzenie, że wiele procesów pracuje na własnych procesorach i z własną (wirtualną pamięcią)
Użytkownicy otrzymują własne maszyny wirtualne – mogą w nich wykonać dowolny system operacyjny lub pakiet oprogramowania dostępny w maszynie bazowej.