systemy operacyjne - wszedukacja.plwszedukacja.pl/content/uploads/2012/04/so_wyk1.pdf · przykłady...
TRANSCRIPT
1
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.
2
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
3
Model warstwowy komputera
Aplikacje
Języki wysokiego poziomu
Asembler
System operacyjny
Język wewnętrzny
Układy logiczne
Układy elektroniczne
Realizacja fizyczna
Organizacja logiczna
np. Pascal, Modula, Java, C++, Fortran
Kod zero-jedynkowy
Specyficzny dla danego CPU
Software
Hardware
np. DOS, Unix, Windows (95..)
4
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 zasobów systemu (sprzętu, nośników danych, innych programów).
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
5
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)
6
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
8
Bloki funkcjonalne
ALU
I/O
M
CC
DMA
CPU
Memory Input/Output Direct Memory Access Arithmetic-Logic Unit (Datapath) Central Control Central Processing Unit
Otoczenie
9
Cykl rozkazowy
Wykonanie rozkazu: • dekodowanie,
• wykonanie operacji,
• przesłanie wyniku (do rejestru lub pamięci operacyjnej,
Pobranie (Fetch)
Wykonanie (Execution)
10
Stany procesora
Pobranie rozkazu
Wykonanie rozkazu
Zatrzymanie cyklu
Zapamiętanie stanu programu
Restart
Rozkaz „Halt”
Sygnał przerwania
11
Bloki funkcjonalne procesora
Licznik rozkazów (PC)
Rejestr rozkazów (IR)
Pamięć operacyjna
Blok sterowania
(M) Sygnały sterujące Znaczniki
Rejestry procesora
Jednostka arytmetyczno-logiczna (ALU)
Blok operacyjny
Procesor (CPU)
12
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
14
Ź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
15
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
16
Wektorowy system przerwań
T[0]:
„Nowe” PC
T[j]: Wektor j
Stos
PC
PSW „Stare” PC SP
„Stare” PSW
Tablica wektorów
18
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.
19
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
20
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%.
21
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.
22
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.
24
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
25
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