Pierwsze systemy wsadowe - przypomnienie
description
Transcript of Pierwsze systemy wsadowe - przypomnienie
Pierwsze systemy wsadowe - przypomnienie
Prosty system wsadowy
• Wsad – plik kart z kartami sterującymi, rozkazy w języku sterowania
zadaniami
• Praca pośrednia (szybsza wymiana danych, taśmy, dyski)
• Buforowanie (jednoczesna praca procesora nad danym zadaniem i
urządzeń we-wy – to samo zadanie)
• Spooling (jednoczesna praca procesora nad danym zadaniem i
urządzeń we-wy – różne zadania); pula zadań, planowanie zadań
• Przetwarzanie nowego zadania – dopiero po zakończeniu
poprzedniego
Pierwsze systemy wsadowe - przypomnienie
Wieloprogramowy system wsadowy
• W danym momencie – praca nad tylko jednym zadaniem, jeśli jest
przestój, można przejść do innego zadania
• zadania pozostają w pamięci – obsługa dostępu do pamięci
• Planowanie przydziału procesora
• Kontrola wzajemnie niekorzystnych działań (magazynowanie danych
na dysku, zarządzanie pamięcią)
Potrzeba interaktywności
Systemy wsadowe
• Odpowiednie dla dużych zadań nie wymagających dialogu
• Brak bezpośredniego nadzoru ze strony użytkownika
• Statyczne testowanie programu, nie można na bieżąco obserwować
i modyfikować programu (dyscyplina programowania)
Potrzeba interaktywności:
Działanie programu ma/może być uzależnione od użytkownika, który
otrzymuje komunikaty i podejmuje decyzje
Potrzeba interaktywności
Przykład
Badany (lub tworzony) jest model fizyczny, w którym rozważa się
zależność wielkości fizycznej od pewnej ilości parametrów. Jak
wartości parametrów wpływają na wartość interesującej wielkości?
Użytkownik sprawdza różne kombinacje, modyfikuje model (np.
zmiana dokładności), dopasowuje do danych doświadczalnych,
pewne wyniki może chcieć zapisać, inne odrzucić itd. Eksperyment
numeryczny.
Niezbędna jest możliwość „dialogu” z komputerem
Potrzeba interaktywności
Dialog – narzędzia
• Dostęp do programu lub danych – ekran, klawiatura
• Oprogramowanie do pracy z programami/danymi np. edytory
• Zapis informacji – plik, różne formaty, różnego rodzaju dane
• System plików, katalogi
• Nadzór nad dostępem do plików – kto i co może z danym plikiem
zrobić
• Czas odpowiedzi – użytkownik chce mieć szybką informację o
działaniu programu oraz możliwość dialogu; nieakceptowalne w
tradycyjnych systemach wsadowych
Systemy z podziałem czasu
Wielozadaniowe przetwarzanie wsadowe a podział czasu
Przetwarzanie wsadowe
Podział czasu
Cecha podstawowa
Maksymalne obłożenie procesora (efektywność)
Minimalny czas odpowiedzi (wygoda)
Źródło dyrektyw dla systemu operacyjnego
Rozkazy programu wyrażone w języku sterowania zadaniami
Polecenia wprowadzane z terminala
Główne przeznaczenie
Obsługa dużych zadań nie wymagających nadzoru
Obsługa zbiorów krótkich działań, kolejne kroki nieprzewidywalne – rola użytkownika
Systemy z podziałem czasu
Przykład: każdy korzysta z terminala (monitor + klawiatura)
KOMPUTER
Terminal 1Użytkownik 1
Terminal 2Użytkownik 2
Terminal NUżytkownik N
• Wielozadaniowość i interaktywność
• Zadania dzielone na „drobne porcje”…
• i przetwarzane przeplatanymi kolejno fragmentami
• Każdemu przysługuje średnio 1/N czasu procesora (mniej)
Systemy z podziałem czasu
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM)
• Co określony czas (np. 0.2 s) generowane są przerwania
• Przerwanie – monitor przejmuje sterowanie i przekazuje innemu
użytkownikowi
• W regularnych odstępach czasu zmiana zadania na następne
• Przed przejściem do nowego zadania – zapis aktualnych danych i
programu na dysku, odtworzenie w pamięci nowego zadania
• W miarę możliwości: to co się da zachować w pamięci nie jest
przenoszone na dysk (minimalizacja obsługi dysku)
• Każdy użytkownik ma wrażenie, że dysponuje własnym komputerem
Systemy z podziałem czasu
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM)
Pamięć całkowita 32000 jednostek
System (monitor rezydentny) Pierwsze 5000 jednostek
JOB 1 15000 jednostek
JOB 2 20000 jednostek
JOB 3 5000 jednostek
JOB 4 10000 jednostek
Jednostka – słowo 36 bitowe
Systemy z podziałem czasu
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM)
• Załadowanie do pamięci (zawsze od słowa nr 5000) JOB 1 i
przekazanie mu sterowania
Systemy z podziałem czasu
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM)
• Zatrzymanie JOB 1, załadowanie JOB 2, (JOB 1 zapisane na dysku)
Systemy z podziałem czasu
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM)
• Zatrzymanie JOB 2, załadowanie JOB 3, (JOB 2 częściowo zostaje
w pamięci, reszta na dysk)
Systemy z podziałem czasu
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM)
• Zatrzymanie JOB 3, załadowanie JOB 1, (JOB 3 zapisane na dysku,
kolejna część JOB 2 też zapisana na dysku)
Systemy z podziałem czasu
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM)
• Zatrzymanie JOB 1, załadowanie JOB 4, (część JOB 1 zapisana na
dysku, w pamięci pozostaje część JOB 1 i JOB 2)
Systemy z podziałem czasu
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM)
• Zatrzymanie JOB 4, załadowanie JOB 2, (JOB 4 i część JOB 1
zapisane na dysku)
Systemy z podziałem czasu
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM)
• System bardzo prosty (prymitywny)
• Potrzebował bardzo mało pamięci
• Bardzo prosta obsługa pamięci
• Możliwość pracy 32 użytkowników w jednym czasie
Systemy z podziałem czasu
Najważniejsze aspekty
• Zabezpieczenie przed wzajemnym oddziaływaniem zadań
(możliwość zmiany danych jednego użytkownika przez program
innego)
• Administrowanie pamięcią dyskową, system plików, ochrona przed
nieupoważnionym dostępem
• Zarządzanie innymi zasobami (drukarki, pamięć masowa)
Systemy z podziałem czasu
Pierwsze systemy operacyjne
• Systemy wsadowe proste
• Systemy wsadowe wieloprogramowe
• Systemy z podziałem czasu
Rozwój systemów komputerowych – nowe zadania dla systemów operacyjnych
• Systemy komputerowe równoległe
• Systemy komputerowe rozproszone
• Systemy czasu rzeczywistego
• Komputery osobiste (systemy operacyjne jednostanowiskowe)
Systemy komputerowe równoległe
Jeden komputer, więcej niż jeden procesorów
PAMIĘĆ
PROCESOR
MAGISTRALA WE / WY
PROCESORPROCESORPROCESOR
Systemy komputerowe równoległe
Jeden komputer, więcej niż jeden procesorów
• Pierwsze komputery: taniej wstawić drugi procesor niż kupić drugi
komputer
• Wspólna pamięć, zegar, dyski, urządzenia zewnętrzne
• Wykonanie większej pracy w krótszym czasie
• Przy N procesorach przyspieszenie jest mniejsze od N (koordynacja
działania poszczególnych jednostek)
• Większa niezawodność – przy awarii jednego z procesorów jego zadania
przejmą inne jednostki
• Programowanie równoległe
• Większa złożoność systemu operacyjnego
Systemy komputerowe równoległe
Jeden komputer, więcej niż jeden procesorów
• Przetwarzanie symetryczne: zadania dzielone „po równo”, każdy
procesor może być przeznaczony do wykonywania każdego
zadania; taka sama kopia systemu operacyjnego pracuje na każdej
jednostce; procesory są identyczne np.: wielordzeniowość,
(większość współczesnych systemów operacyjnych)
• Przetwarzanie asymetryczne: procesory mają różne zadania, np.
jeden tylko do obsługi we-wy inne do obsługi programów; jeden z
procesorów może być wyróżniony – planuje i przydziela zadania
(system operacyjny działa tylko na nim); procesory mogą być różne;
(obsługa wielkich systemów komputerowych)
Systemy komputerowe rozproszone
Więcej komputerów
PAMIĘĆ
PROCESOR
MAGISTRALA
WE / WY PROCESOR WE / WY
MAGISTRALA
PAMIĘĆ
Systemy komputerowe rozproszone
Więcej komputerów
• Komputery są niezależne od siebie
• Każdy procesor ma do dyspozycji własną pamięć i zegar
• Komunikacja między procesorami: szybkie szyny danych, sieci
ethernet, linie telefoniczne, …
• Procesory – możliwe różnice rozmiaru i przeznaczenia (zarówno
wielkie systemy komputerowe jak i komputery osobiste)
• Użytkownik nie musi być świadomy wielkości systemu
rozproszony system operacyjny:Przyspieszenie obliczeń
sieciowy system operacyjny:Uwspólnienie zasobów
Systemy komputerowe rozproszone
Rozproszony system operacyjny
Jeden system operacyjny zarządza pracą wszystkich komputerów
Podział zasobów – użytkownik jednego stanowiska korzysta zarówno z zasobów bądź danych lokalnych i zdalnych w taki sam sposób (może nie wiedzieć, gdzie „fizycznie” są jego pliki)
Dzielenie obciążenia – przyspieszenie obliczeń. Jeśli wykonywane zadania można podzielić na zbiór niezależnych obliczeń cząstkowych, to system umożliwia współbieżne wykonanie takich obliczeń (korzystanie z kilku stanowisk, jednego ale szybszego, jednego – mniej obciążonego itd.)
Niezawodność – w przypadku awarii jednego węzła pozostałe mogą kontynuować pracę przejmując jego zadania. Warunkiem jest istnienie odpowiedniego zapasu danych i zasobów – jeżeli awarii ulegnie węzeł odpowiadający (jako jedyny) za operacje wejścia / wyjścia, to unieruchomiony zostanie cały system.
Systemy komputerowe rozproszone
Rozproszony system operacyjny
Łączność pomiędzy użytkownikami – użytkownicy sieci mogą swobodnie komunikować się ze sobą a także współdzielić dane.
Zróżnicowana struktura; zarządzanie zadaniami; otwartość na rozbudowę sprzętową i programową
Mach, Chorus, Amoeba
Klaster – zachowuje się jak jedna maszyna, poszczególne elementy mają własne systemy operacyjne (np. Linux), ale są anonimowe; głównie wydajne obliczenia, odporne na awarie serwery internetowe)
Systemy komputerowe rozproszone
Sieciowy system operacyjny
Współczesne komputery – sieci rozproszone: Internet, sieć lokalna
(korzystanie z protokołów sieciowych, usług sieciowych)
• Praca zdalna, logowanie na innej maszynie (ssh)
• Transfer plików pomiędzy maszyną zdalną i lokalną (ftp)
• Uwspólnienie zasobów plikowych
• Poczta elektroniczna, www, komunikatory
• Korzystanie ze zdalnego sprzętu (np. drukarka)
Użytkownik ma świadomość istnienia wielu maszyn, dostęp do zasobów
innych komputerów jest jawny.
Systemy czasu rzeczywistego
Ścisłe wymagania odnośnie czasu wykonania operacji
Zazwyczaj: sterowniki w urządzeniach o ściśle określonym celu. Czujniki dostarczają dane do systemu, który je analizuje i w zależności od zaistniałej sytuacji tak reguluje działanie kontrolowanego obiektu aby zmieniły się wskazania wejściowe czujników.
Ściśle określone ograniczenia czasowe. Przetwarzanie musi się zakończyć przed upływem wyznaczonego czasu, w przeciwnym wypadku system nie będzie spełniał wymagań.
Przykłady: systemy nadzorowania eksperymentów naukowych, obrazowania badań medycznych, sterowania procesami przemysłowymi, sterowniki urządzeń gospodarstwa domowego, …
Systemy operacyjne jednostanowiskowe
Komputery osobiste (indywidualni użytkownicy)
• Wykorzystanie wzorców sprawdzonych podczas rozwoju systemów dla
„dużych” systemów komputerowych
• Pierwsze PC: late 70 – te XX w.
• Główny nacisk: nie na efektywność wykorzystania procesora i zasobów a
na wygodę użytkownika, interakcyjność
• Współczesne systemy operacyjne dla PC: wielozadaniowość (podział
czasu), wielodostępność, wieloprocesorowość, pewne elementy systemów
czasu rzeczywistego, sieciowość, modyfikowalność
• Ochrona danych przed niepożądanym dostępem (nieuprawnieni
użytkownicy, wirusy itd. )