SO2 1 1 (2011)


SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
UNIX / LINUX
PODSTAWOWE KONCEPCJE
1 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Plan wykładu
" Założenia systemu UNIX
" Funkcjonowanie systemu UNIX
" Podstawowe koncepcje
 Użytkownicy i ich prawa
 System plików
 Procesy
 Komunikacja międzyprocesowa
2 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Założenia systemu UNIX
" Założenia systemu UNIX
" Funkcjonowanie systemu UNIX
" Podstawowe koncepcje
 Użytkownicy i ich prawa
 System plików
 Procesy
 Komunikacja międzyprocesowa
3 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Początek systemu Unix
PDP-11
Bell Labs firmy AT&T
 1969  minikomputery PDP-7 i PDP-9 (DEC)
 1971  system przepisany na PDP-11
 V3: 1973 (potoki, język C)
 V6: 1976 (przepisany w języku C, rozprowadzany nieodpłatnie
na uczelniach)
 V7: 1978 (licencjonowany, przenośny, do czasu powstania
POSIX standard de facto)
Uniwersytet Berkeley
 1978 - system 1BSD (Berkeley Software Distribution)
 3BSD: 1979/1980 - system przepisany na VAX
 4BSD / 4.1BSD: 1980-1982 - na zamówienie DARPA dla
ARPANET
 4.2BSD: 1983 - pierwszy system zawierający obsługę TCP/IP
4 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Twórcy systemu Unix
Ken Thompson Dennis Ritchie
5 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Standaryzacja
POSIX (ang. Portable Operating System Interface)  próba
standaryzacji różnych systemów UNIX (standard IEEE 1003).
Współpraca: IEEE, The Open Group, IBM, Sun Microsystems,
Hewlett-Packard, NEC, Fujitsu, Hitachi. Standard obejmuje m.in.:
- interfejs programistyczny (API)
- interfejs użytkownika, czyli polecenia systemowe takie jak między
innymi: awk, echo, ed
- właściwości powłoki systemu.
Single UNIX Specification  inicjatywa The Open Group (poza
IEEE), w dużej mierze zbieżna z POSIX. Dokumentacja ta zyskała
bardzo dużą popularność dzięki bardzo wysokim cenom
dokumentacji POSIX.
6 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Klony Unixa
Linux
 Napisany w 1991 r. przez Linusa Torvaldsa
 Najbardziej popularna odmiana Unixa
 Rozpowszechniany na zasadach licencji GNU
4.4BSD Lite (ostatnia wersja Berkeley, okrojona z kodu
AT&T)
 FreeBSD (1993, dedykowany na PC) -> TrustedBSD
 NetBSD (1993, zorientowany na sieci komputerowe)
 OpenBSD (1996, zorientowany na bezpieczeństwo)
 Wolny od licencyjnych
 Rozwój mniej scentralizowany
Wiele komercyjnych: AIX, Irix, Solaris, &
7 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
yródła sukcesu UNIX
" Mocne podstawy techniczne.
" System projektowany na potrzeby badań, nie zaś na
potrzeby rynku komercyjnego
" Komputery PDP-11 były popularne, ale nie
posiadały wygodnego systemu operacyjnego
" Uwarunkowania prawne AT&T:
 Nie pozwalały na sprzedaż komputerów z systemem Unix
sferze komercyjnej, ale można było przyłączyć się do pisania
oprogramowania, które pracowało pod kontrolą tego
systemu
 Tanie licencje
8 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Filozofia systemu UNIX 1/3
" Modularność - małe jest piękne, bo:
 łatwe do zrozumienia,
 łatwe w zarządzaniu,
 bardziej wydajne,
 prostsze do ponownego zastosowania.
" Modularność - zrobić tak, aby każdy program robił
jedną rzecz, ale za to dobrze:
 bardziej wyszukane funkcje uzyskuje się jako złożenie
prostszych programów,
 każdy program jest jednocześnie filtrem.
9 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Filozofia systemu UNIX 2/3
" Przenośność ponad efektywność
 Najbardziej przenośne implementacje są rzadko efektywne
 Przenośność jest bardziej pożądana ze względu na częste
zmiany sprzętu
" Używanie przede wszystkim plików ASCII
 Powszechny, prosty format plików (taki wczorajszy XML)
 Przykład przenośności ponad efektywnością
" Kod wielokrotnego użycia
 Dobrzy programiści piszą dobry kod; wielcy programiści
pożyczają dobry kod
10 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Filozofia systemu UNIX 3/3
" Skrypty polepszyły działanie i przenośność
$ who | awk '{print $1}' | sort | uniq
Za pomocą polecenia zapisanego w jednej linii można wylistować
wszystkich zalogowanych użytkowników systemu.
" Unikanie wyszukanych interfejsów
 Użytkownikiem programu nie zawsze jest człowiek
 Wygląda ładnie, ale kod jest obszerny i zle napisany
 Problemy skalowania
" Milczenie jest złotem
 Raportowanie tylko wtedy, gdy dzieje się coś złego
" Myślenie hierarchiczne
11 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Istotne cechy systemu UNIX
" Przenośność (różne odmiany sprzętu,
implementacja w języku C)
" Hierarchiczny system plików, abstrakcja pliku
" Wielozadaniowość i wieloużytkownikowość w
przypadku minikomputerów
" Komunikacja międzyprocesowa
 Potoki: wyjście z jednego programu jest wejściem na inny
" Narzędzia programistyczne
" Narzędzia do projektowania
" Języki skryptowe
" Protokół TCP/IP
12 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Funkcjonowanie systemu UNIX
" Założenia systemu UNIX
" Funkcjonowanie systemu UNIX
" Podstawowe koncepcje
 Użytkownicy i ich prawa
 System plików
 Procesy
 Komunikacja międzyprocesowa
13 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Struktura systemu UNIX
programy C
użytkownik
skrypty
ls gcc
shell i narzędzia
ksh find
programy
open()
system operacyjny
fork()
jądro
exec()
sprzęt
sprzęt
Ogólna struktura systemu
operacyjnego
14 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Interakcje jądra
" Zarządza zasobami
 Nośniki danych
 Pamięć
Poziom użytkownika
 CPU
Wywołania systemowe
 Ekrany
 Sieć
Poziom jądra
" Współdzielenie
Przerwania
 Użytkowników
 Zadań
Poziom sprzętu
" Komunikacja
15 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Jądro
" Odgrywa role warstwy ochronnej pomiędzy programami
i sprzętem
" Zapobiega wzajemnemu oddziaływaniu programów na
siebie.
 Kontroluje wykonywanie procesów (tworzenie, kończenie,
wstrzymywanie, komunikacja)
 Planuje przydział czasu CPU poszczególnym procesom.
 Przydziela pamięć procesom.
" Obsługuje urządzenia peryferyjne takie jak terminale,
taśmy, urządzenia dyskowe i sieciowe.
" Shell i narzędzia - pozostała część systemu operacyjnego
poza jądrem
16 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Klasyczna architektura jądra
Środowisko
wykonania
program
biblioteki
trap
użytkownik
Interfejs wywołań systemowych
jądro
Podsystem plików
IPC
Usługi
Podsystem
Bufory podręczne
systemowe
kontroli planista
procesów
znakowe blokowe
pamięć
Prog.obsł.urządzeń
sprzęt
17 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Podsystemy jądra
" System plików
 Hierarchia katalogów, pliki regularne, peryferiały
 Mnogość systemów plikowych
 Wejścia/wyjścia (I/O)
" Sposób dostępu procesów do plików, terminale I/O
" Zarządzanie procesami
 Sposób współdzielenia przez procesy CPU, pamięci i sygnałów
 Planowanie
 Komunikacja międzyprocesowa
 Zarządzanie pamięcią
" Różne odmiany systemu UNIX mają odmienne implementacje
różnych podsystemów !
18 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Interfejs a implementacja
Interfejs: które żądania mogą być zgłaszane i jakiego typu odpowiedzi
należy się podziewać?
Implementacja: w jaki sposób udzielane są odpowiedzi na zgłaszane
żądania
BSD, HP-UX, Solaris i Tru64 mają więcej różnic funkcjonalnych niż Linux
i np. Unixware
Cygwin (GPL) - implementacja
standardu POSIX funkcji systemowych
przeznaczona dla systemów Win32 oraz
zestaw oprogramowania w większości
przeniesionego z systemów typu Unix (w
tym X.Org i KDE)
19 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Wywołania systemowe
" Na poziomie jądra zaimplementowano
szereg specjalnych procedur
" Program użytkownika wywołuje
procedurę w trybie jądra, wykorzystując
do tego celu pułapkę.
" Procedura obsługi pułapki przełącza
CPU w tryb uprzywilejowany i jądro
wykonuje wywołanie systemowe
" CPU przechodzi z powrotem do trybu
użytkownika
" Istnieje API języka C do wszystkich
wywołań systemowych
20 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Struktury danych jądra
" Informacja o każdym Przestrzeń użytkownika
procesie.
Kod Kod Kod
" Tabela procesów:
zawiera wpis dla
Dane Dane Dane
każdego procesu w
systemie.
Info. o Info. o Info. o
procesie procesie procesie
" Tabela otwartych
plików: zawiera
przynajmniej jeden wpis
Tabela otwartych Tabela
dla każdego otwartego
plików procesów
pliku w systemie.
Przestrzeń jądra
21 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Podstawowe koncepcje:
użytkownicy i ich prawa
" Założenia systemu UNIX
" Funkcjonowanie systemu UNIX
" Podstawowe koncepcje
 Użytkownicy i ich prawa
 System plików
 Procesy
 Komunikacja międzyprocesowa
22 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Podstawy bezpieczeństwa systemu Unix
" Z systemów UNIX może korzystać jeden lub więcej
użytkowników, posiadających identyfikator i nazwę
(proces logowania).
" Zbiór użytkowników może tworzyć grupę. Użytkownicy
mogą być członkami wielu grup.
 Specjalny użytkownik (id: 0, nazwa: root) ma pełną kontrolę nad
systemem.
 Każdy użytkownik należy do pierwotnej (domyślnej) grupy.
23 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Uwierzytelnianie
" użytkownik wybiera 8 znakowe hasło
" hasło jest zamieniane na 56b ciąg za pomocą 7b kodu ASCII
" powstały 56b ciąg jest kluczem algorytmu DES
" e-blok algorytmu DES jest modyfikowany za pomocą 12b wartości 
ziarna (ang. salt) ustalanego na ogół na podstawie bieżącego czasu
" tak zmodyfikowany algorytm DES jest wykonywany na 64b bloku
złożonym z samych zer
" wyjście podaje się na wejście kolejnej iteracji (25 iteracji)
" 64b wynik transformowany na 11-znaków z alfabetu 64 znakowego
(A-Z, a-z, 0-9,  . ,  / )
" /etc/passwd
" /etc/shadow
24 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Kontrolowanie praw użytkowników i grup
" Podczas kontroli weryfikowane jest czy:
 może być wykonana określona operacja dotycząca pliku lub
procesu?
 można czytać lub pisać z/do pliku?
 można uruchomić program?
 można użyć określonego sprzętu?
 można zatrzymać określony proces?
25 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Prawa związane z plikami
" W systemie UNIX dostępny jest sposób ochrony plików
oparty na pojęciu użytkownika (właściciela) i grupy
użytkowników.
" Występują trzy typy praw:
" read - proces może czytać zawartość pliku
" write - proces może zapisywać dane do pliku
" execute - proces może wykonać zawartość pliku
" Trzy zbiory uprawnień:
" uprawnienia dla właściciela
" uprawnienia dla grupy
" uprawnienia dla pozostałych
" Poza modelem POSIX.1 używany również POSIX.1 e ACL
oraz rozszerzenia własne (LSM)
26 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Mechanizmy setuid i setgid
" Jądro może może ustawić efektywny ID użytkownika i
grupy przypisany procesowi na inny niż rzeczywisty ID
użytkownika i grupy
 Pliki wykonywane z ustawioną flagą setuid lub setgid umożliwiają
zmianę wartości tych ID
" Umożliwia wykonanie zadań uprzywilejowanych:
 Np., zmiana hasła użytkownika
" Są zródłem zagrożeń w przypadku wykrycia błędów w
systemie
27 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Podstawowe koncepcje: system plików
" Założenia systemu UNIX
" Funkcjonowanie systemu UNIX
" Podstawowe koncepcje
 Użytkownicy i ich prawa
 System plików
 Procesy
 Komunikacja międzyprocesowa
28 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Hierarchia plików systemu UNIX
Linux RedHat
29 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Definicja: Nazwa pliku
Ciąg znaków różnych niż ukośnik (ang. slash). Nazwa jest wrażliwa na
duże i małe litery.
/
tmp
etc bin
usr
date
foo who
dmr wm4
foo
who
date
.profile
.profile
30 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Definicja: Nazwa ścieżki
Ciąg zera lub więcej nazw plików, oddzielonych od siebie znakiem
ukośnika / i opcjonalnie rozpoczynająca się znakiem / (ścieżka
bezwzględna).
/
tmp
etc bin
usr
foo date
who
dmr wm4
.profile
/usr/wm4/.profile
31 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Definicja: Katalog roboczy
Katalog, na który domyślnie wskazuje nazwa pliku.
/
tmp
etc bin
usr
foo date
who
dmr wm4
.profile
32 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Definicja: Względna nazwa ścieżki
Nazwa ścieżki zbudowana względem katalogu roboczego (przeciwieństwo
ścieżki bezwzględnej)
/
tmp
etc bin
usr
foo date
who
dmr wm4
.. odnosi się do katalogu rodzica
. odnosi się do katalogu bieżącego
../wm4/.profile
.profile
33 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Pliki i katalogi
" Plik jest po prostu ciągiem bajtów
 Nie występuje typ pliku (dane czy też plik wykonywalny)
 Brak sekcji
 Przykład filozofii systemu Unix
" Katalogi są listami plików i ich statusu:
 daty utworzenia,
 itp.
" Innowacja systemu UNIX: urządzenia traktuje się tak
samo jak pliki, np.:
 /dev/tty, /dev/lpr, /dev/modem
" Dowiązania sztywne i symboliczne
34 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Tablica otwartych plików
" Wykonywanie operacji I/O na pliku wymaga najpierw jego
otwarcia, potem czytania/zapisywania, i wreszcie
zamknięcia.
" Jądro zarządza globalna tablicą, zawierająca informacje o
każdym otwartym pliku.
Inode Tryb Licznik Pozycja
1023 read 1 0
1331 read/write 2 50
&
35 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Tablica deskryptorów pliku
" Każdy proces zawiera własną
tabelę plików, które otworzył.
" Każdy otwarty plik jest
skojarzony z numerem lub
 uchwytem , nazywanym
deskryptorem pliku (fd).
" Każdy wpis w tabeli wskazuje
na wpis w tabeli otwartych
plików.
" Tablica indeksowana jest od
numeru 0.
36 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Dlaczego nie stosuje się bezpośrednich
odwołań do tablicy otwartych plików?
" Przechowywana jest dodatkowa informacja:
 Na przykład, czy potomek powinien dziedziczyć otwarte pliki
(tzw. close-on-exec flag)
" Wygoda z punktu widzenia jądra
 Przekierowanie (pośredni szczebel w dostępie do otwartych
plików) ułatwia zarządzanie bezpieczeństwem
" Schemat numerowania otwartych plików może być
lokalny dla danego procesu (0 .. 128).
37 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Standardowe wejście / wyjście/ diagnostyka
" Trzy pierwsze wpisy w tabeli deskryptorów są
zarezerwowane i oznaczają:
" Wpis 0 oznacza standardowe wejście
0
" Wpis 1 oznacza standardowe wyjście
1
" Wpis 2 standardowe wyjście
2
komunikatów o błędach
3
" Domyślnie standardowe wejścia/wyjścia
. . .
dotyczą terminala (/dev/tty)
38 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Montowanie systemu plików
" Gdy startuje UNIX, hierarchiczny katalog odpowiada
systemowi plików ulokowanemu na pojedynczym dysku
nazywanym urządzeniem root.
" Montowanie pozwala na połączenie katalogu root z
istniejącą hierarchia katalogów.
" Za pomocą mechanizmu montowania systemy plikowe
utworzone na innych urządzeniach mogą być dołączone
do pierwotnej hierarchii katalogów.
39 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Montowanie systemów plików
urządzenie root
urządzenie zewnętrzne
/
/
a
a
b
b
/
Urządzenie Punkt montowania
a
/
b /a/b
a
Tablica montowania
b
40 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Podstawowe koncepcje: procesy
" Założenia systemu UNIX
" Funkcjonowanie systemu UNIX
" Podstawowe koncepcje
 Użytkownicy i ich prawa
 System plików
 Procesy
 Komunikacja międzyprocesowa
41 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Procesy
" Zwykle tworzone za pomocą fork lub vfork
" Dobrze zdefiniowana hierarchia procesów: jeden rodzic i
zero lub więcej procesów potomnych. Proces init jest
korzeniem tego drzewa.
" Podczas życia procesu za pomocą wywołania funkcji
systemowej exec może być wymieniany jego kod
" Procesy kończą się zwykle po wywołaniu exit
42 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Stanu procesów w systemie Unix
fork
User
Running
Initial
Idle
system call,
return
interrupt
fork
swtch()
Kernel
exit
Zombie Runnable
Running
swtch()
wait
sleep()
continue
wakeup stop
stop
Stopped
Asleep
stop
Stopped
continue
wakeup
Asleep
43 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Kontekst procesu
" Przestrzeń adresowa
 kod, dane, stos, pamięć współdzielona ...
" Informacje kontrolne (u-obszar, tablica procesów proc)
 u-obszar, struktura procesów, odwzorowania
 stos jądra
 Odwzorowania translacji adresów
" Dane uwierzytelniające (ang. credentials)
 ID użytkownika i grupy
" Zmienne środowiskowe
 Zmienna=wartość
 Zwykle przechowywane na spodzie stosu
44 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Informacje kontrolne procesu
" U-obszar
 Część przestrzeni użytkownika (powyżej stosu).
 Zwykle odwzorowywany w ustalony adres.
 Zawiera informacje niezbędne podczas wykonywania procesu.
 Może być wymieniany (ang. swapped)
" Tablica procesów Proc
 Zawiera informacje konieczne wtedy, gdy proces nie wykonuje się.
 Nie może być wymieniany (ang. swapped).
 Tradycyjna tabela o ustalonym rozmiarze.
45 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
U-obszar i tablica Proc
" U-obszar " Tablica Proc
 Wskaznik do pozycji w  ID procesu i grupy
tablicy Proc
 Wskaznik na U-obszar
 Rzeczywisty/efektywny ID
 Stan procesu
 argumenty, zwracane
 Wskazniki na kolejki 
wartości lub błędy
planowania, uśpione, etc.
bieżącego wywołania funkcji
 Priorytet
systemowej.
 Informacja zarządzania
 Info o sygnałach
pamięcią
 Tabela deskryptorów plików
 Flagi (znaczniki).
 Bieżący katalog i bieżący
korzeń.
46 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Dane uwierzytelniające użytkownika
" Każdy użytkownik posiada przypisany unikalny ID
użytkownika (uid) oraz ID grupy (gid).
" Superużytkownik (root) ma uid == 0 i gid == 0
" Każdy proces posiada zarówno rzeczywisty jak i efektywny
ID.
 Efektywny ID => tworzenie plików i dostęp,
 Rzeczywisty ID => rzeczywisty właściciel procesu. Stosowany
podczas wysyłania sygnałów.
" Efektywny lub rzeczywisty ID nadawcy musi być równy rzeczywistemu
ID odbiorcy.
47 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Szeregowanie procesów
" Algorytm planowania round-robin z wywłaszczeniami
" Każdy proces posiada przydzielony, ustalony kwant czasu
" Procesy w trybie jądra mają przypisane priorytet jądra
(priorytet uśpiony), który jest wyższy niż priorytety
użytkownika.
" Priorytety jądra 0-49, użytkownika 50-127.
48 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Sygnały
" Zdarzenia asynchroniczne i wyjątki
" Sygnały generowane są za pomocą funkcji systemowej
kill()
" Operacje domyślne lub specyficzne programy obsługi
napisane przez użytkownika
" Ustawiają bit w masce sygnału w tablicy procesów
" Wywołania systemowe mogą być restartowane.
49 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Procesy w systemie Unix
Proces: wykonywana jednostka
" Definicje
 program: zbiór bajtów przechowywanych w pliku, który
może być wykonany
 obraz: komputerowe środowisko wykonywania programu
 proces: wykonanie obrazu
" Unix może jednocześnie (współbieżnie) wykonywać
wiele procesów.
50 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Tworzenie procesu
" fork
 Tworzy nowy proces
 Kopiuje pamięć wirtualna rodzica
 Kopiuje katalog roboczy i deskryptory otwartych plików
 Zwraca procesowi rodzicielskiemu wartość PID potomka
 Zwraca procesowi potomnemu wartość 0
" exec
 Kopiowane parametry mogą być zminione przed
wywołaniem exec
 Nadpisuje proces wywołujący ta funkcje nowym procesem
51 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Podstawowe koncepcje:
komunikacja międzyprocesowa
" Założenia systemu UNIX
" Funkcjonowanie systemu UNIX
" Podstawowe koncepcje
 Użytkownicy i ich prawa
 System plików
 Procesy
 Komunikacja międzyprocesowa
52 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Komunikacja międzyprocesowa
Sposób w jaki komunikują się procesy:
" Przekazywanie argumentów i środowiska
" Zapis/odczyt regularnych plików
" Status wyjścia
" Sygnały
" Aącza
" Mechanizmy IPC
" Gniazda
53 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Podejście z wykorzystaniem plików
" Uruchom pierwszy program, jego wyjście zapisz do pliku
" Uruchom drugi program, używając poprzedniego pliku
jako jako wejścia
proces 1 proces 2
" Zbędne używanie dysku
 Wolne operacje
 Może zająć dużo przestrzeni dyskowej
" Niemożliwe zastosowanie wielozadaniowości
54 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Sygnały
" Sygnał: wiadomość, którą proces może przesłać do procesu lub
grupy procesów, jeśli tylko ma odpowiednie uprawnienia.
" Typ wiadomości reprezentowany jest przez nazwę symboliczną
" Dla każdego sygnału otrzymujący go proces może:
 Jawnie zignorować sygnał
 Realizować specjalne działania za pomocą tzw. signal handler
 W przeciwnym przypadku realizowane jest działanie domyślne (zwykle
proces jest usuwany)
" Typowe sygnały:
 SIGKILL, SIGTERM, SIGINT
 SIGSTOP, SIGCONT
 SIGSEGV, SIGBUS
55 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Przykład sygnałów
" Jeśli istnieje potomek, to wysyła sygnał SIGCHLD do
rodzica.
" Jeśli rodzic chce czekać na zakończenie potomka, to
powiadamia system, że chce przechwycić sygnał
SIGCHLD
" Jeśli nie zasygnalizuje oczekiwania, to sygnał
SIGCHLD jest przez niego ignorowany
56 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Obsługa sygnałów
/* kod procesu p */
void sig_hndlr(...) {
. . .
/* DOWOLNY KOD */
signal(SIG#, sig_hndlr);
}
. . .
/* DOWOLNY KOD */
Wykonujący się proces q
Pojawia się  SIG#
wykonuje się sig_hndlr
q jest blokowany
q wznawia wykonywanie
57 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Aącza
" Ogólna idea: wyjście z jednego programu jest
wejściem na następny i vice versa
A B
" Oba programu uruchamiane są jednocześnie
" Często używana jest tylko jedna ze stron łącza
58 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Jeszcze o łączach
" Aącza są często tworzą łańcuch
 Wywołanie filtrów
stdout
stdin
A B C
59 / 60
SYSTEMY OPERACYJNE II UNIX / LINUX PODSTAWOWE KONCEPCJE
Komunikacja międzyprocesowa w
przypadku procesów niepowiązanych
" FIFO (łącza nazwane)
 Specjalny plik, który p otwarciu reprezentuje łącze
" System V IPC
 Kolejki komunikatów
 Semafory
 Pamięć współdzielona
" Gniazda (ang. sockets)  model klient/serwer
p1 p2
60 / 60


Wyszukiwarka

Podobne podstrony:
SO2 2 1 (2011)
SO2 2 2 (2011)
SO2 1 2 (2011)
SO2 1 2 (2011)
2011 05 P
BHP styczeń 2011 odpowiedzi wersja x
ZARZĄDZANIE WARTOŚCIĄ PRZEDSIĘBIORSTWA Z DNIA 26 MARZEC 2011 WYKŁAD NR 3
Fakty nieznane , bo niebyłe Nasz Dziennik, 2011 03 16
Kalendarz roku szkolnego na lata 2011 2029
test zawodowy 7 06 2011
2011 experimental problems
Mirota 1 2011
2011 kwiecień
Środowa Audiencja Generalna Radio Maryja, 2011 03 09

więcej podobnych podstron