Systemy operacyjne - Wprowadzenie do systemów operacyjnych

1. Komponenty systemu operacyjnego:
  • hardware (zapewnia zasoby systemu komputerowego)
  • system operacyjny (tworzy środowisko, w którym użytkownik może wykonywać programy w sposób wygodny i wydajny)
  • aplikacje (określa sposób w jaki używany jest hardware)
  • użytkownicy (osoby korzystające ze wszystkich komponentów)
2. Schemat systemu operacyjnego:


3. System operacyjny to zaawansowane oprogramowanie pozwalające użytkownikom na korzystanie ze zasobów sprzętowych systemu komputerowego.

4. Zadania systemu komputerowego:
  • zarządzanie zasobami komputera (np. procesory, pamięć RAM, urządzenia wejścia-wyjścia, porty komunikacyjne, magistrale systemowe)
5. Popularne architektury systemu operacyjnego:
  • systemy ogólnego przeznaczenia (komputery osobiste, stanowiska pracy)
  • systemy czasu rzeczywistego (systemy monitoringu, systemy przemysłowe)
  • systemy wbudowane (mikrokontrolery)
  • systemy wielozadaniowe (procesor jest przypisywany do różnych zadań i przełącza się pomiędzy nimi np. sekwencyjnie)
  • obliczenia rozproszone
6. Architektura komputerów: 
  • Architektura harwardzka 
  • Zmodyfikowana architektura harwardzka
  • SHARC
  • Architektura von Neumanna
  • Zmodyfikowana architektura von Neumanna
7. Schemat architektury harwardzkiej (lepsza, efektywniejsza, droższa)

  • są dwie niezależne magistrale - jedna dla instrukcji, druga dla danych
  • procesor ma jednoczesny i niezależny dostęp do programu i danych
8. Schemat architektury von Neumanna (popularniejsza, bo tańsza)



  • komputer podzielony jest na 3 części: procesor, pamięć i urządzenia wejścia-wyjścia
  • program i dane są w tej samej pamięci współdzielonej
  • procesor odczytuje instrukcje programu i ma dostęp do danych poprzez jeden kanał (nie da się jednocześnie!)
Rejestry:
  • licznik rozkazów (licznik programów) - służy do wskazania adresu kolejnej instrukcji do pobrania i wykonaniu
  • rejestr rozkazów - służy do umieszczenia instrukcji celem jej dekodowania i wykonania
  • rejestr flagowy (rejestr stanu procesora) -  odzwierciedla stan ostatnio wykonanej operacji arytmetycznej lub logicznej
Cykl von Neumanna:

Adres komórki pamięci, od której rozpoczyna się kod następnego rozkazu do wykonania, przechowywany jest w liczniku rozkazów. Zawartość tego rejestru wystawiana jest na szynę adresową magistrali systemowej w celu pobrania z pamięci kodu rozkazu. Po zdekodowaniu operacji licznik ten zwiększany jest odpowiednio do długości pobranego rozkazu, w ten sposób wskazuje następny rozkaz do wykonania.

9. Typowe operacje wykonywane przez procesor:
  • kopiowania (z pamięci do rejestru, z rejestru do pamięci, z pamięci do pamięci)
  • arytmetyczne (dodawanie, odejmowanie, zmiana znaku itd.)
  • bitowe (AND, OR, NOT, XOR, ...)
  • instrukcje skoku

10. Typy architektury zestawu instrukcji procesora:
  • CISC (rozbudowana lista rozkazów, duża liczba typów adresowania dostępna w rozkazach wewnętrznych, mała liczba rejestrów roboczych w procesorze, zróżnicowane czasy wykonywania rozkazów, układ sterowania procesora jest przeważnie mikroprogramowany)
  • RISC (ograniczona lista rozkazów, rozkazy wewnętrzne mają prostą treść operacyjną, mała liczba typów adresowania dostępna w rozkazach wewnętrznych, duża liczba rejestrów roboczych w procesorze, mała liczba formatów rozkazów wewnętrznych, ujednolicony czas wykonania rozkazów, układ sterowania procesora jest sprzętowy)
11. DMA – technika, w której sprzęt komputerowy podłączony do płyty głównej, np. karta graficzna, karta dźwiękowa, karta sieciowa czy kontroler dysku twardego, mogą korzystać z pamięci operacyjnej RAM lub portów we-wy, pomijając przy tym CPU. 

KROK 1: System operacyjny odczytuje bufor z kolejki buforów
KROK 2: Sterownik urządzenia ustawia w rejestrze DMA źródłowy oraz docelowy adres pamięci i długość danych
KROK 3: Kontroler DMA rozpoczyna przysłanie danych (podczas przesyłania procesor może robić inne rzeczy)
KROK 4: Kiedy operacja się zakończy, kontroler DMA wysyła przerwanie do procesora.

12. Przerwania powodują przerwanie aktualnie wykonywanego programu i wykonania procedury obsługi danego przerwania. Przerwania mogą być sprzętowe (generowane przez np. urządzenia wejścia-wyjścia) oraz programowe (z kodu programu wywoływana jest procedura obsługi przerwania).

Więcej o przerwaniach: TUTAJ!

13. Hierarchia pamięci (im wyżej tym drożej i szybciej)

14. Szybsza pamięć może być używana jako pamięć podręczna dla wolniejszych pamięci. W przypadku, gdy jakaś informacja jest potrzebna najpierw przeszukiwana jest pamięć Cache (w zależności od wyników wyszukiwania informacja jest kopiowana do Cache). Konstrukcja pamięci podręcznej jest kompromisem pomiędzy rozmiarem Cache, a algorytmem zastępowania stron).  W hierarchicznej strukturze pamięci te same informacje mogą pojawiać się na różnych poziomach. Konieczne jest zagwarantowanie (przy użyciu metod sprzętowych lub programowych), żeby informacje były spójne na wszystkich poziomach.