systemy operacyjne - wszedukacja.plwszedukacja.pl/content/uploads/2012/04/so_wyk1.pdf · przykłady...

25
1 Systemy operacyjne dr inż. Jerzy Sas e-mail: [email protected] Plan wykladu 1. Wprowadzenie - podstawowe pojęcia, rys historyczny, architektura systemu komputerowego, architektura systemu operacyjnego, wspólpraca 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 obslugą zdarzeń na przykladzie SO Windows 6. Wspomaganie przetwarzania rozproszonego, komunikacja z wykorzystaniem gniazd, rozproszone systemy plików, zdalne wywolywanie procedur.

Upload: trantuyen

Post on 01-Mar-2019

232 views

Category:

Documents


0 download

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

7

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

13

vecj :

Sygnał

przerwania

INTj

RETI

Program obsługi Program przerwania j

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

17

Przerwania wielokrotne

k

i ENI

ε:

j

σ:

RETI

RETI

SP σ

SP ε ε

SP x x x

vec i vec j

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.

23

Architektura systemu komputerowego na przykładzie PC

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