Podstawy informatyki System operacyjny dr inż. Adam Klimowicz
System operacyjny OS (ang. Operating System) Program komputerowy bądź zbiór programów, który zarządza udostępnianiem zasobów komputera aplikacjom.
Zadania systemu operacyjnego zarządzanie zasobami komputera, koordynacja pracy zasobów, ochrona danych i pamięci, automatyzacja najczęściej wykonywanych funkcji, ukrywanie przed aplikacjami sprzętu poprzez tworzenie abstrakcji, np. zbiory zapisanych klastrów na dysku widziane są jako pliki o symbolicznych nazwach; abstrakcja równoległości wykonywania programów; jednolity sposób dostępu do urządzeń.
Podział sposób przetwarzania Systemy przetwarzania bezpośredniego systemy interakcyjne, gdzie występuje bezpośrednia interakcja pomiędzy użytkownikiem a systemem i wykonywanie zadania użytkownika rozpoczyna się zaraz po przedłożeniu, Systemy przetwarzania pośredniego systemy wsadowe gdzie występuje znacząca zwłoka czasowa między przedłożeniem a rozpoczęciem wykonywania zadania i niemożliwa jest ingerencja użytkownika w wykonywanie zadania.
Podział liczba zadań Systemy jednozadaniowe niedopuszczalne jest rozpoczęcie wykonywania następnego zadania użytkownika przed zakończeniem poprzedniego, Systemy wielozadaniowe dopuszczalne jest istnienie jednocześnie wielu zadań (procesów), którym zgodnie z pewną strategią przydzielany jest procesor.
Podział liczba użytkowników Systemy dla jednego użytkownika, gdzie zasoby przeznaczone są dla jednego użytkownika (np. w przypadku komputerów osobistych), nie ma mechanizmów autoryzacji dostępu, a mechanizmy ochrony informacji są ograniczone, Systemy wielodostępne, gdzie wielu użytkowników może korzystać z zasobów systemu komputerowego, a system operacyjny gwarantuje ich ochronę przed niepowołaną ingerencją.
Wielozadaniowość SCHEDULER (algorytm szeregujący) algorytm rozwiązujący jedno z najważniejszych zagadnień informatyki jak rozdzielić czas procesora i dostęp do innych zasobów pomiędzy zadania, które w praktyce zwykle o te zasoby konkurują
Zagłodzenie procesu Sytuacja w środowisku wielozadaniowym, w której dany proces nie jest w stanie zakończyć działania, ponieważ nie ma dostępu do procesora lub innego współdzielonego zasobu. Występuje najczęściej na skutek niewłaściwej pracy algorytmu szeregowania, którego zadaniem jest sprawiedliwy przydział zasobów, lub nadmiernego obciążenia systemu.
Wywłaszacznie Technika używana w środowiskach wielowątkowych, w której algorytm szeregujący może wstrzymać aktualnie wykonywane zadanie (np. proces lub wątek), aby umożliwić działanie innemu.
Pamięć wirtualna Technika gospodarowania pamięcią operacyjną RAM pozwalająca na przydzielenie procesom więcej pamięci niż rzeczywista ilość pamięci fizycznej.
Pamięć wirtualna przeniesienie danych z ostatnio nieużywanej pamięci do pamięci masowej (np. twardego dysku), przeniesienie danych z pamięci masowej do wolnego obszaru pamięci, w przypadku braku wolnej pamięci zwalnianie poprzez przeniesienie danych z ostatnio nieużywanej pamięci do pamięci masowej (np. twardego dysku), itd.
Stronicowanie Stronicowanie jest jednym ze sposobów rozwiązania problemu zewnętrznej fragmentacji polegającym na dopuszczeniu nieciągłości logicznej przestrzeni adresowej procesu. Zostało wynalezione przez polskiego inżyniera Jacka Karpińskiego. W systemach komputerowych podział pamięci na mniejsze obszary o ustalonej lub zmiennej wielkości i przydzielanie tym blokom adresów fizycznych lub logicznych.
Stronicowanie w praktyce Pamięć fizyczna dzielona jest na bloki stałej długości zwane ramkami. Pamięć logiczna dzielona jest na bloki stałej długości zwane stronami. Rozmiary stron i ramek są identyczne. Przy wykonywaniu procesu strony z pamięci pomocniczej wprowadzane są w dowolne ramki pamięci operacyjnej.
Szamotanie (ang. thrashing) Sytuacja, w której proces jest zajęty głównie wymianą stron. Powoduje wyraźne zaburzenia wydajności systemu.
Tryb chroniony (ang. protected mode) Tryb pracy mikroprocesorów serii x86 wprowadzony w mikroprocesorze Intel 80286. Wprowadza wiele nowych udogodnień wspierających wielozadaniowość, takich jak: sprzętowa ochrona pamięci, wsparcie przełączania kontekstu procesora.
Budowa systemu operacyjnego Jądro systemu (ang. kernel). Powłoka (ang. shell). System plików (ang. file system).
Jądro systemu operacyjnego Centralny komponent współczesnych systemów operacyjnych. Głównym zadaniem jądra jest zarządzanie zasobami komputera.
Miejsce jądra w systemie APLIKACJE JĄDRO CPU PAMIĘĆ URZĄDZENIA
Warstwy abstrakcji Sposób na ukrycie szczegółów implementacyjnych Przykłady: Siedmiowarstwowy model sieciowy ISO/OSI Biblioteka graficzna OpenGL Strumienie wejścia-wyjścia
Warstwowy model systemu APLIKACJE JĄDRO ASSEMBLER FIRMWARE HARDWARE
Zadania jądra Zarządzanie procesami: uruchamianie aplikacji: ustalenie przestrzeni adresowej aplikacji załadowanie do pamięci kodu aplikacji ustawienie stosu i rozgałęzienie wykonania do aplikacji komunikacja międzyprocesowa Zarządzanie pamięcią: adresacja stronicowanie, segmentacja mechanizmy ochrony Zarządzanie wejściem i wyjściem Wywołania systemowe (ang. system calls)
Komunikacja międzyprocesowa IPC (ang. Inter Process Communication) sygnały pliki łącza komunikacyjne łącza nazwane komunikaty pamięć współdzielona semafory
Rodzaje Jądro monolityczne Całość systemu zawarta jest w tej samej przestrzeni adresowej pamięci i wykonuje się równolegle z głównymi wątkami jądra. Błąd w działaniu modułu może doprowadzić do wstrzymania pracy systemu. Mikrojądro Rozdzielenie funkcji jądra na różne warstwy. Najważniejsze, związane ze sprzętem pozostawione w jądrze, pozostałe przeniesione do przestrzeni użytkownika.
Powłoka Oprogramowanie dostarczające użytkownikowi funkcji do sterowania systemem operacyjnym
Rodzaje powłok Wiersz poleceń command.com (DOS) cmd.exe (Win32) bash (GNU/Linux) Graficzna Windows Explorer Gnome KDE
System plików Sposób organizacji i przechowywania plików w sposób umożliwiający łatwy i szybki dostęp
Systemy plików Dyskowy (np. FAT, FAT32, NTFS, ext2, ext3, ISO9660) Flash (np. JFFS2) Bazodanowy (np. dbfs) Transakcyjny Sieciowy (np. NFS, SMB)
Historia systemów operacyjnych Pierwsze systemy operacyjne: lata 50 XX w. Unix 1969 (Bell Labs) CP/M 1976 (Digital Research) MS-DOS 1981 (Microsoft) Mac OS 1984 (Apple) MS Windows 1985 (Microsoft)
CP/M 86
MS-DOS
Mac OS X
Mac OS 1.0
MS Windows 1.0
MS Windows 2.0
MS Windows 3.0
MS Windows 3.11
Windows 95/98
Windows XP
MS Windows Vista
Windows 7
Windows 8