280 likes | 510 Views
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)
E N D
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ą) Pierwsze systemy wsadowe - przypomnienie
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 Potrzeba interaktywności
Wielozadaniowe przetwarzanie wsadowe a podział czasu Systemy z podziałem czasu
Przykład: każdy korzysta z terminala (monitor + klawiatura) Terminal 1 Użytkownik 1 Terminal 2 Użytkownik 2 Terminal N Użytkownik N Systemy z podziałem czasu KOMPUTER • Wielozadaniowość i interaktywność • Zadania dzielone na „drobne porcje”… • i przetwarzane przeplatanymi kolejno fragmentami • Każdemu przysługuje średnio 1/N czasu procesora (mniej)
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) Systemy z podziałem czasu Jednostka – słowo 36 bitowe
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM) Systemy z podziałem czasu • Załadowanie do pamięci (zawsze od słowa nr 5000) JOB 1 i przekazanie mu sterowania
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM) Systemy z podziałem czasu • Zatrzymanie JOB 1, załadowanie JOB 2, (JOB 1 zapisane na dysku)
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM) Systemy z podziałem czasu • Zatrzymanie JOB 2, załadowanie JOB 3, (JOB 2 częściowo zostaje w pamięci, reszta na dysk)
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM) Systemy z podziałem czasu • Zatrzymanie JOB 3, załadowanie JOB 1, (JOB 3 zapisane na dysku, kolejna część JOB 2 też zapisana na dysku)
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM) Systemy z podziałem czasu • Zatrzymanie JOB 1, załadowanie JOB 4, (część JOB 1 zapisana na dysku, w pamięci pozostaje część JOB 1 i JOB 2)
CTSS – Compatible Time Sharing System (lata 60-te MIT, IBM) Systemy z podziałem czasu • Zatrzymanie JOB 4, załadowanie JOB 2, (JOB 4 i część JOB 1 zapisane na dysku)
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 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)
Jeden komputer, więcej niż jeden procesorów PROCESOR PROCESOR PROCESOR PROCESOR Systemy komputerowe równoległe MAGISTRALA WE / WY PAMIĘĆ
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 równoległe
Więcej komputerów PROCESOR WE / WY PROCESOR WE / WY Systemy komputerowe rozproszone MAGISTRALA MAGISTRALA PAMIĘĆ PAMIĘĆ
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 Systemy komputerowe rozproszone rozproszony system operacyjny: Przyspieszenie obliczeń sieciowy system operacyjny: Uwspólnienie zasobów
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 Systemy komputerowe rozproszone 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.
Ś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 czasu rzeczywistego
Komputery osobiste (indywidualni użytkownicy) Systemy operacyjne jednostanowiskowe • 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ółcześnie: 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. )