Systemy operacyjne

Transkrypt

Systemy operacyjne
Systemy operacyjne
dr inż. Jerzy Sas
e-mail: [email protected]
Plan wykładu
1. Wprowadzenie - podstawowe pojęcia, rys historyczny, architektura systemu
komputerowego, architektura systemu operacyjnego, współpraca z elementami
sprzętowymi
2. Organizacja i zarządzanie pamięcią.
3. Zarządzanie procesami - synchronizacja i komunikacja między procesami.
4. System plików - struktura, katalogi, organizacja logiczna, organizacja fizyczna, system
uprawnień, operacje w systemie plików.
5. GUI i sterowanie obsługą zdarzeń na przykładzie SO Windows
6. Wspomaganie przetwarzania rozproszonego, komunikacja z wykorzystaniem gniazd,
rozproszone systemy plików, zdalne wywoływanie procedur.
1
Literatura:
• Stallings W. Systemy operacyjne. Struktura i zasady budowy, PWN 2006
• Silberschatz A., Peterson J.L., Galvin P.B., Podstawy systemów operacyjnych, WNT
Warszawa, 1998, 2001, 2003
• Biernat J., Architektura komputerów, Oficyna Wydawnicza Politechniki Wrocławskiej,
Wrocław, 1999
• Skorupski A., Podstawy budowy i działania komputerów, WKŁ, Warszawa, 1997
• Bach M.J., Budowa systemu operacyjnego UNIX, WNT, Warszawa, 1995
• Lister A.M., Eager R.D., Wprowadzenie do systemów operacyjnych,WNT Warszawa
1994
• Madeja L., Ćwiczenia z systemu Linux. Podstawy obsługi systemu, Mikom, Warszawa
1999
• Rochkin M.J., Programowanie w systemie UNIX dla zaawansowanych, WNT,
Warszawa 1993
2
Model warstwowy komputera
Aplikacje
Software
np. Pascal, Modula, Java, C++, Fortran
Języki wysokiego
poziomu
Specyficzny dla danego CPU
Asembler
System operacyjny
Język wewnętrzny
Hardware
np. DOS, Unix, Windows (95..)
Kod zero-jedynkowy
Układy logiczne
Układy elektroniczne
Organizacja logiczna
Realizacja fizyczna
3
System komputerowy = sprzęt + oprogramowanie + dane
System operacyjny – program, który działa pomiędzy sprzętem komputerowym a
użytkownikiem komputera (osobą, innym komputerem, programem wykonywanym w
komputerze).
Cel:
• wygoda użytkowania
• wydajne wykorzystanie
programów).
zasobów
systemu
(sprzętu,
nośników
danych,
innych
Zasoby systemu komputerowego:
• procesor (czas procesora),
• pamięć (obszar w pamięci),
• urządzenia zewnętrzne,
• urządzenia pamięci masowej (obszary w pamięci),
• urządzenia we-wy (konsole, klawiatury, terminale, drukarki, skanery itp.)
System komputerowy tworzy środowisko do wykonywania programów użytkowych
4
System operacyjny jako dystrybutor zasobów:
• rozwiązywanie konfliktów dostępu do zasobów,
• nadzorowanie i sterowanie dołączonych do systemu komputerowego urządzeń
System operacyjny jako dostawca usług dla programów użytkowych:
• uniezależnienie od własności dołączonego sprzętu,
• wykonywanie operacji związanych ze sprzętem w imieniu programów użytkowych,
• dostarczenie mechanizmów współpracy (komunikacji i synchronizacji) wykonywanych
równocześnie programów użytkowych.
Elementy współczesnego systemu operacyjnego:
• jądro systemu operacyjnego – ta część oprogramowania SO, która działa w sterowanym
systemie stale (część rezydentna),
• programy systemowe – programy realizujące funkcje systemu operacyjnego, ale
uruchamiane tylko czasowo do wykonania określonego zadania (np. programy obsługi
rzadko występujących zdarzeń jak obsługa awaryjnego zamykania systemu po sygnale
od UPS, program montowania/odmontowania wymiennego zasobu, programy obsługi
zdalnych terminali itp.)
• programy komunikacji z użytkownikiem:
o (monitory – programy sterowania wykonywaniem programów wsadowych),
o interpretery komend,
o programy obsługi środowiska graficznego (tzw. GUI – Graphical User Interface)
5
Przykłady systemów (mikro)komputerowych wyposażonych w SO:
• mikroprocesor jednoukładowy sterujący pracą telefonu komórkowego,
• mikroprocesorowy układ sterowania pracą nowoczesnego odbiornika telewizyjnego,
• konsola do gier telewizyjnych,
• komputer sterujący pracą centrali telefonicznej,
• router sprzętowy
Przykłady systemów komputerowych, w których SO nie jest konieczny:
• mikroprocesor sterujący pracą silnika spalinowego,
• mikroprocesorowy układ sterujący pralką automatyczną,
• mikroprocesorowy zamek szyfrowy
Historia rozwoju systemów operacyjnych:
• systemy o charakterze bezpośrednim,
• proste systemy wsadowe,
• wieloprogramowane systemy wsadowe,
• systemy z podziałem czasu,
• systemy równoległe,
• systemy dla komputerów osobistych,
• systemy rozproszone,
• systemy czasu rzeczywistego
• systemy kieszonkowe
6
7
Bloki funkcjonalne
ALU
I/O
Otoczenie
M
CC
DMA
CPU
Memory
Input/Output
Direct Memory Access
Arithmetic-Logic Unit (Datapath)
Central Control
Central Processing Unit
8
Cykl rozkazowy
Pobranie
(Fetch)
Wykonanie
(Execution)
Wykonanie rozkazu:
• dekodowanie,
• wykonanie operacji,
• przesłanie wyniku (do rejestru lub pamięci operacyjnej,
9
Stany procesora
Restart
Zatrzymanie
cyklu
Pobranie
rozkazu
Wykonanie
rozkazu
Rozkaz
„Halt”
Sygnał
przerwania
Zapamiętanie
stanu programu
10
Bloki funkcjonalne procesora
Licznik rozkazów (PC)
Rejestr rozkazów (IR)
Pamięć
operacyjna
(M)
Blok sterowania
Sygnały sterujące
Znaczniki
Rejestry procesora
Jednostka
arytmetyczno-logiczna (ALU)
Blok operacyjny
Procesor (CPU)
11
Przerwania
• SO wykonuje swoje funkcje w reakcji na sygnały o zaistnieniu sytuacji
wymagających interwencji SO.
• Sygnały te mogą pochodzić od wykonywanych programów lub od sprzętu.
• Sygnały te nazywane są przerwaniami
• Przerwania obsługiwane są w specjalny sposób przez układy logiczne CPU
• Przerwanie powoduje czasowe zaniechanie wykonywania sekwencji rozkazów
aktualnie realizowanego programu i przejście do programu obsługi przerwania
• Przerwania mogą nadchodzić z różnych źródeł. SO musi mieć możliwość
zidentyfikowania źródła przerwania
12
vecj :
Sygnał
przerwania
INTj
RETI
Program
Program obsługi
przerwania j
13
Źródła przerwań
• Zewnętrzne (interrupts)
zdarzenia w modułach urządzeń we-wy,
niezależne od wykonywanego programu
np. wystąpienie błędu transmisji, nieoperatywność urządzenia,
zakończenie akcji urządzenia
• Wewnętrzne (exceptions)
zdarzenia związane z wykonywaniem rozkazów
- fault (niepowodzenie) rozkaz może być powtórzony
- trap (pułapka) rozkaz nie jest powtarzany (np. INT k)
- abort (załamanie) ponowna inicjacja systemu
np. błędna adresacja, niedozwolony kod operacji, naruszenie ochrony,
wyjątek w czasie przełączania programów
14
Akcja procesora po przyjęciu przerwania
Identyfikacja zgłoszenia
- osobne wejścia
- kod przerwania
- polling
Zapamiętanie stanu programu
- stos
- zmiana kontekstu
Blokada zgłoszeń
- obsługa programowa
Powołanie programu obsługi
- tablica wektorów
- polling
15
Wektorowy system przerwań
T[0]:
„Nowe” PC
T[j]:
Wektor j
Stos
PC
PSW
„Stare” PC
„Stare” PSW
SP
Tablica wektorów
16
Przerwania wielokrotne
vec i
vec j
k
ENI
i
ε:
j
σ:
RETI
RETI
SP
SP
SP
x
σ
ε
ε
x
x
17
Przerwania wejścia-wyjścia
• Nowoczesne SO obsługują operacje we-wy asynchronicznie.
• Dla wykonania operacji we/wy program realizowany w procesorze (zazwyczaj procedura
SO) programuje odpowiedni sterownik sprzętowy urządzenia
• Po zaprogramowaniu sterownika procesor kontynuuje wykonywanie swojego programu,
wykonanie operacji we/wy jest nadzorowane przez sterownik urzadzenia
• Po zakończeniu wykonania operacji sterownik informuje o tym SO przez wygenerowanie
odpowiedniego przerwania.
• SO rozpoznaje od którego urządzenia pochodzi przerwanie stosując metodę zależną od
architektury podsystemu przerwań procesora.
• SO wykonuje akcje związane z obsługą zidentyfikowanego przerwania
• W tym systemie żądania wykonywania operacji związanej z danym urządzeniem muszą
być kolejkowane. Kolejkowanie wymaga utrzymywania odpowiednich struktur danych
opisujących oczekiwane żądania.
• Pewne urządzenia (np. klawiatura) mogą wymagać buforowania. Ich obsługa nie jest
związana z wcześniejszym wystąpieniem żądania operacji przez jeden z biegnących w
SO programów.
18
Tablica stanów urządzeń dla obsługi kolejkowania operacji
Struktura DMA – Direct Memory Access
• układ umożliwiający przeprowadzenie transmisji pomiędzy pamięcią a sterownikiem
urządzenia zewnętrznego bez udziału procesora,
• wykorzystanie DMA wymaga istnienia w systemie specjalnych układów arbitrażu w
przypadku konfliktu operacji dostępu ze strony procesora centralnego i układu DMA
19
Hierarchia pamięci:
• rejestry procesora,
• pamięć podręczna,
• pamięć operacyjna,
• dysk wirtualny,
• pamięć podręczna dysku magnetycznego,
• dysk magnetyczny,
• urządzenia archiwizujące (dyski optyczne, pamięci taśmowe)
Pamięci podręczne:
• przyspieszają dostęp do danych w pamięci głównej,
• są znacznie szybsze ale droższe od pamięci głownej,
• wykorzystują zwykle spełnione założenie o wielokrotnym sekwencyjnym dostępie do tych
samych danych oraz o seryjnym dostępie do danych z obszarów spójnych,
• przy sprawnym zarządzaniu pamięcią podręczną można uzyskać współczynnik trafień
rzędu 80-99%.
20
Ochrona sprzętowa:
zabezpiecza system operacyjny i jego zasoby przed zniszczeniem wskutek
nieprawidłowego działania jednego z wykonywanych w systemie programów,
zabezpiecza równolegle wykonywane programy przed zakłóceniami wywołanymi
nieprawidłowym zachowaniem się jednego z działających w systemie programów,
zapobiega zawłaszczeniu zasobów (w szczególności czasu procesora) przez jeden z
wykonywanych w systemie programów.
Techniki zabezpieczania sprzętowego:
dualny tryb operacji (tryb użytkownika vs. tryb nadzorcy (monitora, systemu,
uprzywilejowany)
• pewne instrukcje (np. instrukcje we/wy, instrukcje zmiany stanu trybu) mogą być
wykonywane tylko w trybie nadzorcy,
• tryb nadzorcy jest sprzętowo ustawiany tylko przy wykonaniu przerwania kierującego
egzekucję do procedury SO,
• wykonanie rozkazu zabronionego w trybie użytkownika spowoduje wywołanie
odpowiedniego przerwania i skierowanie sterowania do odpowiedniej procedury SO.
21
ochrona pamięci przez ustalenie limitów obszaru adresowego przydzielonego
programowi (rejestry: bazowy i graniczny)
• SO przydziela każdemu wykonywanemu programowi limity obszarów w przestrzeni
adresowej,
• przed przekazaniem sterowania do programu SO ustawia jego rejestry bazowy i
graniczny
• przy każdym dostępie do pamięci w trybie użytkownika sprzętowo sprawdzane jest czy
adres pamięci mieści się w dopuszczalnym dla programu zakresie, jeśli nie generowany
jest odpowiedni wyjatek,
• w ten sposób uzyskuje się również ochronę urządzeń i operacji we/wy
ochrona jednostki centralnej przez sterowanie podziałem czasu:
• przed przekazaniem sterowania do programu SO programuje odpowiednio układ timera,
• po upływie zaprogramowanego czasu timer generuje przerwanie obsługiwane przez SO,
• procedura obsługi przerwania zegarowego decyduje czy i któremu z wykonywanych
programów przydzielić następującą jednostkę czasu,
• SO ponownie programuje timer i przekazuje ponownie sterowanie wybranemu
programowi.
22
Architektura systemu komputerowego na przykładzie PC
23
ROM-BIOS – basic input/output system (zapisany w pamięci ROM)
• przeprowadzenie po restarcie podstawowych testów układów i urządzeń systemu,
• inicjalizacja pracy systemu – programowanie układów programowalnych jak sterowniki
DMA, timery, inicjacja wektorów przerwań,
• inicjalizacja ładowania systemu operacyjnego z urządzenie pamięci masowej
• dostarczenie podstawowych procedur obsługi przerwań związanych z obsługą urządzeń
zainstalowanych na płycie systemowej,
Sekwencja działań przy starcie systemu operacyjnego:
• inicjalizacja sprzętu przez procedury BIOS,
• załadowanie z określonego obszaru dołączonej pamięci masowej programu ładowania
jądra systemu operacyjnego (ang. bootstrap),
• wykonanie programu ładowania systemu operacyjnego,
• uruchomienie procesu głównego (init),
• uruchomienie pozostałych procesów systemowych
24
Systemy czasu rzeczywistego
• stosowane do obsługi urządzeń i procesów wymagających natychmiastowej reakcji
• czas wykonania określonych operacji w SO musi być ściśle określony lub ograniczony,
• system wyposażony jest w specjalizowany interfejs czujników i mechanizmów wykonawczych
• w systemie działają w sposób ciągły procesy nadzorujące odczyt z czujników
• pamięć masowa jest z reguły ograniczona – krytyczne dane przechowywane są w pamięci
operacyjnej, a niektóre parametry w pamięci nieulotnej ROM,
• brak mechanizów o nieprzewidywalnym czasie działania lub reakcji, np. pamięci wirtualnej,
•
brak rozbudowanego GUI lub GUI obsługiwane przez wydzielony procesor
25

Podobne dokumenty