Systemy operacyjne

33
Systemy operacyjne Wykład 1 Wprowadzenie nż. Wojciech Bieniecki ytut Matematyki i Informatyki ://wbieniec.kis.p.lodz.pl/pwsz 1

description

Systemy operacyjne. Wykład 1 Wprowadzenie. dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki http://wbieniec.kis.p.lodz.pl/pwsz. Warunki zaliczenia. WYKŁAD Kolokwium wykładowe w formie testu wielokrotnego wyboru i zadań otwartych o krótkiej odpowiedzi. LABORATORIUM - PowerPoint PPT Presentation

Transcript of Systemy operacyjne

Page 1: Systemy operacyjne

Systemy operacyjne

Wykład 1Wprowadzenie

dr inż. Wojciech BienieckiInstytut Matematyki i Informatykihttp://wbieniec.kis.p.lodz.pl/pwsz 1

Page 2: Systemy operacyjne

Warunki zaliczenia

WYKŁADKolokwium wykładowe w formie testu

wielokrotnego wyboru i zadań otwartych o krótkiej odpowiedzi.

LABORATORIUMĆwiczenia laboratoryjne – ocena średnia

Obecność obowiązkowa

2

Page 3: Systemy operacyjne

Definicje systemuoperacyjnego

System operacyjny jest zbiorem ręcznych i automatycznych procedur, które pozwalają grupie osób na efektywne współdzielenie urządzeń maszyny cyfrowej

Per Brinch Hansen

3

System operacyjny (nadzorczy, nadrzędny, sterujący) jest to zorganizowany zespółprogramów, które pośredniczą miedzy 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

Page 4: Systemy operacyjne

Definicje systemuoperacyjnego

System operacyjny jest programem, który działa jako pośrednik miedzy 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

4

System operacyjny jest warstwa oprogramowania operująca 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 Tannenbaum

Wspólne elementy większości definicji:zarządzanie zasobami systemu komputerowegostworzenie środowiska wygodnego dla użytkownika

Page 5: Systemy operacyjne

Programy użytkowe

Systemoperacyjny

Składniki systemu komputerowego

5

System komputerowy składa się z:Sprzęt (hardware): procesor, pamięć, urządzenia wejścia-wyjścia , są zasobami systemu komputerowego

Programy użytkowe (aplikacje) określają sposób użycia zasobów do rozwiązania zadań stawianych przez użytkowników

System operacyjny (S.O.) nadzoruje i koordynuje posługiwanie się sprzętem przez różne programy użytkowe, pracujące na zlecenie różnych użytkowników.

system dostarcza środków do właściwego użycia zasobów podczas działania systemu komputerowego, tworząc środowisko, w którym inne programy mogą wykonywać swoje zadania

Sprzęt

Page 6: Systemy operacyjne

Perspektywa użytkownika systemu operacyjnego

6

komputer osobistysystem operacyjny dla jednego użytkownika

S.O.: monopolizowanie zasobów, maksymalizowanie efektów pracy użytkownika, zaprojektowany pod katem wygody użycia, z pewnym uwzględnieniem wydajności ibez brania pod uwagę wykorzystania zasobów

terminal podłączony do mainframeinni użytkownicy uzyskują dostęp za pomocą podobnych terminali; dzielą zasoby i mogą wymieniać się informacjami

S.O.: maksymalizacja wykorzystania zasobów(zapewnienie, że czas procesora, pamięć i udostępnione urządzenia są wykorzystywane wydajnie, oraz że żadenużytkownik nie otrzymuje nic „ponad normę”

Page 7: Systemy operacyjne

Użytkowanie systemu operacyjnego

7

stacja robocza (workstation) podłączona do sieci innych stacji roboczych i serwerów

użytkownicy mają zasoby wydzielone do swojej wyłącznej dyspozycji, ale również dzielą zasoby: osprzęt sieci i serwery plików, moc obliczeniowa i drukowanie

S.O.: kompromis miedzy indywidualną użytecznością i wykorzystaniem zasobów

komputery podręczne: PDA, smartfony, tabletysystem operacyjny dla jednego użytkownika

S.O.: tak jak w komputerze osobistym, maksymalizacja wykorzystania zasobów, minimalizacja zużycia energii

istnieją też komputery stanowiące część innych urządzeń, gdzie perspektywa użytkownika nie występujeS.O.: projektowane do działania bez interwencji użytkownika

Page 8: Systemy operacyjne

Części systemu operacyjnego

8

brak jest precyzyjnego określenia, jakie elementy wchodzą w skład systemu operacyjnego.

zwykle przyjmuje sie, że jest to wszystko, co producent udostępnia w ramach oprogramowania nazywanego systemem operacyjnym

często przyjmuje się, że system operacyjny to program który działa w komputerze nieustannie (nazywany zazwyczaj jądrem), a wszystko inne toprogramy użytkowe

Jądro (ang. Kernel) – zbiór modułów, które ukrywają szczegółysprzętowej realizacji systemu komputerowego, udostepniając pewien zestaw usług, wykorzystywanych m.in. do implementacji programów systemowych

Dla użytkownika istotny jest także interpreter poleceń (powłoka, ang. Shell), który może być częścią jadra lub programem systemowym.Interpreter wykonuje pewne polecenia wewnętrzne; jeśli nie może wykonać wewnętrznie jakiegoś polecenia, uruchamia odpowiedni program zewnętrzny.

Page 9: Systemy operacyjne

Cele systemu operacyjnego

9

wygoda użytkownika

wydajne działanie systemu komputerowego

wygoda i wydajność są czasami ze sobą sprzeczneprzykład: GUI (graficzny interfejs użytkownika)

Zadania systemu operacyjnegodefiniowanie interfejsu użytkownika

zarządzanie zasobami:

udostępnianie systemu plikówudostępnienie środowiska do wykonywania programówsterowanie urządzeniami wejścia/wyjściaobsługa podstawowych błędów

Page 10: Systemy operacyjne

Rodzaje systemów komputerowych

10

systemy komputerów głównych (mainframe computer systems)

systemy biurkowe

systemy wieloprocesorowe

systemy rozproszone

systemy zgrupowane (clustered systems)

systemy czasu rzeczywistego

systemy kieszonkowe

Page 11: Systemy operacyjne

Systemy komputerów głównych

11

systemy wsadowe (batch systems):

użytkownik przygotowywał zadanie (np.. na kartach perforowanych), które składało sie z programu, danych i informacji sterujących

system operacyjny był prosty, jego głównym zadaniem było przekazywanie sterowania od jednego zadania do następnego.

System rezydował całkowicie w pamięci operacyjnej operatorzy grupowali razem zadania o podobnych cechach i wykonywali je w formie tzw. wsadu (batch) dla komputera

częsta bezczynność CPU (za mała szybkość czytników kart)

wprowadzenie dysków umożliwiło przetrzymywanie wszystkich zadań na dysku; system mógł zając się planowaniem zadań (job scheduling)

Page 12: Systemy operacyjne

Systemy kart dziurkowanych

12

Kodowanie informacji:

Na prostokątnej, papierowej karcie kolejne pozycje są albo przedziurkowane albo pozostawione nienaruszoneKażda pozycja na karcie reprezentuje pojedynczy bit informacji Każda kolumna reprezentuje jeden znakW kolumnie znajduje się 12 pozycji

W formacie firmy IBM kolumn było 80, można zatem było zakodować na niej 80 znaków.Pojedyncza dziurka w kolumnie służyła do kodowania cyfr, dwie do kodowania liter alfabetu (wielkie litery), trzy do znaków specjalnych.Od 1964 r. dopuszczono stosowanie nawet 6 dziurek w kolumnie.

Page 13: Systemy operacyjne

Taśmy dziurkowane

13

Taśma 8-ścieżkowa kodowała kod 7-bitowy kod ASCII; ósma ścieżka służyła jako bit parzystości.

Pasek mniejszych dziurek służył jako perforacja dla zębatego kółka mechanicznego czytnika lub perforatora, a dla czytnika fotoelektrycznego służyła jako wskaźnik poprzecznego rzędu bitów.

Page 14: Systemy operacyjne

Spooling

14

nowa technologia, pozwalająca na zwiększenie wydajność systemu: spooling (ang. Simultaneous peripherial operation online).Spooling polega na tym, że równocześnie odbywają się trzy rzeczy:

• nowe zadania są wczytywane przez czytnik(i) kart i zapisywane na dysku,

• procesor pobiera kolejne zadania z dysku, wykonuje je i zapisuje wyniki na dysku,

• wyniki zakończonych zadań są drukowane na drukarce(-kach).

Dzięki spoolingowi operacje wejścia/wyjścia mogły odbywać się równocześnie z obliczeniami. Za cenę dysku magnetycznego i części pamięci operacyjnej można było tak efektywnie wykorzystać czas pracy procesora.Synchronizacja wczytywania zadań, wypisywania wyników oraz zarządzanie informacjami magazynowanymi na dysku stało się nowym zadaniem systemu operacyjnego.

Page 15: Systemy operacyjne

Systemy komputerów głównych

15

Systemy wieloprogramowe.

wieloprogramowanie (multiprogramming) zwiększa wykorzystanie procesora wskutek takiej organizacji zadań, aby system miał zawsze jakieś z nich do wykonania

system operacyjny przechowuje w pamięci kilka zadań (podzbiór puli zadań), wybiera jedno z nich do wykonania; gdy zadanie czeka na operacje I/O, procesor jest przełączany do innego zadania

zadania wchodzące do systemu trafiają do puli zadań. Podejmowanie decyzji które zadanie wybrać, jeśli kilka z nich jest gotowych do wprowadzenia do pamięci –planowanie (szeregowanie) zadańwybranie zadania do wykonania, jeśli kilka z nich jest gotowych do wykonania w tym samym czasie – planowanie przydziału procesora

wymagane też odpowiednie zarządzanie pamięcią i ograniczenie możliwości wzajemnego zaburzania się zadań

Page 16: Systemy operacyjne

Systemy z podziałem czasu

16

podział czasu (time sharing) lub wielozadaniowość (multitasking) – logiczne rozszerzenie wieloprogramowości.

Systemy z podziałem czasu były pierwszymi, które pozwoliły na interaktywną pracę wielu użytkowników z komputerem.`

Czas reakcji to czas, jaki upływa od wykonania przez użytkownika jakiejś akcji (naciśnięcia klawisza, wprowadzenia polecenia, kliknięcia myszą itp.) do zareagowania przez proces na tę akcję.

Procesor wykonuje na przemian wiele różnych zadań, przy czym przełączenia następują tak często, że użytkownicy mogą współdziałać z każdym programem w czasie jego wykonania.

Czytniki kart perforowanych zostały zastąpione terminalami, przy których mogli pracować użytkownicy.

Na czas reakcji składa się również czas oczekiwania przez proces na przydział procesora.Dlatego też, im krótszy jest kwant czasu, na jaki przydzielany jest procesor, tym krócej proces czeka na przydzielenie procesora.

Page 17: Systemy operacyjne

Komputery osobiste

17

komputery osobiste (PC) istnieją od lat siedemdziesiątych.

w pierwszym dziesięcioleciu CPU stosowane w PC nie miały cech potrzebnych do ochrony sytemu operacyjnego przez programami użytkowymi, więc systemy operacyjne nie były wielodostępne ani wielozadaniowe

Rozwój systemów operacyjnych dla PC: zamiast maksymalizowania wykorzystania zasobów położono nacisk na wygodę użytkownika i szybkość kontaktu zużytkownikiem

Osborne 1 – pierwszy laptop (1981). Cena 1795$, waga 11 kg, procesor Zilog [email protected]: 64KB, monitor 5 cali dwie dyskietki 5”1/4 91KB

Page 18: Systemy operacyjne

Systemy wieloprocesorowe

18

Systemy z więcej niż jednym procesorem, nazywane także systemami równoległymi (parallel systems) lub sciśle powiązanymi

Procesory ściśle powiązane –współdzielą niektóre pozostałe składowe systemu komputerowego (magistralę, pamięć, urządzenia zewnętrzne, itp.)

Procesory luźno powiązane, jeżeli każdy procesor posiada własną pamięć i magistralę, tworzy niezależny podsystem komputerowy i komunikuje się z pozostałymi podsystemami poprzez szybkie linie komunikacyjne.

równoległe systemy ściśle powiązane:

Z procesorami symetrycznymi: równoprawne procesory centralne, współdzielą zegar, magistralę systemową i pamięć, wraz z mechanizmem synchronizacji ich działania. Jest to obecnie najpopularniejsza technika konstrukcji równoległych komputerów ogólnego przeznaczenia.

Z procesorami asymetrycznymi: tworzą hierarchię. Procesor centralny rozdziela zadania między wyspecjalizowane procesory pomocnicze. Stosowana w serwerach wyspecjalizowanych w jakimś celu. Struktura podziału zadań między procesory wynika z przeznaczenia systemu komputerowego, a jednocześnie jest odzwierciedlona w konstrukcji sprzętu komputerowego.

Page 19: Systemy operacyjne

Systemy wieloprocesorowe

19

Pozwalają na uzyskanie większej mocy obliczeniowej. N procesorów nigdy nie daje N razy większej mocy obliczeniowej - zawsze istnieją czynności, które nie mogą być wykonywane równocześnie przez wszystkie procesory.

Moc obliczeniowa systemów równoległych jest również tańsza. Ceny procesorów bardzo szybko rosną wraz ze wzrostem ich prędkości. Dlatego też kilka wolniejszych procesorów jest tańsze niż jeden kilka razy szybszy procesor.

Systemy równoległe mogą też posiadać inne pożądane cechy: odporność na uszkodzenia i łagodną degradację. Jeżeli system komputerowy jest wyposażony w mechanizmy pozwalające wykrywać uszkodzenia procesorów, to w przypadku awarii jednego z procesorów pozostałe procesory mogą przejąć jego zadania. Dzięki temu awaria części z procesorów nie prowadzi do awarii całego systemu, lecz jedynie zmniejsza jego wydajność.

Page 20: Systemy operacyjne

Systemy rozproszone

20

Systemy luźno powiązane systemy z wieloma procesorami które nie dzielą pamięci ani zegara - każdy ma własna pamięć lokalną. Procesory komunikują sie za pomocą szybkich szyn danych lub połączeń sieciowych.

Użytkownik takiego systemu, niezależnie od tego, z którego komputera korzysta, postrzega zawsze system rozproszony jako jedną spójną całość. Systemy rozproszone maja szereg zalet:

niezawodność - jeżeli niektóre z komputerów tworzących system rozproszony ulegną awarii, to pozostałe komputery mogą je zastąpić, przynajmniej częściowo

współdzielenie zasobów - system rozproszony może udostępniać swoim użytkownikom wszystkie zasoby znajdujące się w obrębie systemu; dzięki temu użytkownicy mogą współdzielić zasoby systemowe, co obniża koszty systemu; np. pliki wszystkich użytkowników mogą być przechowywane na wspólnych dyskach,zwiększenie mocy obliczeniowej - jeżeli użytkownicy wykonują obliczenia, które można zrównoleglić, to system rozproszony może je wykonywać na wielu komputerach, równoważąc ich obciążenie,nowe usługi - niektóre z usług oferowanych przez system operacyjny, zwłaszcza usługi komunikacyjne, możliwe są do zrealizowania tylko przez komputery połączone w sieć;

Page 21: Systemy operacyjne

Systemy czasu rzeczywistego

21

systemy, od których wymaga się działania w określonych ograniczeniach czasowych, np. reagowania na określone zdarzenia z ograniczonym opóźnieniem.

Systemy z bezwzględnymi wymogami czasowymi (ang. hard real-time systems) to zwykle systemy wbudowane sterujące urządzeniami lub procesami technologicznymi. System taki monitoruje urządzenie(a), którymi steruje i w określonym czasie musi reagować na zachodzące zdarzenia. Niespełnienie wymagań czasowych może doprowadzić do uszkodzenia sterowanych urządzeń lub może sprowadzić niebezpieczeństwo. W przypadku systemów z bezwzględnymi wymogami czasowymi zagwarantowanie, że wymogi te będą zawsze spełnione, jest ważniejsze od efektywnego wykorzystania systemu.

Systemy z łagodnymi wymogami czasowymi (ang. soft real-time systems): niespełnienie nałożonych na nie wymogów czasowych nie jest niebezpieczne, ale powoduje pogorszenie jakości usług świadczonych przez system. Najpopularniejszym przykładem takich systemów są systemy multimedialne.

Page 22: Systemy operacyjne

Systemy kieszonkowe

22

do systemów kieszonkowych (handheld systems) zalicza się palmtopy, smartfony, tablety (personal digital assistant - PDA)

Atari portfolio, 1989, wielkość kasety video, 128kB RAM, 256kB ROM,

EO Personal Communicator 1993

Page 23: Systemy operacyjne

Systemy kieszonkowe

23

mała pamięć operacyjna

Compal UMD, 2007, Windows CESamsung galaxy tab 3, 2013, Android 4.1

mała szybkość procesora (szybszy wymagałby mocniejszego zasilania; pojemność baterii jest ograniczona)rozmiar wyświetlacza ogranicza ilość informacji prezentowanych użytkownikowi przez aplikacje

wszystko to powoduje to konieczność odpowiedniego projektowania systemu operacyjnego i aplikacji

Page 24: Systemy operacyjne

Klasyfikacja systemów operacyjnych

24

sposób przetwarzaniasystemy przetwarzania bezposredniego (interakcyjne)

systemy przetwarzania posredniego (wsadowe)

liczba wykonywanych programów

systemy jednozadaniowe

systemy wielozadaniowe

liczba użytkowników

systemy jednoużytkownikowe

systemy wieloużytkownikowe

Page 25: Systemy operacyjne

Przykłady SO: CP/M

25

CP/M (ang. ControlProgram/Monitor lub Control Program/Microcomputer) – prosty system prod. Digital Research, 1982 rok,Jednoprocesowy - dopuszczający działanie tylko jednego procesu (wykonywanego programu).ubogi zestaw poleceń wewnętrznych, interpreter poleceń był częścią jądra systemu(ładowany do początkowego obszaru pamięci):- wyświetlenie zawartości katalogu (z różnymi opcjami), - zmianę katalogu,- zmianę aktywnego użytkownika (polecenie user z parametrami 0-15)- uruchomienie polecenia zewnętrznego lub programu. W systemie CP/M dostępne były aplikacje takie jak: WordStar (edytor tekstu)arkusz kalkulacyjny Multiplanoprogramowanie specjalistyczne.Dostępne były języki programowania BASIC, Pascal, C,Fortran, COBOL, narzędzia wspomagające programowanie w asemblerze.

Page 26: Systemy operacyjne

Unix

26

rozwijany od 1969 r. w Bell Labs (UNIX System Laboratories, USL) przez Dennisa Ritchie i Kena Thompsona. W latach 70. i 80. zdobył bardzo dużą popularność

W 1972 roku Unix został przepisany na język C

Wielozadaniowy

Wieloużytkownikowy

Page 27: Systemy operacyjne

Linux

27

Akronim rekursywny: Linux Is Not UniX

Linus Torvalds,twórca Linuxa

Linux jest to bezpłatna wersja systemu operacyjnego UNIX o otwartym źródle.

technicznie: Linux jest to jądro systemu;

praktycznie: nazwę „Linux” odnosimy do całego systemu operacyjnego: jądra wraz z aplikacjami.

Pozostałe elementy systemu (narzędzia, aplikacje itp.) można dobrać na wiele sposobów – skorzystać z tysięcy rozwijanych niezależnie projektów. Dobór tych elementów systemu i ewentualne uzupełnienie własnym oprogramowaniem przez konkretną osobę, organizację lub firmę nosi nazwę dystrybucji.

Wielozadaniowy

Wieloużytkownikowy

Page 28: Systemy operacyjne

Mac OS

28

jest zbudowany na podstawie dawnego systemu NeXTStep z drugiej połowy lat 80

Podstawa systemu Mac OS X jest zgodna z definicją systemu typu POSIX (systemu uniksowego) i opiera się na jądrze XNU (w oparciu o mikrojądro Mach oraz FreeBSD)posiadając charakterystyczne komendy Unix dostępne z poziomu wiersza poleceń.

OS X wprowadza wiele nowych możliwości w stosunku do swego poprzednika Mac OS 9, np. wywłaszczeniową wielozadaniowość i ochronę pamięci.

OS X dostarcza własne narzędzia do programowania aplikacji pod ten system, z których najważniejsze jest IDE Xcode. Dostępne języki programowania to C, C++, Objective-C, Java.

Podsystem Darwin kieruje systemem plików HFS+, w którym stosuje się uniksowy system kontroli dostępu do plików.

Wiele procesów

Wielu użytkowników

Page 29: Systemy operacyjne

DOS

29

MS-DOS (ang. Microsoft Disk Operating System)

Cała konfiguracja MS-DOS znajduje się w zasadzie w 2 lub 3 plikach: CONFIG.SYS, AUTOEXEC.BAT oraz w nowszych systemach MSDOS.SYS. Plik CONFIG.SYS definiuje konfigurację systemu, natomiast plik AUTOEXEC.BAT pełnił funkcję ówczesnego Autostartu. Plik MSDOS.SYS był w samodzielnych wersjach systemu (do 6.22) plikiem binarnym zawierającym kod wykonywalny a dopiero później - tekstowym plikiem konfiguracyjnym.

JednoużytkownikowyJednoprocesowy

System przerwań

Page 30: Systemy operacyjne

Rodzina Windows

30

listopad 2013 – Windows Server 2012 R217 października 2013 – Windows 8.1

Page 31: Systemy operacyjne

Novell Netware

31

sieciowy system operacyjny firmy Novell przeznaczony dla serwerów pełniących funkcje serwera plików. Wielozadaniowy i wieloużytkownikowy. Z powodzeniem pełni funkcje serwera baz danych, routera i innych serwisów internetowych (tunelowanie, NAT, DHCP, mail, FTP, WWW, DNS, HTTPS, TFTP i inne).

zaprojektowany w celu wykonywania wielu usług na PC

wydajność i stabilność wyrażająca się w długiej, nieprzerwanej pracy.

wysoki poziom bezpieczeństwa nie spotykany w rodzinie systemów Windows

NDS eDirectory – usługa katalogowa

Page 32: Systemy operacyjne

Android

32

System operacyjny dla urządzeń mobilnych oparty na jądrze Linuksa oraz oprogramowaniu na licencji GNU.

Aktualna wersja: 4.4.2 KitKat, 12.2013

Początkowo możliwe było tworzenie aplikacji jedynie w Javie, obecnie możliwe jest pisanie natywnego kodu z użyciem C/C++.

WielozadaniowyOd wersji 4.2 - wieloużytkownikowy

Page 33: Systemy operacyjne

IOS

33

iOS – system operacyjny Apple Inc. dla urządzeń mobilnych iPhone, iPod touch oraz iPad.Obecna nazwa funkcjonuje od 2010, wcześniej system był znany jako iPhone OS. System ten bazuje na systemie operacyjnym Mac OS X 10.5 i tym samym jądrze Darwin.