Składowe systemu komputerowego Sprzęt (ang. hardware) dostarcza podstawowe zasoby systemu komputerowego: procesor, pamięć, urządzenia wejścia-wyjścia 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 (edytory, kompilatory, systemy baz danych, gry komputerowe, programy dla biznesu) określają sposoby użycia zasobów systemu do rozwiązywania zadań stawianych przez użytkowników. Użytkownicy (ludzie, maszyny, inne komputery).
Schemat systemu komputerowego Użytkownik Użytkownik Użytkownik Użytkownik Użytkownik Programy systemowe i użytkowe System operacyjny Sprzęt komputerowy
Systemy komputerów głównych ( Mainfraime Systems) Wczesne systemy goła maszyna (lata 1950-te) Struktura: duże maszyny obsługiwane przy pomocy konsoli; system jednoużytkownikowy; programista/użytkownik jako operator; taśmy papierowe i karty perforowane jako nośniki. Wczesne oprogramowanie: asemblery, kompilatory; programy łączące (linkers), programy ładujące (loaders); biblioteki typowych funkcji; sterowniki urządzeń (device drivers). Zalety wysoki poziom bezpieczeństwa. Wady nieefektywne wykorzystanie drogich zasobów niski poziom wykorzystania CPU,
Proste systemy wsadowe (Simple Batch Systems) Podstawowe cechy Konieczne zatrudnienie operatora (użytkownik operator). Użytkownik przygotowuje zadanie i przekazuje je operatorowi. Operator uruchamia zadanie i wyniki zwraca użytkownikowi. Skrócenie czasu ustawiania (set-up) przez grupowanie podobnych zadań. Automatyczne porządkowanie zadań automatyczne przekazywanie sterowania od jednego zadania do drugiego. prowadzenie kart sterujących w celu rozróżniania zadań itd. Zalety większa przepustowość Wady niska wydajność: długi czas obiegu zadania; szybki procesor i wolny czytnik kart/drukarka pracujące na przemian.
Proste systemy wsadowe (Simple Batch Systems) Rozwiązanie: praca w trybie pośrednim (off-line) czytniki kart (drukarki) obsługiwane przez pomocnicze komputery ładujące zadania na taśmy magnetyczne (drukujące wyniki z taśm) w trybie off-line; komputer główny czyta zadania z taśmy magnetycznej i zapisuje wyniki na inną taśmę (taśmy przenoszone ręcznie). Czytniki magnetyczne szybsze niż mechaniczne
Spooling (simultaneous peripheral operation on-line) Metoda nakładania operacji WE/WY jednego zadania na obliczenia innych zadań. Dysk pełni rolę bufora między czytnikiem kart a pamięcią. Podczas wykonywania jednego zadania system operacyjny: czyta następne zadanie z czytnika kart na dysk (kolejka zadań), Dysk wysyła wyniki poprzedniego zadania z dysku na drukarkę. Pula zadań (job pool) struktura danych pozwalająca systemowi wybierać następne zadania do wykonania (poprawia wykorzystanie CPU). Czytnik kart CPU Druka rka Zalety: zwiększenie wywykorzystanie procesora, jak i urządzeń WE/WY. Wady: mało wydajny dla szybkich procesorów (tylko jedno zadanie w pamięci operacyjnej).
Wieloprogramowe ( Multiprogrammed) systemy wsadowe Wiele zadań rezyduje w tym samym czasie w pamięci, a procesor jest im odpowiednio przydzielany (współbieżność) Niezbędne cechy systemu operacyjnego: Zalety: Wady: Szeregowanie zadań decydowanie, które zadania z puli zadań mają być załadowane do pamięci operacyjnej. Zarządzanie pamięcią system musi alokować pamięć dla wielu zadań. Planowanie przydziału procesora (CPU scheduling) system musi wybrać do uruchomienia jedno spośród wielu zadań w pamięci. Ochrona zadań na wszystkich etapach pobytu w systemie. Alokowanie urządzeń, dostarczanie procedur WE/WY. Wydajne wykorzystanie zasobów (CPU, pamięć operacyjna, urządzenia zewnętrzne). Użytkownik nie może ingerować w zadanie w trakcie jego wykonywania, np. reagować na błędy kompilacji, nie może na bieżąco testować programu itd. Długi obieg zadania od złożenia programu do odebrania wyników.
Systemy z podziałem czasu (Time-Sharing Systems) Procesor wykonuje na przemian wiele różnych zadań (wielozadaniowość, ang. multitasking), a przełączenia następują tak często, że użytkownicy mogą na bieżąco współdziałać z programami podczas ich wykonywania. Możliwość pracy interakcyjnej użytkownik wydaje bezpośrednio instrukcje systemowi lub programowi i otrzymuje natychmiastowe odpowiedzi (zazwyczaj przy użyciu klawiatury i ekranu monitora). Bezpośrednio dostępny systemu plików (on-line file system) użytkownik ma bezpośredni dostęp do plików z programami i danymi (zazwyczaj na dysku). Wymiana zadania pomiędzy pamięcią a dyskiem w trakcie jego wykonywania (swapping). Tworzenie pamięci wirtualnej (virtual memory), tzn. rozszerzenie pamięci operacyjnej pamięcią dyskową umożliwienie wykonywania zadań nie mieszczących się w pamięci operacyjnej. Wielu użytkowników może równocześnie dzielić jeden komputer każdy z nich odnosi wrażenie jakby dysponował swoim własnym. Wieloprogramowość i podział czasu procesora to podstawowe cechy nowoczesnych systemów operacyjnych
Systemy biurkowe (Desktop Systems) Początkowo: Później: Komputery osobiste (personal computers - PC): systemy komputerowe dedykowane dla pojedynczego użytkownika pojawiły się w latach 1970-tych. Brak potrzeby maksymalizowania wykorzystania CPU i urządzeń zewnętrznych. Mniej istotna ochrona plików, pamięci. Nacisk na maksimum wygody użytkownika i szybkość kontaktu z użytkownikiem. Systemy operacyjne: MS-DOS, wczesne Microsoft Windows, Apple Macintosh. Sieci komputerowe, Internet zmiana podejścia do kwestii ochrony i bezpieczeństwa (konieczność ochrony danych, systemów). Szybkie mikroprocesory, duże pamięci możliwość zastosowania cech systemów dużych komputerów (wielozadaniowość itd.). Nowa generacja systemów operacyjnych dla PC: Microsoft Windows NT/2000/XP, IBM OS/2, Apple Macintosh OS X, Linux.
Systemy wieloprocesorowe (Multiprocessor Systems) Systemy wieloprocesorowe z więcej niż jednym CPU w ścisłej komunikacji między sobą. Zwane także systemami równoległymi (parallel systems) lub mocno sprzężonymi (tightly coupled) procesory dzielą szynę systemową i zegar, czasami pamięć i urządzenia peryferyczne, komunikacja zwykle odbywa się przez pamięć dzieloną. Zalety: większa przepustowość, większa niezawodność (łagodna degradacja, tolerancja na awarie), ekonomika skali (oszczędność). Wieloprzetwarzanie symetryczne (symmetric multiprocessing: SMP): Każdy procesor wykonuje identyczną kopię systemu operacyjnego. Wiele procesów może być wykonywanych równocześnie bez spadku wydajności. Systemy: Sun Solaris, Linux, MS Windows 2000/XP, Mac OS X. Wieloprzetwarzanie asymetryczne (asymmetric multiprocessing): Każdy procesor ma przydzielone specyficzne zadanie; procesor główny (master) szereguje i przydziela pracę procesorom podrzędnym (slaves). Częściej spotykana w bardzo dużych systemach.
Systemy rozproszone (Distributed Systems) Systemy luźno powiązane (loosely coupled) każdy procesor ma swoją własną pamięć lokalną; procesory komunikują się między sobą za pomocą różnych linii komunikacyjnych (np. szybkie szyny danych, linie telefoniczne). Zalety: podział zasobów (w różnych miejscach można mieć różne zasoby), przyspieszanie obliczeń (rozdzielanie obliczeń między wiele procesorów, używanie mniej obciążonych komputerów tzw. dzielenie obciążeń), niezawodność (awaria jednego komputera nie wstrzymuje pracy pozostałych), komunikacja (wymiana informacji, plików itd. między węzłami). Ogromnie zyskały na znaczeniu w ostatnich latach. W przyszłości powinny jeszcze bardziej się zyskać na znaczeniu coraz szybsze i tańsze linie komunikacyjne. Możliwość łączenia przez Internet Sieci komputerowe: lokalne (LAN), miejskie (MAN), rozległe (WAN), oparte o technologie bezprzewodow wspierają rozwój takiej architektury Systemy klient-serwer: systemy serwerów obliczeń, systemy serwerów plików. Systemy Peer-to-Peer (P2P): systemy wymiany plików, np. Napster, Gnutella. Rozproszone systemy operacyjne: systemy w bliskiej komunikacji przez sieć. Rozwijane obecnie systemy Gridowe rozproszone systemy obliczeń oraz baz danych o zasięgu globalnym.
Przegląd rozwoju systemów operacyjnych Systemy klastrowe (zgrupowane) (Cluster Systems) Według ogólnie akceptowanej definicji zgrupowane w klaster komputery dzielą pamięć dyskową i są blisko ze sobą powiązane poprzez sieć LAN. Różnią się od systemów równoległych tym, że złożone są z dwu lub więcej indywidualnych systemów sprzężonych razem. Zwykle są używane w celu dostarczania serwisów wysokiego poziomu dostępności (high-availability services), tj. takich serwisów, które będą dostępne nawet gdy jeden lub więcej systemów w klastrze ulegnie awarii. Tryby pracy asymetryczny: jeden komputer pozostaje w pogotowiu (hot-standby host) monitorując aktywne serwery aplikacji gdy któryś z nich ulegnie awarii, wówczas przejmuje jego rolę. symetryczny: wszystkie komputery klastra działają jako aktywne serwery aplikacji i zarazem monitorują się nawzajem na wypadek awarii. Inne rodzaje klastrów: równoległe: wiele komputerów ma dostęp do tych samych danych w dzielonej pamięci masowej (np. Oracle Parallel Server) potrzebna synchronizacja, np. w formie distributed lock manager (DLM); w sieciach rozległych, np. storage-area networks (SAN) wiele różnych systemów podłączonych do wielu jednostek pamięci masowej poprzez WAN.
Przegląd rozwoju systemów operacyjnych Systemy czasu rzeczywistego (Real-Time Systems) Używane jako sterowniki urządzeń o ściśle określonym celu. Surowe wymagania czasowe Często sprzężenie zwrotne. Rygorystyczne systemy czasu rzeczywistego (hard real-time systems): pamięć pomocnicza mała lub jej brak, dane przechowywane w pamięci o krótkim czasie dostępu lub pamięci tylko do odczytu (ROM); w konflikcie z systemami z podziałem czasu dlatego nie są realizowane w uniwersalnych systemach operacyjnych. Zastosowania do sterowania procesami przemysłowymi, nadzorowania eksperymentów naukowych, obrazowania badań medycznych itd. Łagodne systemy czasu rzeczywistego (soft real-time systems): krytyczne zadanie do obsługi w czasie rzeczywistym otrzymuje pierwszeństwo przed innymi zadaniami, łagodniejsze wymagania czasowe mogą występować pewne opóźnienia. Zastosowania w technikach multimedialnych, wirtualnej rzeczywistości, zaawansowanych projektach badawczych wymagających systemów operacyjnych o rozbudowanych właściwościach. Znajdują się w większości współczesnych systemów operacyjnych, (większość wersji systemu UNIX, Windows XP).
Systemy kieszonkowe (Handheld Systems) Personal digital assistants (PDA), takie jak Palm, Pocket-PC, telefony komórkowe W porównaniu np. z komputerem PC dysponują niewielką pamięcią, wolnym procesorem, małym ekranem wyzwania dla twórców systemów operacyjnych; zwykle pełnią wyspecjalizowane funkcje. Ograniczenia w funkcjonalności są równoważone przez ich wygodę i przenośność (obecnie powszechny jest również dostęp do Internetu). Użyteczność i rola systemów kieszonkowych ciągle wzrasta!