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.