systemy operacyjne 1rok DOC


System operacyjny - program działający jako pośrednik między użytkownikiem komputera a sprzętem komputerowym.

Zadaniem systemu op. jest tworzenie środowiska, w którym użytkownik może wykonywać programy w sposób: wygodny i wydajny.

System komputerowy:

- sprzęt (procesor, pamięć, urządzenia we/wy) - podstawowe zasoby systemu komputerowego

- system operacyjny - nadzoruje i koordynuje posługiwanie się sprzętem przez różne programy użytkowe pracujące na zlecenie różnych użytkowników

- programy użytkowe (kompilatory, systemy baz danych, gry itd.) - określają sposoby użycia zasobów systemu komputerowego do rozwiązywania zadań stawianych przez użytkowników

- użytkownicy (ludzie, maszyny, inne komputery)

System operacyjny - dostarcza środków do właściwego użycia zasobów (tj. sprzętu, oprogramowania, danych) działających w danym systemie komputerowym, sam nic użytecznego nie robi, tworzy środowisko (tak jak rząd)

System operacyjny - dystrybutor zasobów, przydziela, co trzeba, rozwiązuje konflikty zamówień.

System operacyjny - program sterujący: nadzoruje działanie programów użytkownika, przeciwdziała błędom, zapobiega niewłaściwemu użyciu komputera, zwłaszcza obsługuje i kontroluje pracę urządzeń we/wy.

Co jest częścią systemu operacyjnego?

1. to co sprzedaje dostawca jako system operacyjny

2. to co działa w komputerze nieustannie (jądro), reszta to programy usługowe

Historia.

0. Na początku był tylko sprzęt - programista = operator, harmonogramy pracy

1. Rozwój i upowszechnienie sprzętu i programów (asemblery, loadery, linkery), podprogramy we/wy, biblioteki

2. Kompilatory (łatwiejsze pisanie programów, więcej z uruchamianiem) - czas instalowania taśmy z programami --> przestoje.

3. Zawodowi operatorzy / programiści, gromadzenie zadań na wsad. Operator sortował zadania. System operacyjny bardzo prosty - automatycznie przekazywał sterowanie od jednego do drugiego zadania, stale rezydował w pamięci. Ale nie wiadomo, czy program skończył się z błędem czy dobrze.

4. Automatyczne porządkowanie zadań --> monitor rezydujący, karty sterujące (dyrektywy dla monitora), interpreter kart sterujących

5. Praca pośrednia - wolne czytniki kart, drukarki - procesor 90% czasu czeka --> zastąpić taśmą magnetyczną (specjalny sprzęt, przetwarzanie satelickie) > szybciej wszystko działa, nie trzeba zmian w programach (tylko w procedurach obsługi urządzeń) --> niezależność od urządzeń fizycznych, urządzenia logiczne.

6. Buforowanie i spooling - dyski, we/wy jednego zadania, obliczenia innego, stale procesor ma coś do roboty, bo przygotowane zadania już czekają pula zadań planowanie zadań tak, aby jak najefektywniej.

8. Wieloprogramowość - system operacyjny wybiera i zaczyna robić 1 zadanie z puli, konieczna przerwa (założyć taśmę, znak z klawiatury itd.) --> system operacyjny zamiast bezczynnie czekać, robi 2 zadanie itd.; przechowywanie jednoczesne wielu zadań w pamięci, planowanie przydziału procesora system decyduje o kolejności wykonywania, pilnowanie żeby zadania sobie wzajemnie nie przeszkadzały

9. Podział czasu - wielozadaniowość: procesor wykonuje na przemian wiele różnych zadań, przy czym przełączenia następują tak często, że użytkownicy mogą współdziałać z każdym programem jednocześnie (początki już rok 1960); system plików dostępny bezpośrednio, katalogi; współbieżność, czas odpowiedzi, pamięć wirtualna

10. Systemy operacyjne jednostanowiskowe - PC: niepotrzebna ochrona plików, jednozadaniowe, efektywne wykorzystanie procesora nieistotne ale takie podejście to przeszłość, dzisiaj tak jak w dużych maszynach.

11. Systemy równoległe - ileś procesorów ściśle współpracuje (wspólna szyna, pamięć, zegar). Po co? Aby większa przepustowość (ale nie proporcjonalnie!), oszczędzanie na peryferiach, większa niezawodność (łagodna degradacja systemy tolerujące awarie fault-tolerant, np. po 2); model wieloprzetwarzania symetrycznego / asymetrycznego wynikający ze sprzętu lub oprogramowania; przerzucanie wielu funkcji systemowych na podporządkowany systemowi operacyjnemu sprzęt mikroprocesorowy (np. sterownik macierzy dyskowej, klawiatury).

12. Systemy rozproszone: luźno powiązane --> rozproszone (distributed systems): własna pamięć, komunikacja między węzłami / stanowiskami / komputerami.

Po co systemy rozproszone?

- podział zasobów (drukarka przy jednym komp., pliki na dysku drugiego)

- przyspieszenie obliczeń (dzielenie obciążeń) (load sharing)

- niezawodność - komunikacja

13. Systemy czasu rzeczywistego (real time)- komputer jako sterownik (elektroniczny wtrysk paliwa, broń):

- rygorystyczny system czasu rzeczywistego (dane z ROMu, nie mają cech współczesnych systemów operacyjnych: np. bez pamięci wirtualnej)

- łagodny system czasu rzeczywistego - krytyczne zadanie do obsługi w czasie rzeczywistym otrzymuje pierwszeństwo

Po włączeniu: wykonanie wstępnego programu (bootstrap program) określenie stanu początkowego wszelkich elementów systemu, załadowanie jądra systemu operacyjnego, init, czeka na zdarzenia, które są sygnalizowane przez przerwania (interrupt). Po przerwaniu procesor wstrzymuje aktualnie wykonywaną operację i przechodzi do obsługi przerwania, po czym wraca.

Wektor przerwań (interrupt vector) - tablica adresów obsługi przerwań od różnych urządzeń indeksowana numerem urządzenia - numerem przerwania, bo trzeba je szybko obsługiwać. Adres powrotny dawniej był przechowywany w ustalonej komórce, dzisiaj na stosie systemowym. Zwykle podczas obsługi przerwania inne są wyłączone, nowsze pozwalają na ustalenie priorytetów i obsługę ważniejszego (przerwanie obsługi mniej ważnego przerwania)

Gdy nie ma żadnych zadań, żadne urządzenia we/wy nie czekają na obsługę, nie ma żądań użytkowników, to system operacyjny czeka na jakieś zdarzenie (sygnalizowane przez przerwanie lub pułapkę (wyjątek - rodzaj przerwania generowany przez oprogramowanie , spowodowane przez błąd (dzielenie przez 0, próba niewłaściwego dostępu do pamięci) lub specjalne zamówienie z programu użytkownika do systemu operacyjnego system operacyjny jest sterowany zdarzeniami. Po wykryciu przerwania (pułapki) sprzęt przekazuje sterowanie do systemu operacyjnego. Ten najpierw przechowuje bieżący stan procesora (rejestry, licznik rozkazów), ustala rodzaj przerwania (np. przez odpytywanie).

Dualny tryb pracy:

Wieloprogramowość lepsze wykorzystanie / problemy:

Bo gdy działał 1 program, posypał się, to szkodził tylko sobie; teraz może szkodzić innym programom konieczna ochrona! Jest ona realizowana przez sprzęt: gdy jest próba niedozwolonej operacji, to program wpada w pułapkę przejście do systemu operacyjnego (usunięcie tego programu). Ale trzeba wykrywać wszystkie błędy ochrona musi obejmować wszystkie zasoby dzielone rozróżnianie różnych trybów pracy: co najmniej: tryb użytkownika/tryb monitora. (rozróżnianie przez tzw. bit trybu). Przy wystąpieniu przerwania (pułapki) sprzęt zmienia tryb pracy z trybu użytkownika na monitora gdy system operacyjny pracuje, jest w trybie monitora (przed powrotem zmienia na tryb użytkownika). Uzupełnienie: oznaczenie potencjalnie niebezpiecznych rozkazów jako uprzywilejowanych (wykonywanych tylko w trybie monitora).

Ochrona we/wy wszystkie operacje we/wy są uprzywilejowane.

Ochrona sprzętowa:

  1. pamięć wektora przerwań

  2. systemowe procedury obsługi przerwań

  3. pamięć kodu i danych systemu operacyjnego

  4. pamięć innych procesów

  5. zabezpieczenie przed nieskończoną pętlą

  6. rozkazy uprzywilejowane

Ad. 1-4. rozstrzyganie o zakresie dopuszczalnych adresów programu rejestry: bazowy i graniczny

Realizacja przez porównanie każdego adresu wygenerowanego w trybie użytkownika z zawartością tych rejestrów. Gdy poza nimi pułapka. Zawartości tych rejestrów mogą być określane przez system operacyjny przy użyciu uprzywilejowanych rozkazów ( w trybie monitora).

System operacyjny ma nieograniczony dostęp do pamięci (swojej i innych procesów może ładować programy itd.).

Ad.5. Zastosowanie czasomierza zabezpiecza okresowe przekazanie sterowania (przez przerwanie zegarowe) do systemu operacyjnego, który decyduje, co dalej?

Jak program użytkownika może wykonać operację we/wy?

Proces zwraca się do systemu, aby monitor wykonał tę operację za niego (odwołanie do systemu)traktowane przez sprzęt jak przerwanie programowe. System sprawdza poprawność odwołania (parametry za pomocą rejestrów lub pamięci), jeśli OK., to robi i przekazuje sterowanie w powrotem do programu użytkownika.

0x01 graphic

System operacyjny tworzy środowisko do wykonywania programów; aby je skonstruować, dzieli się go logicznie na małe moduły i tworzy dobrze określony interfejs (we, wy, funkcje) z wykonywanymi programami.

Składowe systemu:

- tworzenie i usuwanie procesów (użytkowych, systemowych)

- wstrzymywanie i wznawianie procesów

- dostarczanie mechanizmów synchronizacji procesów

- dostarczanie mechanizmów komunikacji procesów

- dostarczanie mechanizmów obsługi blokad

- utrzymywanie ewidencji aktualnie zajętych części pamięci (czyje one są)

- decydowanie o tym, które procesy mają być załadowane do zwolnionych obszarów pamięci

- przydzielanie i zwalnianie obszarów pamięci stosownie do potrzeb

- zarządzanie obszarami wolnymi

- przydzielanie pamięci

- planowanie przydziałów obszarów pamięci dyskowej

- systemu buforowo -notatnikowego

- ogólnego interfejsu do programów obsługi urządzeń sprzętowych

- programów obsługi poszczególnych urządzeń sprzętowych

- tworzenie i usuwanie plików

- tworzenie i usuwanie katalogów

- dostarczanie elementarnych operacji do manipulacji plikami i katalogami

- odwzorowywanie plików na obszary pamięci pomocniczej

Funkcje systemowe - tworzą interfejs między wykonywanym programem a systemem operacyjnym (są dostępne w asemblerze, w C, bibliotekach itd.)

Struktura systemu:

1. prostota, ale najczęściej nie ma dobrze określonej struktury, bo powstawały jako małe, proste, ograniczone, ale potem rozrastały się (MS DOS - max funkcjonalność, oszczędność miejsca, korzystanie z podstawowych procedur we/wy, pisanie bezpośrednio do pamięci ekranu;

0x01 graphic

Warstwowa struktura MS DOS

UNIX - ograniczona strukturalizacja: jądro (ciąg interfejsów i programy obsługi urządzeń) i programy systemowe, warstwy

użytkownicy

--- interfejs z użytkownikiem

programy shell i polecenia, programy użytkowe

kompilatory, biblioteki systemowe

---interfejs między funkcjami systemowymi a jądrem

sygnały system plików planowanie przydziału procesora

obsługa terminali wymiana zastępowanie stron

znakowe we/wy blokowe we/wy stronicowanie na żądanie

prog. ob. term. prog. ob. dysków pamięć wirtualna

---interfejs między jądrem a sprzętem

sterowniki terminali sterowniki urządzeń sterowniki pamięci

terminale dyski pamięć operacyjna

Struktura systemu UNIX

Za pośrednictwem funkcji systemowych jądro zarządza systemem plików, pamięcią, przydziela czas procesora itd.

Programy systemowe korzystają z zawartych w jądrze funkcji systemowych w celu wykonania użytecznych działań. Funkcje systemowe definiują interfejs programisty. Zbiór dostępnych programów systemowych określa interfejs użytkownika.

Podejście warstwowe

Odpowiedni sprzęt podział systemu operacyjnego na mniejsze, lepiej dobrane fragmenty lepsza kontrola nad komputerem korzystają programy użytkowe.

Metodą zstępującą można zdefiniować ogólne cechy i funkcje oraz wyodrębnić składowe systemu, zasada ukrywania informacji

Modularyzacja poprzez podejście warstwowe: dzielenie systemu operacyjnego na warstwy (poziomy), przy czym każda następna warstwa jest zbudowana na szczycie niższych warstw: najniższa (0) = sprzęt, najwyższa (N) = interfejs z użytkownikiem.

Warstwa M zawiera struktury danych i programy, które mogą być wywołane z wyższych warstw, sama natomiast może wywoływać operacje dotyczące niższych warstw.

Główna zaleta modularność, łatwiejsze wyszukiwanie błędów i weryfikacja. Implementacja każdej warstwy bazuje wyłącznie na operacjach dostarczanych przez warstwę niższą, żeby używać, nie trzeba nic wiedzieć o jej implementacjach, tylko trzeba wiedzieć, co one robią i jak je wywołać ukrywanie pewnych struktur danych, operacji sprzętu.

0x01 graphic

Maszyny wirtualne

W programach systemowych powyżej jądra można używać funkcji systemowych na równi z instrukcjami sprzętowymi sprzęt i funkcje traktowane tak, jakby należały do tego samego poziomu. Może być umożliwione łatwe wywoływanie programów systemowych przez programy użytkowe traktując je jak część sprzętu zatem koncepcja maszyny wirtualnej. Stosując planowanie przydziału procesora i mechanizm pamięci wirtualnej system operacyjny może tworzyć złudzenie, że wiele procesów pracuje na własnych procesorach z własną pamięcią + dodatkowe możliwości: funkcje systemowe, system plików (tego nie daje sprzęt).

Nie daje to żadnych dodatkowych funkcji, ale tworzy interfejs identyczny z podstawowym sprzętem. Każdy proces dostaje wirtualną kopię komputera. Łatwiejsza izolacja procesów i zasobów, unifikacja i standaryzacja oprogramowania (np. można uruchamiać programy pisane na inne systemy operacyjne), można „bawić się” innym systemem operacyjnym niż zainstalowany (WWW.VMware.com).

Java Virtual Machine: kompilator Javy wytwarza kod pośredni wykonywany przez JVM (musi być na danej maszynie, aby to mogło działać, w przeglądarkach internetowych).

7



Wyszukiwarka

Podobne podstrony:
Systemy operacyjne
5 Systemy Operacyjne 23 11 2010 Zarządzanie procesami
zasady grupy, java, javascript, oprogramowanie biurowe, programowanie, programowanie 2, UTK, systemy
Systemy Operacyjne lab4, Politechnika Wrocławska, Systemy Operacyjne
format[1], Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr I
System plików, zOthers, Systemy operacyjne i sieci komputerowe
quota, !!!Uczelnia, wsti, materialy, II SEM, systemy operacyjne linux
Rafał Polak 12k2 lab8, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
System żarowo odłogowy doc
System operacyjny
01 Systemy Operacyjne ppt
12 wspomaganie systemu operacyjnego pamiec wirtualna
Pytania do egzaminu z Systemow Operacyjnych cz, EdukacjaTEB
W2K3-15-raport, WAT, SEMESTR VII, Systemy operacyjne windows, Systemy operacyjne windows, sow, W2K3-
Pamięci dynamiczne RAM, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr I
Model ISO-OSI, szkola, systemy operacyjne, klasa 4
dobrucki,systemy operacyjne, Rodzaje pamięci

więcej podobnych podstron