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.