Systemy Operacyjnehome.agh.edu.pl/~opal/os/w1.pdf · Sterowanie urządzeniami wejścia-wyjścia:...

45
Systemy Operacyjne dr inż. Andrzej Opaliński Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie AGH University of Science and Technology

Transcript of Systemy Operacyjnehome.agh.edu.pl/~opal/os/w1.pdf · Sterowanie urządzeniami wejścia-wyjścia:...

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.

Pytanie:

Czy komputer mógłby się obyć bez systemu operacyjnego?

?

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.

?

Historia systemów operacyjnych

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

1995

Microsoft wprowadza na rynek Windows 95.

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)

Jaki system operacyjny?

Bezpieczeństwo

Stabilność

Łatwość obsługi

Dostępność

oprogramowania

Cena

Ranking systemów operacyjnych

» Wszystkie platformy, ranking globalny, wrzesień 2018

Ranking OS, Desktop, global

Ranking OS, Desktop, Polska

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

Rodzina systemów LINUX

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ł

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.