Składowe systemu komputerowego
Transkrypt
Składowe systemu komputerowego
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 Programy systemowe i użytkowe System operacyjny Sprzęt komputerowy Użytkownik Przegląd rozwoju systemów operacyjnych 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, Przegląd rozwoju systemów operacyjnych 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. Przegląd rozwoju systemów operacyjnych 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 Przegląd rozwoju systemów operacyjnych 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: ● ● ● ● ● Dysk czyta następne zadanie z czytnika kart na dysk (kolejka zadań), 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). 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). Czytnik kart CPU Druka rka Przegląd rozwoju systemów operacyjnych 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: ● ● ● ● 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. Zalety: ● ● Szeregowanie zadań – decydowanie, które zadania z puli zadań mają być załadowane do pamięci operacyjnej. Wydajne wykorzystanie zasobów (CPU, pamięć operacyjna, urządzenia zewnętrzne). Wady: ● ● 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. Przegląd rozwoju systemów operacyjnych 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 Przegląd rozwoju systemów operacyjnych Systemy biurkowe (Desktop Systems) ● Początkowo: ● ● 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. Później: ● ● ● 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. Przegląd rozwoju systemów operacyjnych 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. Przegląd rozwoju systemów operacyjnych 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). Przegląd rozwoju systemów operacyjnych 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!