systemy operacyjnehome.agh.edu.pl/~opal/os/w1.pdf · sterowanie urządzeniami wejścia-wyjścia:...
TRANSCRIPT
Systemy Operacyjne
dr inż. Andrzej Opaliński
Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie
AGH University of Science and Technology
Plan wykładu
» Systemy operacyjne
– Historia
– Funkcje
– Budowa
– Rodzaje
» Wprowadzenie do systemu Linux
System operacyjny jest to zorganizowany zespół programów, które pośredniczą między sprzętem a
użytkownikami, dostarczając użytkownikom zestawu środków ułatwiających projektowanie,
kodowanie, uruchamianie i eksploatację programów oraz w tym samym czasie sterują przydziałem
zasobów dla zapewnienia efektywnego działania.
Alan Shaw
Definicje
System operacyjny jest programem, który działa jako pośrednik między użytkownikiem komputera a
sprzętem komputerowym. Zadaniem systemu operacyjnego jest tworzenie środowiska, w którym
użytkownik może wykonywać programy w sposób wygodny i wydajny.
Abraham Silberschatz
System operacyjny jest warstwą oprogramowania operującą bezpośrednio na sprzęcie, której celem
jest zarządzanie zasobami systemu komputerowego i stworzenie użytkownikowi środowiska
łatwiejszego do zrozumienia i wykorzystania.
Andrew Tanenbaum
Funkcje systemów operacyjnych
» Zadania systemu operacyjnego
– kontrolowanie i przypisywanie pamięci,
– ustalanie priorytetów w zadaniach,
– obsługa urządzeń,
– ustalanie połączeń sieciowych
– zarządzanie plikami.
» Większość systemów operacyjnych posiada środowiska graficzne ułatwiające ich obsługę.
Zadania SO
Definiowanie interfejsu użytkownika:dostarcza użytkownikom zbiór poleceń lub system okienkowy, który umożliwia
interakcję z systemem komputerowym.
Udostępnianie systemu plików:organizuje i ułatwia dostęp do informacji w postaci hierarchicznego systemu plików.
Udostępnianie środowiska do wykonywania programów:- dostarcza struktur danych do organizacji wykonywania programu oraz zachowywania i odtwarzania stanu przetwarzania (procesy i przełączanie kontekstu). - udostępnia programistom mechanizmy komunikacji pomiędzy procesami (kolejki komunikatów, strumienie, pamięć współdzielona)
Sterowanie urządzeniami wejścia-wyjścia:moduły sterujące inicjalizują pracę urządzeń zewnętrznych oraz pośredniczą w efektywnym przekazywaniu danych pomiędzy jednostką centralną a tymi urządzeniami.
Obsługa podstawowej klasy błędów: reaguje na błędy: - użytkowników (np. niedostępność zasobów, brak prawa dostępu), - programistów (np. błąd dzielenia przez 0,naruszenie ochrony pamięci) - systemu.
Zarządzanie zasobami SO
Operacje w ramach procesu zarządzania zasobami:
•Przydział zasobów: realizacja żądań dostępu do zasobów w taki sposób, że zasoby używane są zgodnie z intencją użytkowników (np. zagwarantowanie wyłącznego dostępu drukarki).
•Planowanie dostępu do zasobów: strategia przydziału zasobów gwarantująca bezpieczeństwo, żywotność, brak zakleszczenia, sprawiedliwość oraz optymalność ich wykorzystania.
•Ochrona i autoryzacja dostępu do zasobów: dopuszczanie możliwości użytkowania zasobu tylko przez osoby uprawnione i w zakresie przydzielonych im uprawnień.
•Odzyskiwanie zasobów: dołączanie zwolnionych zasobów do zbioru zasobów wolnych po zakończeniu ich użytkowania.
•Rozliczanie: rejestrowanie i udostępnianie informacji o wykorzystaniu zasobów w celach kontrolnych i rozrachunkowych.
Zasoby zarządzane przez SO
Typowe zasoby zarządzane przez system operacyjny:
•Procesor – zasób współdzielony przez wiele procesów• przydział kwantu czasu, • wywłaszczanie zadań (oczekiwanie/brak zasobów, priorytet))
•Pamięć - przydzielana na wyłączność dla danego zadania• Utrzymywanie informacji o zajętości przestrzeni adresowej• Przydzielanie wolnej pamięci• Reakcja na naruszenia pamięci
•Urządzenia wejścia wyjścia (w tym system plików)• Organizacja systemu przerwań• Buforowanie danych
Sprzęt
komputerowy
U1 U2 U3 U4 Un
System
operacyjny
Programy użytkowe
Kompilator
Edytor
tekstu
Baza
danych
Użytkownicy
Abstrakcyjne wyobrażenie elementów SK
System operacyjny jest programem, który działa jako pośrednik pomiędzy użytkownikiem komputera a sprzętem komputerowym. Zadaniem systemu operacyjnego jest tworzenie środowiska w którym użytkownik może wykonywać programy.
Odpowiedź: Tak, ale...
» Program użytkowy musiałby zawierać wszelkie procedury obsługi pamięci, urządzeń wejścia i wyjścia, dysków itd.
» Program musiałby sprawdzać czy urządzenia są gotowe, czy nie są aktualnie wykorzystywane przez inne programy,
» Program musiałby znać np. organizację danych na dysku, protokół komunikacji sieciowej itd.
» Po przeniesieniu na inny komputer, trzeba by w programie zmienić większość procedur obsługi sprzętu,
» Istniałyby ogromne problemy ze standaryzacją i kompatybilnością.
Przykład takiego oprogramowania użytkowego to na przykład tzw. firmware sprzętu elektronicznego zawierającego procesory.
?
Pierwszy System Operacyjny z GUI
Kwiecień 1973, w firmie Xerox PARCzostaje ukończony pierwszy sprawnykomputer Alto. Alto jest pierwszymsystemem łączącym w całość wszystkieelementy nowoczesnego, graficznegointerfejsu użytkownika.
Cechy:Myszka z 3 przyciskamiGraficzny wyświetlacz.Stosowanie graficznych okien.Sieć Ethernet.
1980: Three Rivers Computer Corporation wprowadza na rynek stację graficzną Perq.
1981: Xerox wprowadza komputer Star, handlowego następcę maszyny Alto.
Cechy:•Podwójnie klikane ikony, •zachodzące na siebie okna, •okienka dialogowe •wyświetlacz monochromatyczny o rozdzielczości 1024 x 768 pikseli.
Chronologia Graficznych Interfejsów Użytkownika
1984
Apple przedstawia komputer Macintosh.
Digital Research przedstawia dla komputerów opartych na
mikroprocesorze 8086 i systemie DOS swój interfejs użytkownika
GEM z ikonami.
W MIT przedstawiony został „Window System X". Wersje od 1 do 6 były
tylko monochromatyczne i pracowały na wyświetlaczach monitorowych
DEC VS100
Chronologia Graficznych Interfejsów Użytkownika
Geos zostaje wypuszczony dla komputera domowego
Commodore 64, a później dla Apple II
1985
Commodore przedstawia komputer Amiga 1000
z systemem operacyjnym Amiga Workbench Version 1.0.
Microsoft wypuszcza pierwszą wersję systemu Windows.
Chronologia Graficznych Interfejsów Użytkownika
1987 Apple wprowadza na rynek komputer Apple Macintosh II,
pierwszy kolorowy Macintosh.
Cechy:
Rozdzielczość 640x480 w 256 kolorach przy dostępnej
24 bitowej, kolorowej karcie graficznej za dodatkową
opłatą.
Microsoft wypuszcza drugą wersję Windows o numerze 2.03.
Cechy:
Skalowalne, zachodzące na siebie okna oraz nowe kontrolki
okienek.
Acorn wypuszcza system "Arthur" dla komputera Acorn,
stanowi on podstawę dla RISC OS.
Chronologia Graficznych Interfejsów Użytkownika
1992
IBM wypuszcza system OS/2 Version 2.0, system 32-bitowy.
Cechy:
Nowa powłoka "Workplace Shell", interfejs użytkownika
zorientowany obiektowo, który został głęboko zintegrowany z
resztą systemu operacyjnego
Microsoft wprowadza Windows 3.1. Interfejs użytkownika jest w
sumie taki sam jak w Windows 3.0, lecz teraz zawiera
rozszerzenia "multimedialne".
Dla komputerów Amiga z grafiką AGA zostaje wypuszczony
system operacyjny Amiga Workbench 3.
Cechy:
Obrazy dla tła, przemianowywanie palety.
Chronologia Graficznych Interfejsów Użytkownika
1993
1994
Maj 1993: Microsoft wypuszcza pierwszą
wersję systemu operacyjnego Windows NT,
czyli systemu 32-bitowego. Otrzymuje on
numer wersji "3.1" i stosuje ten sam interfejs
użytkownika co zwykłe Windows 3.1.
1994: QNX Software Systems wypuszcza
pierwszy system okienkowy z osadzalnym
mikrojądrem, zwany Photon microGUI.
Chronologia Graficznych Interfejsów Użytkownika
1997
1998
Lipiec : Mac OS 8 zostaje w końcu wypuszczony na rynek.
Sprzedaje się w ilości 1.25 milionów kopii w mniej niż dwa tygodnie i
staje się w tym okresie najlepiej sprzedającym się
oprogramowaniem.
25 czerwca : Microsoft wypuszcza Windows 98.
Cechy:
Aplikacja przeglądarki internetowej - Internet Explorer -
przejmuje rolę powłoki Windows, reklamy bezpośrednio na
ekranie roboczym, cały system pomocy zastąpiony przez
Internet Explorer.
Chronologia Graficznych Interfejsów Użytkownika
1999
2000
Apple wypuszcza system operacyjny Mac OS X Server, który jest
oparty na Unixie z interfejsem użytkownika podobnym do
zastosowanego w komputerach Macintosh.
Apple prezentuje system operacyjny Aqua posiadający nowy
wygląd dla oprogramowania przyszłych klientów MacOS X.
17 lutego: Microsoft Windows 2000 (Windows NT 5) staje się
dostępne w sprzedaży.
Cechy:
Aplikacja przeglądarki internetowej Internet Explorer w końcu
przejmuje cały interfejs użytkownika w Windows NT.
Chronologia Graficznych Interfejsów Użytkownika
2001
2003
25 październik: Microsoft wypuszcza system Windows XP
(Windows NT 5.1)
Cechy:
Tony „wizualnych bajerów”. Mechanizm "Aktywacji Produktu"
24 kwiecień: Microsoft wypuszcza Windows Server 2003
(Windows NT 5.2 chwilowo zwany "Windows.NET Server")
Cechy:
Rezygnacja z „bajerów wizualnych”.
Wydanie tylko w wersji Server.
Chronologia Graficznych Interfejsów Użytkownika
2005 Windows Vista, wersja Beta (do tej pory Longhorn)
01 2007 Windows Vista, wersja rynkowa
05 2007 Windows 7, wersja Milestone 1
10 2009 Windows 7, wersja finalna
10 2012 Windows 8 (wersja 64b: 1GHz, 2GB RAM, 16 GB na HDD)
10 2013 Przedsprzedaż Windows 8.1
10 2014 Windows Server 2012 R2
07 2015 Windows 10
Chronologia Graficznych Interfejsów Użytkownika
Systemy operacyjne są rozwijane na dwa przeciwstawne sposoby:
Oprogramowanie własnościowe, wytwarzane przez firmy i sprzedawane użytkownikom nie mającym wpływu na jego kształt, tzw. proprietary domain
Oprogramowanie tworzone przez samych użytkowników, udostępniane bezpłatnie i stale udoskonalane tzw. open source
Sposoby dystrybucji systemów operacyjnych
Rodzaje systemów operacyjnych
» Najpopularniejsze rodziny systemów operacyjnych
– Windows
– MacOS
– Linux
– Android
» Rodzaje systemów operacyjnych
– Na komputery osobiste (desktopy i laptopy)
– Na serwery
– Na urządzenia mobilne
• Tablety
• Telefony/smartfony
– Dedykowane na urządzenia specjalistyczne (routery, systemy monitoringu, firewalle)
Ranking systemów operacyjnych
» Wszystkie platformy, ranking globalny, wrzesień 2018
Ranking systemów operacyjnych
» tablety, ranking globalny, wrzesień 2018
Ranking systemów operacyjnych
» Telefony komórkowe, ranking globalny, wrzesień 2018
Komputery stacjonarne, rodzina Windows
» ranking globalny, wrzesień 2018
Komputery stacjonarne, rodzina MacOS
» ranking globalny, wrzesień 2018
Urządzenia mobilne, iOS
» ranking globalny, wrzesień 2018
Urządzenia mobilne, Android
» ranking globalny, wrzesień 2018
Linux
» rodzina unixopodobnych systemów operacyjnych opartych o jądro Linux (autorstwa Linusa Thorvaldsa).
» Pierwsza wersja jądra Linux udostępniona w 1991 roku
» Do jądra dołączono narzędzia systemowe i biblioteki z projektu GNU aby otrzymać nadający się do użytku system operacyjny.
» Wykorzystywane głównie
– Jako darmowa alternatywa dla systemów Microsoft Windows
– Jako oprogramowanie serwerowe
» Dystrybuowana jako open-source
– Bezpłatne – wsparcie społeczności
– Płatne – opłata za wsparcie techniczne specjalistów
Dystrybucje Linuxa
» Aktualnie kilkaset dystrybucji Linuxa
» Główne gałęzie dystrybucji
– RPM – CentOS, Fedora, RedHat, Mandrake, openSUSE
– Debian – Debian, Ubuntu, Knoppix
– Gentoo – ChromiumOS, Gentoo,
– Slackware – Slax, WinLinux,
– Niezależne – Android, DD-WRT, OpenWRT, TinyCoreLinux
Android
» System operacyjny z jądrem Linux dla urządzeń mobilnych takich jak telefony komórkowe, smartfony, tablety i netbooki.
» Jądro oraz niektóre inne komponenty, które zaadaptowano do Androida opublikowane są na licencji GNU GPL.
» Android nie zawiera natomiast kodu pochodzącego z projektu GNU. Cecha ta odróżnia Androida od wielu innych istniejących obecnie dystrybucji Linuksa.
» Początkowo był rozwijany przez firmę Android Inc. (kupioną później przez Google), następnie przeszedł pod skrzydła Open Handset Alliance.(Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, NVIDIA)
» W sierpniu 2014 było dla tego systemu dostępnych ponad 1,3 miliona aplikacji w Google Play
Systemy firmy Apple
» MacOS – system operacyjny dla komputerów Macintosh
» iOS system operacyjny Apple Inc. dla urządzeń mobilnych
– iPhone,
– iPod touch
– iPad.
– Obecna nazwa funkcjonuje od 7 czerwca 2010, wcześniej system był znany
jako iPhone OS.
– System ten bazuje na systemie operacyjnym Mac OS X 10.5
jądro
powłoka
użytkownicy
programy
sprzęt
Warstwowa budowa SO
• jądro - komunikuje się z komputerem przez sterowniki urządzeń i wykonuje kolejkowanie zadań, obsługę pamięci
• powłoka - stanowi interpreter poleceń systemu (komunikacja z użytkownikiem)
• programy - polecenia systemowe nie zawarte w jądrze, programy narzędziowe, programy użytkowe
Budowa systemu komputerowego
Pamięć
operacyjna
Jednostka
centralna Sterownik
dysku
Sterownik
pamięci operacyjnej
Sterownik
drukarki
Sterownik
sieci
Urządzenia sieci
Szyna systemowa
(magistrala danych)
Nowoczesny, uniwersalny system komputerowy składa
się z jednostki CPU, pewnej liczby sprzętowych sterowników urządzeń
połączonych wspólną szyną która umożliwia kontakt ze wspólną pamięcią.
Jednostka CPU i sterowniki urządzeń mogą działać współbieżnie, rywalizując
o cykle pamięci.
Działanie systemu komputerowego
• Program rozruchowy (bootstrap program)
• określa stan początkowy wszystkich elementów systemu:
• rejestrów CPU,
• sterowników urządzeń,
• stanu i zwartości pamięci.
• lokalizuje i ładuje do pamięci jądro systemu operacyjnego
• System operacyjny rozpoczyna wykonanie swojego pierwszego procesu, w
rodzaju procesu *init i zaczyna czekać na wystąpienie "zdarzeń".
• Wystąpienie zdarzenia sygnalizowane jest za pomocą przerwania które może
pochodzić od sprzętu lub od oprogramowania.
• Sprzęt może powodować przerwania w dowolnej chwili, wysyłając sygnał
magistralą systemową do CPU.
• Oprogramowanie może spowodować przerwanie wskutek wykonania specjalnej
operacji nazywanej wywołaniem systemowym (system call).
Przerwania
Przerwanie polega na tym, że urządzenie wymagające obsługi procesora, np.
wejścia/wyjścia (klawiatura), posiada specjalne połączenie (pojedynczy
przewód) łączące niniejsze urządzenie z procesorem. Linia ta nosi nazwę linii
przerwania. W momencie kiedy urządzenie chce być obsługiwane przez
procesor wystawia umówiony sygnał na linii przerwania − z reguły jest to
zmiana stanu z 0 na 1.
Zdarzenia powodujące przerwania:
» Zakończenie operacji wejścia-wyjścia
» Dzielenie przez zero,
» Niedozwolony dostęp do pamięci,
» Zapotrzebowanie na usługę systemu,
» itd., itp..
Każdemu przerwaniu odpowiada procedura która zajmuje się jego
obsługą!!!.
Obsługa sygnałów przerwań dla urządzeń wejścia/wyjścia
Proces użytkownika
Obsługa przerwań I/O
Wył
Wł
Zamówienie
wejścia/wyjściaPrzesłanie
wykonane
Procesor
Urządzenie
wejścia-wyjścia
Zamówienie
wejścia/wyjściaPrzesłanie
wykonane
Po otrzymaniu przerwania procesor wstrzymuje aktualnie wykonywaną pracę i
natychmiast przechodzi do ustalonego miejsca w pamięci w którym zawarty
jest adres startowy procedury obsługującej dane przerwanie.
Po jej zakończeniu CPU kontynuuje przerwane obliczenia.