Systemy Operacyjne. Wykład dla I roku Informatyki Stosowanej i II roku Fizyki Komputerowej Wydziału FAIS UJ Rok akademicki: 2004/05



Podobne dokumenty
Architektura systemu komputerowego

Składowe systemu komputerowego

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Systemy operacyjne. Literatura: A. Silberschatz, J.L. Peterson, P.B. Galwin, Podstawy systemów operacyjnych, WNT, Warszawa 2006

Wprowadzenie do systemów operacyjnych. mgr inż. Krzysztof Szałajko

Wprowadzenie do systemów operacyjnych

Systemy operacyjne. Zadania systemu operacyjnego. System komputerowy. Wprowadzenie. Dr inż. Ignacy Pardyka

Budowa systemów komputerowych

Struktura systemów komputerowych

Systemy operacyjne. Paweł Pełczyński

Informatyka. informatyka i nauki komputerowe (computer science)

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Działanie systemu operacyjnego

Wprowadzenie do systemów operacyjnych

Architektura i administracja systemów operacyjnych

Systemy operacyjne. Wojciech Kwedlo Wydział Informatyki PB, p. 127 aragorn.pb.bialystok.pl/~wkwedlo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

Technologia informacyjna. Urządzenia techniki komputerowej

Działanie systemu operacyjnego

Mikroprocesor Operacje wejścia / wyjścia

ZADANIA SYSTEMÓW OPERACYJNYCH

Systemy operacyjne. dr inż. Jerzy Sas.

Działanie komputera i sieci komputerowej.

Struktury systemów operacyjnych

Systemy operacyjne system przerwań

Systemy operacyjne III

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

Systemy operacyjne. wykład 1- System operacyjny i jego zadania. dr Marcin Ziółkowski

System operacyjny System operacyjny

Urządzenia wejścia-wyjścia

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

Systemy operacyjne. Tomasz Lewicki. marzec WWSIS, Wrocław. Tomasz Lewicki (WWSIS, Wrocław) Systemy operacyjne marzec / 25

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

LEKCJA TEMAT: Zasada działania komputera.

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

Systemy Operacyjne. wykład 1. Adam Kolany. Październik, Instytut Techniczny Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu

Architektura komputerów

Czujniki obiektowe Sterowniki przemysłowe

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

System komputerowy. System komputerowy

PRZEWODNIK PO PRZEDMIOCIE

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Architektura systemów komputerowych. dr Artur Bartoszewski

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Jądro systemu operacyjnego

Płyta główna (ang. motherboard) najważniejsza płyta drukowana urządzenia elektronicznego, na której zamontowano najważniejsze elementy urządzenia, umo

PRZEWODNIK PO PRZEDMIOCIE

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

Opis efektów kształcenia dla modułu zajęć

Architektura komputerów. Układy wejścia-wyjścia komputera

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Q E M U.

Wykład 2. Struktury systemów komputerowych. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Systemy operacyjne. Wojciech Kwedlo Wydział Informatyki PB, p. 205 aragorn.pb.bialystok.pl/~wkwedlo/dydaktyka.

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Sieciowe Systemy Operacyjne

DZANIA I MARKETINGU BIAŁYSTOK,

Zarządzanie pamięcią operacyjną

SYSTEMY WEJŚCIA-WYJŚCIA

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Architektura komputerów

Systemy wejścia-wyjścia. wyjścia

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

Urządzenia zewnętrzne

Architektura komputerów

Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola

Systemy rozproszone System rozproszony

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

Systemy Operacyjne sprzęt

Wykład 7. Zarządzanie pamięcią

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

4. Procesy pojęcia podstawowe

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

ARCHITEKTURA PROCESORA,

Architektura komputera

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Struktury systemów operacyjnych Usługi, funkcje, programy. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące sieci komputerowych

Podstawy Informatyki Systemy operacyjne

WIELODOSTĘPNE SYSTEMY OPERACYJNE 1 (SO1)

Wstęp do Informatyki. Klasyfikacja oprogramowania

Architektura komputerów

Standard określania klasy systemu informatycznego resortu finansów

Architektura mikroprocesorów TEO 2009/2010

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

Programowanie współbieżne Wykład 2. Iwona Kochańska

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Transkrypt:

Systemy Operacyjne Wykład dla I roku Informatyki Stosowanej i II roku Fizyki Komputerowej Wydziału FAIS UJ Rok akademicki: 2004/05 http://th-www.if.uj.edu.pl/~placzek/dydaktyka/so/ Dr hab. Wiesław Płaczek Pokój 446, e-mail: placzek@th.if.uj.edu.pl

I termin: Egzamin pisemny poniedziałek, 13.06.2005, godz. 16:00 czas trwania: ok. 2 godziny sale: 055 i 056 II termin: poniedziałek, 05.09.2005, godz. 16:00 czas trwania: ok. 2 godziny sala: 055

Plan wykładu: 1. Wprowadzenie i przegląd. 2. Struktury systemów komputerowych. 3. Struktury systemów operacyjnych. 4. Zarządzanie procesami. 5. Zarządzanie zasobami pamięci.. 6. Zarządzanie operacjami wejścia-wyjścia. 7. Ochrona i bezpieczeństwo. 8. Przykłady konkretnych systemów: Linux, FreeBSD, Windows XP.Windows NT, ). Wiesław Płaczek Systemy Operacyjne: Wykład 1 3

Literatura: 1. A. Silberschatz, P.B. Galvin, G. Gagne, Podstawy systemów operacyjnych, wydanie szóste, WNT 2005. 2. A. Silberschatz, P.B. Galvin, G. Gagne, Operating System Concepts with Java, sixth edition,wiley 2004. 3. A. Silberschatz, P.B. Galvin, Podstawy systemów operacyjnych, wydanie piąte, WNT 2002. 4. U. Vahalia, Jądro systemu UNIX nowe horyzonty, WNT 2001. 5. A.M. Lister, R.D. Eager, Wprowadzenie do systemów operacyjnych. 6. G. Coulouris, J. Dollimore, T. Kindberg, Systemy rozproszone podstawy i projektowanie. 7. M. Ben-Ari, Podstawy programowania współbieżnego i rozproszonego. 8. D.P. Bovet, M. Cesati, Linux kernel. 9. Dokumentacja systemu Linux on-line: http://tldp.org/, polski mirror: http://sunflower.man.poznan.pl/ldp/. Wiesław Płaczek Systemy Operacyjne: Wykład 1 4

Co to jest system operacyjny? System operacyjny program, który działa jako pośrednik między użytkownikiem komputera a sprzętem komputerowym. Zadania systemu operacyjnego: Zarządzanie zasobami komputera: procesory, pamięć, urządzenia wejścia-wyjścia, porty komunikacyjne itd. Ukrywanie szczegółów sprzętowych przez tworzenie abstrakcyjnych obiektów (maszyn wirtualnych). Tworzenie środowiska, w którym użytkownik może wydajnie i wygodnie wykonywać programy. Wiesław Płaczek Systemy Operacyjne: Wykład 1 5

Składowe systemu komputerowego Sprzęt (ang. hardware) dostarcza podstawowe zasoby systemu komputerowego: procesor (jednostka centralna,, ang. central processing unit CPU), pamięć, urządzenia wejścia-wyjścia (WE/WY) itd. System operacyjny nadzoruje i koordynuje posługiwanie się sprzętem przez różne programy aplikacyjne (użytkowe) pracujące na zlecenie różnych użytkowników. Programy aplikacyjne (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). Wiesław Płaczek Systemy Operacyjne: Wykład 1 6

Schemat systemu komputerowego Użytkownik Użytkownik 11 Użytkownik 2 Użytkownik 3 Użytkownik n Kompilator Asembler Edytor tekstu Baza danych Programy systemowe i i użytkowe System operacyjny Sprzęt komputerowy Wiesław Płaczek Systemy Operacyjne: Wykład 1 7

Przegląd rozwoju systemów operacyjnych I. Systemy komputerów głównych (Mainfraime Systems) A) 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, znaczący czas potrzebny na czynności operatorskie. Wiesław Płaczek Systemy Operacyjne: Wykład 1 8

B) Proste systemy wsadowe (Simple Batch Systems) Konieczne zatrudnienie operatora (użytkownik operator). Użytkownik przygotowuje zadanie (na kartach perforowanych) 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. Wprowadzenie 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 naprzemian. 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! Wiesław Płaczek Systemy Operacyjne: Wykład 1 9

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ń), 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 wydajności procesora, jak i urządzeń WE/WY. Wady: Mało wydajny dla szybkich procesorów (tylko jedno zadanie w pamięci operacyjnej). Czytnik kart dysk CPU Schemat spoolingu drukarka Wiesław Płaczek Systemy Operacyjne: Wykład 1 10

C) Wieloprogramowe (Multiprogrammed Multiprogrammed) systemy wsadowe Wiele zadań rezyduje w tym samym czasie w pamięci, a procesor jest im odpowiednio przydzielany (współbieżność); Np. gdy wykonujące się zadanie potrzebuje zaczekać na jakąś usługę (np. WE/WY), to uruchamiane jest inne. Niezbędne cechy systemu operacyjnego: 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. Zalety: 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. Wiesław Płaczek Systemy Operacyjne: Wykład 1 11

D) 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 zagadnienie nowoczesnych systemów operacyjnych! Wiesław Płaczek Systemy Operacyjne: Wykład 1 12

II. 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ść zaadaptowania 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 (Darwin), Linux. Wiesław Płaczek Systemy Operacyjne: Wykład 1 13

III. 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ść). i. 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. ii. 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. Wiesław Płaczek Systemy Operacyjne: Wykład 1 14

IV. 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, a w przyszłości powinny jeszcze bardziej się rozwijać coraz szybsze i tańsze linie komunikacyjne! Internet, a w szczególności World Wide Web (CERN, 1990), miał i ma przemożny wpływ na rozwój współczesnych systemów operacyjnych. Sieci komputerowe: lokalne (LAN), miejskie (MAN), rozległe (WAN), oparte o technologie bezprzewodowe sieci małoobszarowe (small-area network: SAN). 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. Wiesław Płaczek Systemy Operacyjne: Wykład 1 15

V. 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. Tryb 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ę. Tryb symetryczny: wszystkie komputery klastra działają jako aktywne serwery aplikacji i zarazem monitorują się nawzajem na wypadek awarii. Inne rodzaje klastrów: klastry 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); klastry w sieciach rozległych, np. storage-area networks (SAN) wiele różnych systemów podłączonych do wielu jednostek pamięci masowej poprzez WAN. Wiesław Płaczek Systemy Operacyjne: Wykład 1 16

VI. Systemy czasu rzeczywistego (Real-Time Systems) Używane jako sterowniki urządzeń o ściśle określonym celu. Surowe wymagania czasowe. Nierzadko 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; brak wsparcia ze strony uniwersalnych systemów 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). Wiesław Płaczek Systemy Operacyjne: Wykład 1 17

VII. Systemy kieszonkowe (Handheld Systems) Personal digital assistants (PDA), takie jak Palm, Pocket-PC, telefony komórkowe coraz bardziej zyskują na znaczeniu! 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! Wędrówka cech Wiele własności dawnych systemów operacyjnych, opracowanych np. dla komputerów głównych (mainfraimes), zostało zaadaptowanych przez późniejsze systemy operacyjne, np. dla PC, a nawet dla PDA. Np. sporo idei systemu MULTICS (MIT, 1965-70) zastosowano przy projektowania systemu UNIX (Bell Labs, ok. 1970), którego z kolei wiele cech przeniknęło w latach 1980-tych i 1990-tych do systemów operacyjnych komputerów PC, takich jak Linux, IBM OS/2, Microsoft Windows NT, Mac OS X (np. wielodostęp, mechanizmy sieciowe itd.). Aby zrozumieć nowoczesne systemy operacyjne warto poznawać historię rozwoju systemów operacyjnych (dawne idee mogą się odradzać). Wiesław Płaczek Systemy Operacyjne: Wykład 1 18

Środowiska obliczeniowe (Computing Environments) Tradycyjne obliczenia W przeszłości typowymi środowiskami obliczeniowymi były: przedsiębiorstwo, instytucja, biuro, czy pojedynczy komputer; komunikacja zdalna była utrudniona. Wraz z rozwojem sieci przewodowych i bezprzewodowych oraz technologii WWW środowiska obliczeniowe stają się coraz bardziej rozproszone i globalne. Obliczenia oparte na WWW (Web-based computing) Rozpowszechnienie WWW sprawiło, że coraz więcej coraz bardziej różnorodnych urządzeń ma do niego dostęp: PC, PDA, telefony komórkowe itd. Środowisko obliczeniowe WWW zwiększyło znaczenie łączności sieciowej w odniesieniu do urządzeń sprzętowych oraz systemów operacyjnych. Powstała nowa kategoria urządzeń: balansery obciążeń (load balancers) rozdzielają połączenia sieciowe w ramach puli podobnych serwerów. Obliczenia wbudowane (embedded computing) Najbardziej rozpowszechnionymi formami komputerów są komputery wbudowane, np. w samochodach, robotach produkcyjnych, magnetowidach, kuchenkach mikrofalowych, systemach alarmowych itd. Ich celem jest na ogół wykonywanie bardzo specjalizowanych funkcji. Komputery wbudowane działają często pod nadzorem wbudowanych systemów czasu rzeczywistego. Systemy operacyjne tego typu urządzeń mają dość ograniczone możliwości. Zastosowania oraz możliwości systemów wbudowanych stale się zwiększają! Wiesław Płaczek Systemy Operacyjne: Wykład 1 19

Struktury systemów komputerowych Działanie systemu komputerowego. Struktura wejścia-wyjścia. Struktura pamięci. Hierarchia pamięci. Ochrona sprzętowa. Wiesław Płaczek Systemy Operacyjne: Wykład 1 20

Architektura systemu komputerowego Dysk Dysk Klawiatura Drukarka Monitor Mysz Mysz Jednostka centralna (CPU) Sterownik dysku Sterownik USB Sterownik wideo Szyna systemowa Pamięć operacyjna Wiesław Płaczek Systemy Operacyjne: Wykład 1 21

Działanie systemu komputerowego CPU i sterowniki urządzeń (device controllers) są połączone wspólną szyną systemową (system bus). CPU i sterowniki mogą działać współbieżnie. Każdy sterownik odpowiada za określony typ urządzenia (np. napędy dysków, monitor, USB itd.). Każdy sterownik ma swój lokalny bufor. CPU przesyła dane między pamięcią operacyjną a lokalnymi buforami. Operacje wejścia-wyjścia odbywają się między urządzeniami a lokalnymi buforami sterowników. Sterownik informuje CPU o zakończeniu swojej operacji za pomocą przerwania (interrupt). Wiesław Płaczek Systemy Operacyjne: Wykład 1 22

Mechanizm przerwań Przerwanie przekazuje sterowanie do procedury obsługi przerwania, zwykle poprzez wektor przerwań zawierający adresy wszystkich procedur obsługi (stosowane np. w systemach UNIX, MS-DOS). W architekturze przerwań trzeba uwzględniać przechowywanie adresu przerwanego rozkazu. Podczas obsługi jednego przerwania inne przerwania są wyłączone, aby uchronić przed jego utratą. Przerwanie generowane przez oprogramowanie nazywa się pułapką (trap) może być spowodowane przez jakiś błąd (np. dzielenie przez zero) lub na życzenie użytkownika. System operacyjny (SO) przechowuje stan CPU zapamiętując zawartość rejestrów i licznika rozkazów. SO ustala rodzaj przerwania przy pomocy: odpytywania (polling) lub wektorowego systemu przerwań. Oddzielne segmenty kodu określają działania, jakie należy podjąć dla każdego typu przerwania. Nowoczesne systemy operacyjne są sterowane przerwaniami (interrupt driven). Wiesław Płaczek Systemy Operacyjne: Wykład 1 23

Struktura wejścia-wyjścia wyjścia (WE/WY) Przerwania wejścia-wyjścia Przed operacją WE/WY CPU określa zawartość rejestrów w sterowniku. Sterownik sprawdza stan swoich rejestrów aby określić rodzaj działania, a następnie wykonuje to działanie (np. dla operacji czytania przesyła dane z urządzenia do swojego lokalnego bufora). Po zakończeniu działania sterownik informuje o tym CPU za pomocą przerwania. Synchroniczne WE/WY (synchronous I/O) CPU czeka na zakończenie operacji WE/WY. Nieefektywne wykorzystanie CPU i urządzeń WE/WY! Asynchroniczne WE/WY (asynchronous I/O) rozpoczęcie operacji WE/WY i kontynuowanie działań systemu operacyjnego lub programu użytkownika bez czekania na zakończenie. Tablica stanów urządzeń (device status table) określająca typ urządzeń, ich adresy i stany (wolne, zajęte, ) potrzebna do obsługi wielu urządzeń. Kolejka oczekujących zamówień dla każdego urządzenia do obsługi zamówień wielu procesów. Efektywniejsze wykorzystanie CPU i urządzeń WE/WY. Na koniec procedura obsługi przerwania urządzenia WE/WY zwraca sterowanie do programu użytkownika, do pętli czekania, etc. Wiesław Płaczek Systemy Operacyjne: Wykład 1 24

Struktura DMA (Direct Memory Access) Instrukcje WE/WY CPU Pamięć Urządzenia WE/WY Używana dla szybkich urządzeń WE/WY zdolnych do transmisji danych z szybkością zbliżoną do szybkości pamięci operacyjnej (np. dyski, sieci komunikacyjne). Sterownik urządzenia przesyła blok danych między własnym buforem a pamięcią bez interwencji procesora. Przerwanie jest generowane na cały blok danych, a nie po każdym przesłanym bajcie (jak dla powolnych urządzeń WE/WY). Działanie: SO wybiera bufor z kolejki buforów do przesłania. Moduł obsługi urządzenia (device driver) ustawia w rejestrach DMA adresy źródła i celu oraz długość transmisji. Sterownik DMA otrzymuje rozkaz do zainicjowania operacji WE/WY. Podczas transmisji danych procesor może wykonywać inne zadania. Po zakończeniu operacji sterownik DMA wysyła procesorowi przerwanie. Duża szybkość operacji WE/WY. Sterownik DMA kradnie cykle pamięci procesorowi, co może spowalniać jego działanie. Wiesław Płaczek Systemy Operacyjne: Wykład 1 25

Struktura pamięci Pamięć operacyjna lub główna (main memory) jedyny wielki obszar pamięci dostępny bezpośrednio procesorowi (za pośrednictwem szyny pamięci); w wielu architekturach stosowane jest WE/WY odwzorowywane w pamięci (memory-mapped I/O), np. ekran monitora w IBM PC. Pamięć pomocnicza (secondary storage) rozszerzenie pamięci operacyjnej dające możliwość trwałego przechowywania dużej ilości danych (dyski magnetyczne, taśmy magnetyczne, dyski elektroniczne USB, tzw. Pendrives). Dysk magnetyczny metalowa lub szklana płyta pokryta materiałem magnetycznym; powierzchnia logicznie podzielona na ścieżki (tracks), a te z kolei na sektory (sectors); wiruje z dużą prędkością w napędzie dysku; połączony z komputerem wiązką przewodów zwaną szyną WE/WY; sterownik dysku i sterownik macierzysty (po stronie szyny WE/WY) nadzorują przesyłanie danych między dyskiem a komputerem (sterowniki dysków mają zwykle pamięć podręczną, która jest używana do przesyłania danych z dysku lub na dysk). Taśma magnetyczna taśma pokryta materiałem magnetycznym, znajduje się na szpuli i przewija się do przodu lub do tyłu pod głowicą odczytująco-zapisującą; znacznie wolniejsza od dysku, ale może być kilkakrotnie pojemniejsza; używana głównie do przechowywania rzadko używanych danych (np. archiwizacja, kopie zapasowe, czyli tzw. backup). Przenośny dysk elektroniczny USB (USB Mobile Disk) elektroniczne urządzenie pamięci nieulotnej; pojemność do kilku GB, duża szybkość dostępu. Wiesław Płaczek Systemy Operacyjne: Wykład 1 26

Hierarchia pamięci Rejestry Pamięć podręczna Szybkość Ulotność Koszty Pamięć operacyjna Dysk elektroniczny Dysk magnetyczny Dysk optyczny Taśmy magnetyczne Szybszy system pamięci może być używany jako pamięć podręczna (cache) dla wolniejszego systemu pamięci. Wiesław Płaczek Systemy Operacyjne: Wykład 1 27

Przechowywanie podręczne (Caching) Stosowanie pamięci podręcznej (cache) kopiowanie informacji, która może być potrzebna (np. CPU), do szybszego systemu pamięci na okres przejściowy. Gdy potrzebny jest jakiś fragment informacji, najpierw sprawdza się, czy nie ma go w pamięci podręcznej jeżeli nie, to się go do niej sprowadza. Zarządzanie pamięcią podręczną (cache management) jest ważnym zagadnieniem projektowym odnośnie sprzętu oraz systemów operacyjnych odpowiedni dobór wielkości pamięci podręcznej i polityki zastępowania w niej informacji może sprawić, że 80 95% wszystkich dostępów będzie odnosić się do pamięci podręcznej. Zgodność i spójność (Coherency and Consistency) W hierarchicznej strukturze pamięci te same dane mogą występować na różnych jej poziomach. Np. chcemy zwiększyć o 1 liczbę całkowitą N znajdującą się w pliku na dysku odpowiedni fragment pliku zostanie skopiowany do pamięci operacyjnej, następnie do pamięci podręcznej, a wreszcie do rejestru wewnętrznego z chwilą wykonania operacji zwiększenia w rejestrze, wartość N będzie różna w różnych systemach pamięci stanie się taka sama dopiero po jej przekopiowaniu w dół. Należy zadbać o to aby informacja na różnych poziomach pamięci była zgodna i spójna sprzętowo lub w ramach systemu operacyjnego. Wiesław Płaczek Systemy Operacyjne: Wykład 1 28

Ochrona sprzętowa Dualny tryb operacji: Dzielenie zasobów systemowych wymaga od systemu operacyjnego zapewnienia, że niepoprawny program nie spowoduje, że inne programy będą działać nieprawidłowo. Rozwiązanie wyposażenie sprzętu w środki umożliwiające co najmniej dwa tryby pracy: 1) Tryb użytkownika (user mode) działania w imieniu użytkownika. 2) Tryb monitora (systemu, nadzorcy) działania w imieniu SO. Sprzęt posiada bit trybu (mode bit) do wskazywania bieżącego trybu pracy: monitor (0) albo użytkownik (1). Przy każdorazowym wystąpieniu przerwania lub pułapki sprzęt zmienia tryb pracy z trybu użytkownika na tryb monitora. Potencjalnie niebezpieczne rozkazy kodu maszynowego są oznaczane jako rozkazy uprzywilejowane (privileged instructions), które mogą być wykonywane tylko w trybie monitora. Wiesław Płaczek Systemy Operacyjne: Wykład 1 29

Ochrona wejścia-wyjścia: wyjścia: Wszystkie rozkazy WE/WY są uprzywilejowane! Konieczne jest zapewnienie, że program użytkownika nigdy nie przejmie kontroli nad komputerem w trybie pracy monitora (np. wstawiając nowy adres w wektorze przerwań). Ochrona pamięci: Trzeba zapewnić ochronę pamięci przynajmniej dla wektora przerwań i procedur obsługi przerwań. Ochronę pamięci można uzyskać za pomocą dwu rejestrów określających zakres dopuszczalnych adresów programu: Rejestr bazowy (base register) zawiera najmniejszy dopuszczalny adres fizyczny pamięci. Rejestr graniczny (limit register) zawiera rozmiar obszaru pamięci. Pamięć poza tak zdefiniowanym obszarem jest chroniona! Wiesław Płaczek Systemy Operacyjne: Wykład 1 30

Sprzętowa ochrona adresów pamięci Baza Baza + granica Adres Tak Procesor < Nie Nie Tak Pamięć Przejście pod nadzór systemu operacyjnego: błąd adresowania Rozkazy ładowania rejestrów bazowego i granicznego są rozkazami uprzywilejowanymi. Pracując w trybie monitora system operacyjny ma nieograniczony dostęp do pamięci zarówno monitora jak i użytkownika. Wiesław Płaczek Systemy Operacyjne: Wykład 1 31

Ochrona jednostki centralnej (CPU) Czasomierz (timer) generuje przerwania po wyznaczonym okresie aby zapewnić systemowi operacyjnemu utrzymanie kontroli. Licznik czasomierza jest zmniejszany przy każdym tyknięciu zegara. Kiedy licznik osiągnie wartość zero pojawia się przerwanie. Czasomierz jest zwykle używany do realizacji podziału czasu. Czasomierza używa się również do obliczania bieżącego czasu. Ustawianie czasomierza jest rozkazem uprzywilejowanym. Wiesław Płaczek Systemy Operacyjne: Wykład 1 32

Operacje WE/WY użytkownika Rozkazy WE/WY są uprzywilejowane jak zatem użytkownik może wykonywać operacje WE/WY? Wywołanie systemowe (system call) metoda poprzez którą proces zamawia jakąś akcję systemu operacyjnego. Zwykle przyjmuje postać przejścia do określonej komórki w wektorze przerwań (poprzez rozkaz trap lub rozkaz syscall). Sterowanie przechodzi przez wektor przerwań do procedury obsługi w systemie operacyjnym, a bit trybu jest ustawiany na tryb pracy monitora. Monitor po sprawdzeniu, że parametry wywołania są poprawne i dozwolone spełnia żądanie oraz zwraca sterowanie do rozkazu, który następuje po wywołaniu systemowym. Wiesław Płaczek Systemy Operacyjne: Wykład 1 33

Schemat wykonania operacji WE/WY Przejście do monitora 1 Przypadek n.. Czytaj... Monitor rezydentny 2 3 Wykonanie operacji WE/WY Powrót do użytkownika Wywołanie systemowe n.. Program użytkownika Wiesław Płaczek Systemy Operacyjne: Wykład 1 34