system operacyjny

Transkrypt

system operacyjny
Co to jest system operacyjny?
Może na koniec wykładu uda się odpow iedzieć.
Co kompute r musi umie ć (cz. I)
Wczytać program do pamięci. (pamiętamy, że w pamięci znajduje się i program i
dane, można oczywiście próbować wpisywać program ręcznie typu do tej komórki
wpisz taką liczbę, do innej inną itd.).
Spowodować wykonanie programu. (można ręcznie , ale wtedy trzeba ręcznie
wskazać pierwszą instrukcję, a lepiej by program jednak sam um iał automatycznie
się uruchomić).
„Posprzątać ” po starym programie. Np. usunąć po nim dane i ogólnie usunąć go z
pamięci, by potem nowy program nie pracował na niewłaściwych danych.
Decydować o programie do wykonania. Bo jednak niektóre programy są ważniejsze,
inne mniej ważne, jedne wykonują się dłużej, inne krócej i tu kom puter musi niejako
też umieć podejmować decyzje.
Wstrzymywać wykonywany program i przechodzić do wykonania innego.
Wcześniejsze komputery robiły tak, że urucham iały jeden program i nie można było
zrobić nic innego póki się on nie zakończył, w czasach obecnych jest inaczej stąd ten
punkt.
Wznowić wstrzymany program.
Przełączanie jako złudzenie jednoczesności i potrzeba jego istnienia. Czyli taka
wielozadaniowość. Zwykle wiele programów wykonuje się jednocześnie, słuchamy
muzyki, z kimś gadamy, coś piszemy itp. Jeden procesor o jednym rdzeniu w pewnej
jednostce czasu wykonuje tylko jeden program, to my mamy inne złudzenie dlatego,
bo każdy program ma maleńką jednostkę czasu w którym się może wykonać i w
ciągu sekundy przełącza się pomiędzy owym i programami kilkadziesiąt razy.
Umożliw ić komunikację i synchronizację pom iędzy „jednocześnie” wy konywanymi
programami.
Podsystem zarządzania procesami
Czyli wymagamy przede wszystkim od systemu by istniał pew ien podsystem zarządzania
procesami, który będzie odpowiedzialny za:
Tworzenie i usuwanie procesów.
Wstrzymywanie i wznaw ianie procesów (stany procesu).
Dostarczanie mechanizmów synchronizacji i komunikacji procesów.
Przy nazewnictwie że program to kod źródłowy, a wykonujący się program to proces.
Co kompute r musi umie ć (cz. II)
Decydować do jakiego obszaru pamięci wczytać program. No bo pytanie brzmi od
którego miejsca w pamięci wczytywać je, jak to zrobić by nie zachodziły jakby jedne
programy na drugie itp. Czyli pam iętanie miejsc wolnych, zajętych, który fragme nt
należy do którego programu, czy to są dane, czy kod czy jakieś inne informacje.
Przydzielać pamięć na potrzeby wykonywanego programu.
„Posprzątać ” po starym programie – zwolnić pamięć przez niego zajmowana.
Z powyższego mamy potrzebę istnienia drugiego podsystemu, mianowicie:
Podsystem zarządzania pamię cią opera cyjna
Przydzielanie i zwalnianie obszarów pam ięci w zależności od zapotrzebowania
zgłaszanego przez procesy.
Przechowywanie informacji o aktualnie zajętych częściach pamięci (ich rozmiar,
położe nie, proces, któremu są przypisane).
Decydowanie o tym, który proces ma być załadowany do obszarów zwolnionych.
Co kompute r musi umie ć (cz. III)
Dostarczyć logicznych jednostek składowania danych. Np. plik. Bo niejako w pewnym
sensie coś takiego jak plik nie istnieje, on jest właśnie logiczną jednostką składowania
danych. Użytkownik w idzi plik, a nie że odczytuje dane z sektora, cylindra itp.
„Wiedzieć ” gdzie i co jest zapisane. By sobie chociażby czegoś nie nadpisać.
No to mamy potrzebę istnienia kolejnego podsystemu tj.
Podsystem zarządzania pamię cią masową
Planowanie przydziałów obszarów pamięci dyskowej. Wiedzieć, gdzie można coś
nagrać.
Zarządzanie obszaram i wolnym i.
Dostarczanie logicznych jednostek składowania danych – plików i katalogów, oraz
zarządzanie nim i.
Co kompute r musi umie ć (cz. IV)
Dostarczyć wspólny interfejs dostępu do urządzeń.
Izolować aplikacje/użytkownika od specyfiki urządzenia.
{To co mamy niżej nie jest niezbędne, bo np. z monitora czy myszki chcemy korzystać, ale
teoretycznie bez nich mógłby system istnieć. Jeśli program ma korzystać z myszki itp., to
musi um ieć je obsługiwać. }
Podsystem we jścia/wyjścia
Dostarczenie programów obsługi poszczególnych urządzeń. Chodzi o pewne
uogólnienie, by użytkownik mógł się odciąć od kwestii sprzętowej jako takiej. Czy li
jak ktoś dostarcza kartę graficzną to dostarcza też z nią oprogramowanie
kompatybilne z systemem operacyjnym. Dzięki temu ten sam program bez większych
dodatków będz ie działał na tym samym sprzęcie o ile ów sprzęt jest w stanie obsłużyć
to coś np. by gra działała na różnych komputerach bez konieczności wgrywania za
każdym razem nowych sterowników.
Izolowanie użytkow nika od specyfiki urządzeń – dostęp do urządzenia odbywa się nie
bezpośrednio, ale za pomocą dobrze zdefiniowanego interfejsu. Bo jak się
odwołujemy bezpośrednio do sprzętu to jak sprzęt zmienimy, to już jest wielce
prawdopodobne że naszego programu nie uruchomimy na nim. Czyli niejako system
operacyjny nas izoluje od warstwy sprzętowej powinno być tak, że nad s ystemem
operacyjnym jest jeszcze warstwa programistyczna.
Co kompute r musi umie ć (cz. V)
Wiedzieć kto, gdzie i na czym pracuje. Bo informacja jest na tyle droga, że musimy ją
chronić, dawniejsze kom putery nie posiadały prawie żadnych systemów zabezpiecze ń
typu hasła czy coś.
Kontrolować kto, gdzie i na czym pracuje.
Umożliw ić decydowanie kto, gdzie i na czym pracuje.
Rozliczać z tego kto, gdzie i na czym pracuje.
No i dlatego mamy potrzebę by istniał kolejny podsystem:
Podsystem ochrony
Identyfikacja użytkownika.
Ochrona zasobów systemowych przed nieautoryzowanym dostępem.
Ustanowienie i kontrolowanie wzajem nych relacji pomiędzy użytkownikiem,
czynnościami, jakie wykonuje i
programami, jakie uruchamia, a przyznanymi
prawami dostępu.
Zarządzanie rozliczeniem – sprawowanie kontroli nad stopniem wykorzystania
systemu przez poszczególnych użytkowników.
Co kompute r musi umie ć (cz. VI)
Udostępniać mechanizm kontrolowania poczynań systemu komputerowego.
Zatem ostatnim podsystemem pożądanym jest :
Podsystem interpretacji pole ceń
Dostarczenie mechanizmów interaktywnego dostępu do funkcji systemu operacyjnego
dotyczącego m. in. Nadzorowania wy konywania procesów, obsługi wejścia/wyjścia czy
ochrony zasobów.
Miejsce systemu operacyjnego
Ma nas izolować od sprzętu. Istnieją komputery, gdzie nie mamy żadnej możliwości obejścia
systemu operacyjnego, bo jest on zintegrowany ze sprzętem np. MainFrame.
Klasyfikacja systemów operacyjnych
Jednoużytkow nikowe, jednozadaniowe. Czy li w danej chwili może pracować na
systemie tylko jedna osoba i tylko jeden program może w danym momencie się
wykonywać, przykładem może być chociażby DOS.
Jednoużytkow nikowe, wielozadaniowe. Np. Windows 95
Wieloużytkownikowe, wielozadaniowe. Np. Unix
Dziwne :) Bo nie pasują do żadnego innego podzia łu
o systemy czasu rzeczywistego, to systemy stojące w jawny sposób w
sprzeczności z systemami w ielozadaniowymi (czyli takim i, które dają
użytkownikow i wrażenie że wiele programów działa naraz). To są takie
systemu, które potrzebują pew nego czasu na działanie, nie działają od razu,
To takie systemy, które użytkownika obsługuje na końcu, bo w tym systemie
są zadania ważne i ważniejsze, SA też zadania o priorytecie czasu
rzeczywistego. Mamy tu dwie kategorie. Lżejsza daje nam to, że proces,
wykonywany program wykona się przed wszystkim i innymi zadaniami – wtedy
gdy ma priorytet czasu rzeczywistego. Te systemy dają gwarancję, że
rzeczywiście te zadania o owym priorytecie wykonają się przed wszystkimi
innymi. Bardziej zaawansowane systemie dają nam to, że zadania o danym
priorytecie wykonają się albo w zadanym czasie, albo nie wykonają się wcale.
o systemy rozproszone. Szukano sposobów na zw iększenie mocy obliczeniowej.
To taki system który działa na wielu komputerach i daje nam złudzenie jednej
wielkiej działającej maszyny. Wszystkie te komputery działają pod kontrolą
jednego systemu komputerowego. Czyli logujemy się do systemu, a nie do
stanowiska. Np. Ameba – dziwny system edukacyjny z ostatnim wcieleniu
kilka lat temu, obecnie nie jest to system rozwijany. Istnie je tez system Mach
jakkolw iek się go pisze, ale nie pracował nikt na Nim.
Trochę
dziwny ch
terminów
poja wiają cy ch
się
przy
okazji
systemów
kompute rowych
wielozadaniowość - zdolność systemu do sprawiania wrażenia, że pewne programy
wykonują się jednocześnie.
Wyw łaszczanie – to wstrzymanie programu i wykonywanie innego, zmuszenie by się
zatrzymał dany program. Wszystkie systemy wielozadaniowe są takim i systemami
wywłaszczeniowymi.
Proces – Program na nośniku danych to program. Program wykonujący się to proce s.
Watek – to pewien fragment procesu, to taki lekki proces ;) Proces to jest co
najmniej jeden działający wątek, czyli wątki mają pewną część wspólną i przełączenie
się między nimi następuje niemalże natychmiastowo
Czy każdy komputer musi posiadać system operacyjny?
W sum ie to nie, bo m oże być komputer, który steruje pralką i on wykonuje zawsze
ten sam program, nie ma konieczności przełączania się miedzy procesami, nie ma
konieczności dostępu do urządzę wejścia wyjścia, w sensie pew na jest, ale jest ich mało.
Jednak można podejść na tej zasadzie, że taki program jest sam dla siebie systemem
operacyjnym. Poza tym można też do takiej kuchenki mikrofalowej mimo wszystko wsadzić
system operacyjny by się uniezależnić od sprzętu.