Transcript Wykład 2
System operacyjny – skąd się wziął?
Jak zwiększyć stopień wykorzystania procesora?
1. Zatrudnienie operatorów sprzętu
•
programista dostarcza zadanie: program i opis
•
oszczędność czasu: operator sprawniej obsługuje sprzęt
(ładuje taśmy z kompilatorami, programami itd.)...
•
ale zazwyczaj nie zna programu, który uruchamia
•
programista otrzymuje wyniki, lub ewentualne informacje o
błędach (nie może reagować natychmiast)
•
operator zaczyna następne zadanie
System operacyjny – skąd się wziął?
Jak zwiększyć stopień wykorzystania procesora?
2. Optymalizacja kolejności zadań (przykład)
•
Operator otrzymuje zadanie związane z językiem
programowania X
•
następne zadanie – w języku Y
•
i jeszcze jedno – znów w języku X
•
wykonywanie zadań – nie „po kolei” a w taki sposób, aby
podobne zadania były zebrane razem
•
np. najpierw oba zadania w języku X, a potem zadanie w
języku Y (mniej razy trzeba ładować kompilator)
•
oszczędność czasu ale i mniejszy wpływ programisty na
termin wykonania programu
System operacyjny – skąd się wziął?
Jak zwiększyć stopień wykorzystania procesora?
1. Zatrudnienie operatorów sprzętu
2. Optymalizacja kolejności zadań
Nadal jest to tzw. przetwarzanie szeregowe:
•
•
•
•
nie ma systemu operacyjnego,
nie ma automatyzacji,
wszystko robi człowiek (powolny i mylący się),
„czas instalowania zadania” – nadal bardzo długi
(ładowanie kart itp.)
Wsadowy system operacyjny – monitor rezydentny
Zastosowanie monitora – IBM lata 50-te XX wieku
•
Program ładowany do pamięci po
włączeniu komputera
•
Użytkownik traci bezpośredni
dostęp do maszyny, automatyczne
porządkowanie zadań
•
„wsad” – plik kart z kartami
sterującymi, rozkazy w języku
sterowania zadaniami (JCL)
•
Procesor dostaje rozkazy albo z
monitora albo z programu
Podział pamięci
Wsadowy system operacyjny – monitor rezydentny
Przykład wsadu – pliku kart perforowanych
•
Użytkownik dostarcza karty z
programem (fortran) i danymi
•
Dodanie kart sterujących
•
$JOB – początek zadania
•
$FTN – załadowanie kompilatora
•
Kompilacja (wynik: na taśmę)
•
$LOAD – załadowanie kodu
•
$RUN – wykonanie kodu
•
Wyniki – taśma, drukarka
•
$END – koniec zadania
•
Początek nowego zadania
Wsadowy system operacyjny – monitor rezydentny
Monitor rezydentny
•
Interpretator kart sterujących – czytanie i wykonywanie
poleceń z kart
•
Program ładujący – ładuje do pamięci programy systemowe
lub użytkownika
•
Programy obsługi urządzeń wejścia – wyjścia
Są to elementy pierwszych „systemów operacyjnych”.
Wsadowy system operacyjny – monitor rezydentny
Monitor rezydentny
•
Automatyzacja, przyspieszenie pracy, brak przestojów
(obsługa urządzeń wejścia - wyjścia)
•
Konieczność odpowiedniego przygotowania wsadu
•
Poświęcenie pewnej części pamięci na działanie monitora
•
Poświęcenie pewnej liczby operacji procesora na działanie
monitora
Wsadowy system operacyjny – monitor rezydentny
Jak jeszcze przyspieszyć?
Załóżmy następującą sytuację:
•
ściąganie pliku mp3 – godzina, odsłuchanie – 4 minuty
•
ściągnięcie filmu – 24 godziny, obejrzenie – 1,5 godziny
•
w trakcie pobierania procesor nie może nic robić, tylko czeka)
http://www.filothea.com/blog/wp-content/uploads/2012/09/loading-buffering.jpg
http://petacamisetas.es/camiseta-loading-p-24181.html
Wsadowy system operacyjny – monitor rezydentny
Jak jeszcze przyspieszyć?
•
Urządzenia wejściowe – czytniki kart
•
Urządzenia wyjściowe – drukarki wierszowe, dziurkarki kart
•
Praca urządzeń wejścia – wyjścia: zbyt długa
•
Czytnik: np. 1200 kart na minutę
•
Kompilator: przetworzenie informacji z 1200 kart – 4 sekundy
•
Procesor pracuje tylko przez kilka procent czasu pracy systemu
Wsadowy system operacyjny – monitor rezydentny
Bezpośrednia i pośrednia praca urządzeń wejścia – wyjścia
(a) – praca bezpośrednia
(b) – praca pośrednia
Wsadowy system operacyjny – monitor rezydentny
pośrednia praca urządzeń wejścia – wyjścia
•
Pobieranie i wysyłanie danych – praca z taśmami
magnetycznymi
•
Przewijaki taśm: znacznie szybsza wymiana danych
•
Dodatkowe etapy: przesłanie danych (wsad) z czytnika kart
na taśmę oraz z taśmy na drukarkę wierszową; wydłużenie
czasu dostarczenia zadania
•
Optymalizacja kolejności zadań – zadania podobne zbierane
na jednej taśmie, aż do zapełnienia
Wsadowy system operacyjny – monitor rezydentny
pośrednia praca urządzeń wejścia – wyjścia
•
Krok w kierunku systemów wielokomputerowych, dodatkowe
komputery sterowały pracą urządzeń przesyłających dane
pomiędzy taśmą a innymi nośnikami
•
Ewentualne dodatkowe przewijaki taśmy – gdy czytamy dane
z jednej taśmy, możemy przetwarzać inne dane
(wielozadaniowość)
•
Jak dotąd: rozbudowa sprzętu prowadzi do zwiększenia
efektywności
Wsadowy system operacyjny – monitor rezydentny
Dalsze zwiększenie efektywności – buforowanie
•
Monitor przypisuje każdemu urządzeniu wejścia – wyjścia tzw.
bufor systemowy, czyli część pamięci używanej przez monitor
(a nie przez wykonywany program)
•
Wywołanie operacji wejścia – wyjścia: przesłanie danych z lub
do bufora
•
Rzeczywista operacja albo już została wykonana albo
zostanie wykonana później
Wsadowy system operacyjny – monitor rezydentny
Dalsze zwiększenie efektywności – buforowanie
•
Porcja danych z urządzenia wejścia – do bufora
•
Procesor przetwarza pobrane dane (zwalnia bufor)
•
Odczyt następnych danych
•
Możliwość jednoczesnej pracy procesora i urządzenia
wejścia
Wsadowy system operacyjny – monitor rezydentny
Dalsze zwiększenie efektywności – buforowanie
•
Duża korzyść, o ile zapełnianie bufora i przetworzenie jednej
porcji trwają mniej więcej tyle samo
•
Zadania uzależnione od wejścia – wyjścia, dużo danych, mało
przetwarzania (procesor czeka, urządzenia nie nadążają z
zapełnianiem / opróżnianiem bufora), korzyść niewielka
•
Zadania uzależnione od jednostki centralnej, dużo
przetwarzania, mało danych (procesor nie nadąża, urządzenia
czekają)
•
Zalety / wady: niski koszt (bez dodatkowych urządzeń) /
rzadko osiągana jest korzyść
Wsadowy system operacyjny – monitor rezydentny
Taśmy i dyski
•
System taśmowy – zadania wykonują się w takiej kolejności, w jakiej
są na taśmie; taśma przewijana od początku do końca
•
System dyskowy
dane z kart lub taśm zapisywane są na dysku
Głowica dysku może przemieszczać się pomiędzy obszarami
odpowiednia tablica systemu operacyjnego zapamiętuje, gdzie
co zostaje zapisane
Jednoczesna bezpośrednia praca urządzeń – spooling, dysk
staje się wielkim buforem przechowującym dane odczytane oraz
przeznaczone na wyjście
Wsadowy system operacyjny – monitor rezydentny
Spooling (simultaneous peripheral operation on-line)
•
Na dysku znajduje się pula zadań do wykonania
•
System operacyjny dokonuje planowania zadań (wybiera taką kolejność,
aby zwiększyć wykorzystanie CPU)
•
Procesor może przetwarzać jedno zadanie, a jednocześnie można czytać
dane do innego zadania (lub np. drukować wyniki poprzedniego zadania; w
buforowaniu przetwarzanie i czytanie dotyczy tego samego zadania)
•
Procesor nadal może nie być w pełni wykorzystany – wykonuje jedno
zadanie, które nie musi go w pełni angażować (np. czeka na zakończenie
operacji wejścia)
•
Nowe aspekty syst. op.: planowanie zadań, obsługa pamięci dyskowej,
kontrolowanie spoolingu (współcześnie: spooling istotny podczas drukowania)
System wsadowy, wieloprogramowość
Przetwarzanie wieloprogramowe (multiprogramming)
•
Przetwarzanie jednozadaniowe – w pamięci (oprócz monitora) jest jeden
program, CPU go wykonuje, są przestoje (np. trzeba pobrać dane z dysku)
•
Przetwarzanie wielozadaniowe (jeśli pamięć jest dość duża)
w pamięci jest więcej programów, gdy wykonanie pierwszego
zatrzymuje się (bo czeka na dane), procesor zajmie się innym
Kończy się oczekiwanie – powrót do pierwszego programu
Dopóki są zadania, procesor stale jest zajęty
Nowe aspekty syst. op.:
•
Konieczność zarządzania pamięcią
•
Planowanie przydziału procesora (które z gotowych zadań ma być
teraz wykonane?)
System wsadowy, wieloprogramowość
Przetwarzanie wieloprogramowe
System wsadowy, wieloprogramowość
Przetwarzanie wieloprogramowe
System wsadowy, wieloprogramowość
Przetwarzanie wieloprogramowe
System wsadowy, wieloprogramowość
Przetwarzanie wieloprogramowe
System wsadowy, wieloprogramowość
Przetwarzanie wieloprogramowe
Bardziej ogólnie:
•
Zadań do wykonania może być więcej
•
Zadania mogą potrzebować tego samego urządzenia (np. drukarki)
•
Nie wszystkie zadania z puli (na dysku) mogą zmieścić się w pamięci,
system musi wybierać te, które poczekają
System wsadowy, wieloprogramowość
Przetwarzanie wieloprogramowe
Zalety:
•
Szybsze wykonywanie puli zadań
•
Większe obłożenie procesora i urządzeń WE / WY
Wady:
•
Większa złożoność systemu operacyjnego (planowanie zadań,
przydział procesora, zarządzanie pamięcią, zarządzanie dyskiem)
•
Zadanie nie korzystające z WE / WY może na długo przejąć kontrolę
•
Nadal użytkownik nie ma kontroli nad aktualnie wykonywanym
programem
Uwaga: pojęcia wieloprogramowość (multiprogramming) i wielozadaniowość są niekiedy
traktowane jak synonimy (książki, materiały w Internecie), a niekiedy
wielozadaniowość (multitasking) dotyczy systemów z podziałem czasu
System wsadowy, wieloprogramowość
Podsumowanie
Elementy systemu operacyjnego (na tym etapie)
•
planowanie zadań
•
zarządzanie pamięcią
•
obsługa pamięci dyskowej
•
kontrolowanie spoolingu
•
Przydział czasu procesora
Pojęcia:
•
Monitor
•
Praca pośrednia
•
Buforowanie
•
Spooling
•
Przetwarzanie wieloprogramowe