Wykład 1 - Wojciech Bieniecki

Report
Systemy operacyjne
Wykład 1
Wprowadzenie
dr inż. Wojciech Bieniecki
Instytut Matematyki i Informatyki
http://wbieniec.kis.p.lodz.pl/pwsz
1
Warunki zaliczenia
WYKŁAD
Kolokwium wykładowe w formie testu
wielokrotnego wyboru i zadań otwartych o
krótkiej odpowiedzi.
LABORATORIUM
Ćwiczenia laboratoryjne – ocena średnia
Obecność obowiązkowa
2
Definicje systemu
operacyjnego
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
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
3
Definicje systemu
operacyjnego
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
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 komputerowego
stworzenie środowiska wygodnego dla użytkownika
4
Składniki systemu komputerowego
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
System
operacyjny
Programy
użytkowe
5
Perspektywa użytkownika systemu
operacyjnego
komputer osobisty
system 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 i
bez brania pod uwagę wykorzystania zasobów
terminal podłączony do mainframe
inni 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 żaden
użytkownik nie otrzymuje nic „ponad normę”
6
Użytkowanie systemu
operacyjnego
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, tablety
system 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ępuje
S.O.: projektowane do działania bez interwencji użytkownika
7
Części systemu operacyjnego
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 to
programy użytkowe
Jądro (ang. Kernel) – zbiór modułów, które ukrywają szczegóły
sprzę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.
8
Cele systemu operacyjnego
wygoda użytkownika
wydajne działanie systemu komputerowego
wygoda i wydajność są czasami ze sobą sprzeczne
przykład: GUI (graficzny interfejs użytkownika)
Zadania systemu operacyjnego
definiowanie interfejsu użytkownika
zarządzanie zasobami:
udostępnianie systemu plików
udostępnienie środowiska do wykonywania programów
sterowanie urządzeniami wejścia/wyjścia
obsługa podstawowych błędów
9
Rodzaje systemów komputerowych
systemy komputerów głównych (mainframe computer systems)
systemy biurkowe
systemy wieloprocesorowe
systemy rozproszone
systemy zgrupowane (clustered systems)
systemy czasu rzeczywistego
systemy kieszonkowe
10
Systemy komputerów głównych
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)
11
Systemy kart dziurkowanych
Kodowanie informacji:
Na prostokątnej, papierowej karcie kolejne pozycje są albo przedziurkowane albo
pozostawione nienaruszone
Każda pozycja na karcie reprezentuje pojedynczy bit informacji
Każda kolumna reprezentuje jeden znak
W 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.
12
Taśmy dziurkowane
Taśma 8-ścieżkowa kodowała kod 7bitowy 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.
13
Spooling
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.
14
Systemy komputerów głównych
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ń
15
Systemy z podziałem czasu
podział czasu (time sharing) lub wielozadaniowość (multitasking) – logiczne
rozszerzenie wieloprogramowości.
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.
Systemy z podziałem czasu były pierwszymi, które pozwoliły na interaktywną
pracę wielu użytkowników z komputerem.`
Czytniki kart perforowanych zostały zastąpione terminalami, przy których mogli
pracować użytkownicy.
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ę.
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
16
krócej proces czeka na przydzielenie procesora.
Komputery osobiste
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 z
uż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
17
Systemy wieloprocesorowe
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.
18
Systemy wieloprocesorowe
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ść.
19
Systemy rozproszone
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
20
połączone w sieć;
Systemy czasu rzeczywistego
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.
21
Systemy kieszonkowe
do systemów kieszonkowych (handheld systems) zalicza się
palmtopy, smartfony, tablety (personal digital assistant - PDA)
EO Personal Communicator 1993
Atari portfolio, 1989, wielkość kasety
video, 128kB RAM, 256kB ROM,
22
Systemy kieszonkowe
mała pamięć operacyjna
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
Compal UMD, 2007, Windows CE
Samsung galaxy tab 3, 2013, Android 4.1
23
Klasyfikacja systemów operacyjnych
sposób przetwarzania
systemy 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
24
Przykłady SO: CP/M
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 Multiplan
oprogramowanie specjalistyczne.
Dostępne były języki programowania BASIC, Pascal, C,Fortran, COBOL, narzędzia
wspomagające programowanie w asemblerze.
25
Unix
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
26
Linux
Akronim rekursywny: Linux Is Not UniX
Linux jest to bezpłatna wersja systemu operacyjnego UNIX o
otwartym źródle.
praktycznie: nazwę „Linux” odnosimy do całego systemu
operacyjnego: jądra wraz z aplikacjami.
technicznie: Linux jest to jądro systemu;
Linus Torvalds,
twórca Linuxa
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
27
Mac OS
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
28
DOS
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żytkownikowy
Jednoprocesowy
System przerwań
29
Rodzina Windows
listopad 2013 – Windows Server 2012 R2
17 października 2013 – Windows 8.1
30
Novell Netware
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
31
Android
System operacyjny dla urządzeń mobilnych oparty na jądrze Linuksa oraz
oprogramowaniu na licencji GNU.
Początkowo możliwe było tworzenie aplikacji jedynie w Javie, obecnie możliwe jest pisanie
natywnego kodu z użyciem C/C++.
Aktualna wersja: 4.4.2 KitKat, 12.2013
Wielozadaniowy
Od wersji 4.2 - wieloużytkownikowy
32
IOS
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.
33

similar documents