procesy


Proces
Program - plik wykonywalny znajdujący się w pamięci dyskowej.
Proces to program wykonywany w ustalonym środowisku.
Nowy proces (proces potomny) powstaje przez rozwidlenie procesu
macierzystego (wyjątek stanowi proces init).
W ten sposób powstaje hierarchiczna struktura procesów.
Cechy procesu
" Identyfikator procesu (PID);
" Identyfikator procesu macierzystego (PPID);
" Identyfikator właściciela: rzeczywisty (UID) i obowiązujący (EUID);
" Identyfikator grupy: rzeczywisty (GID) i obowiązujący (EGID);
" Informacje o otwartych plikach;
" Środowisko (m. in. bieżący katalog roboczy)
" Ustalenia dotyczące obsługi sygnałów;
" Czasy (czas zużycia procesora, dł. działania).
" Priorytet , aktualny stan, nr terminala
Czym różni się proces potomny
od procesu macierzystego?
Po rozwidleniu proces potomny ma:
" nowy PID;
" inny PPID;
" własne kopie deskryptorów plików procesu macierzystego (proces potomny
ma dostęp do plików otwartych przez proces macierzysty)
Po wykonaniu funkcji exec może ulec zmianie:
" obowiązujący identyfikator użytkownika;
" obowiązujący identyfikator grupy.
Identyfikator procesu (PID)
Każdemu procesowi przyporządkowany jest jednoznaczny
identyfikator procesu.
Liczba całkowita należąca do przedziału [0, 30 000].
Ważne PID:
1 przyporządkowany procesowi inicjującemu init;
2 demon stron
0 planista (scheduler), używany przez jądro systemu.
Identyfikator procesu
macierzystego (PPID)
Każdy proces (z wyjątkiem procesu zerowego) ma swój proces
macierzysty (przodek: ang. parent process).
Tworząc nowy proces jądro przydziela mu numer identyfikacyjny
procesu macierzystego.
Jeśli proces zostanie osierocony, to jego PPID = 1 (identyfikator
procesu init).
Obowiązujący identyfikator
użytkownika
(ang. effective user ID)  zazwyczaj równy rzeczywistemu
identyfikatorowi użytkownika.
Jeśli program ma ustawiony bit SUID, to podczas wykonywania
programu
obowiązujący identyfikator użytkownika
= UID właściciela pliku programu
Obowiązujący identyfikator
grupy
zazwyczaj równy rzeczywistemu identyfikatorowi grupy.
Jeśli program ma ustawiony bit SGID, to wynikają z tego
dodatkowe prawa dla użytkowników podczas wykonywania
programu.
Polecenia ps, top
ps [-aAefl] [-u lista_UID_lub_login]
informacja o stanie procesów aktywnych
(bieżąca struktura hierarchii procesów)
Opcje:
-a najczęściej wykonywane procesy
-A (-e) wszystkie procesy
-f pełna informacja o procesach użytkownika
-l rozszerzona informacja o procesach
-u informacje dot. procesów określonego użytkownika
top bieżący podgląd procesów uruchomionych
w systemie (Q  wyjście)
Polecenie ps
S oznacza aktualny stan procesu:
S uśpiony. ang. sleeping
R oczekujący ang. runnable
Z proces-duch (zakończony, ale proces macierzysty nie czekał
na jego zakończenie) ang. zombie;
T wstrzymany ang. stopped
PRI (opcja l) Priorytet procesu
NI (opcja l) Wartość nice
STIME (opcja f) Czas rozpoczęcia procesu
TIME (wszystkie opcje) Czas życia procesu
Deskryptory plików
Deskryptor pliku - liczba naturalna.
Identyfikuje plik, który ma być otwarty do operacji wejścia-
wyjścia.
Deskryptory wiążą procesy z plikami.
Deskryptory wyznaczone w chwili utworzenia procesu:
0 standardowy strumień wejściowy (domyślnie:
klawiatura);
1 standardowy strumień wyjściowy (domyślnie: ekran
terminalu);
2 standardowy strumień diagnostyczny (domyślnie:
ekran terminalu).
Przykład. Deskryptory plików
w powłoce Bourne a
0(deskryptor 0)
1>plik  użyj pliku plik jako standardowego wyjścia
(deskryptor 1).
deskryptor1>&deskryptor2
 utwórz duplikat deskryptora deskryptor2
Przykład.
2>&1 Informacja dla shella, by utworzył deskryptor 2 jako
duplikat deskryptora 1 (ewaluacja od lewej do prawej)
Identyfikator grupy procesów
(PGID)
Każdy proces jest członkiem grupy procesów.
Dodatnia liczba całkowita identyfikująca grupę procesów nazywa się
identyfikatorem grupy procesów (PGID).
Przywódca grupy procesów - proces, którego PID jest równy
identyfikatorowi grupy procesów.
Identyfikator sesji (SID)
Grupy procesów należą do sesji
Sesja = zbiór procesów współdzielących terminal sterujący (jako
standardowe wejście-wyjście)
Identyfikator sesji (SID) to dodatnia liczba całkowita będąca
identyfikatorem procesu, który otworzył terminal i jest przywódcą
grupy procesów (tzw. procesu sterującego danym terminalem).
Zatem dla procesu sterującego terminalem: PID=PGID=SID.
Polecenia
ps  j informacja o stanie procesów aktywnych z
wyświetleniem PGID oraz SID
tty podaje nazwę ścieżkową pliku specjalnego
opisującego bieżący terminal użytkownika
(terminal sterujący dla grup procesów
użytkownika)
Rodzaje procesów
Proces uruchamiany jako:
" pierwszoplanowy (domyślnie; jeden)  użytkownik nie
może wydać innego polecenia
w trakcie jego działania.
" drugoplanowy (wiele)  możliwość uruchamiania innych
procesów.
Znak & na końcu polecenia (w wierszu powłoki) oznacza
uruchomienie procesu drugoplanowego.
Rodzaje procesów
" init
" demony
" procesy użytkowników
Demony
" Procesy drugoplanowe
" Nie mają terminala sterującego
" Wykonują zadania systemowe
" Większość uruchamiana podczas startu systemu
" Trwają przez cały czas pracy systemu
" Większość czasu spędzają na czekaniu na zdarzenie, po
którym wykonują swą pracę.
Przykłady. atd, cron, inetd
Podział czasu
Jądro przydziela procesom kwanty czasu procesora.
Czas jest przydzielany zgodnie z priorytetem procesu:
" liczba całkowita z przedziału [0, 39]
" większa liczba oznacza niższy priorytet.
Pytanie: Czy użytkownik ma wpływ na wysokość priorytetu procesu?
TAK:
" uruchomienie procesu w tle;
" żądanie zwiększenia wartości priorytetu: polecenie nice.
Sygnały
(przerwania programowe)
Sygnał = informacja dla procesu, że nastąpiło jakieś zdarzenie.
Wysłanie sygnału (do procesu) nastąpić może:
" z procesu (sygnały są przykładem mechanizmu komunikacji
między procesami);
" z jądra;
" od użytkownika.
Proces:
" przechwytuje sygnał (podejmuje określone działanie
zdefiniowane przez programistę)
lub
" ignoruje sygnał (wyjątki: SIGKILL, SIGSTOP),
lub:
" zezwala na wykonanie postępowania domyślnego.
Sygnały
Opis: /usr/include/signal.h
Lista:
ultra60:41% kill  l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV
SYS PIPE ALRM TERM USR1 USR2 CLD PWR WINCH URG
POLL STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU
XFSZ WAITING LWP FREEZE THAW RTMIN RTMIN+1 RTMIN+2
RTMIN+3 RTMAX-3 RTMAX-2 RTMAX-1 RTMAX
Przykłady sygnałów
ZNACZENIE (i postępowanie domyślne)
SIGHUP zawieszenie; wysyłany do wszystkich procesów, dla których
zamykany terminal jest terminalem sterującym;
wysyłany do wszystkich procesów w grupie po zakończeniu
procesu przywódcy grupy (zakończenie)
Sygnały - użytkownik
Postępowanie domyślne zakończenie:
SIGINT (2) przerwanie, sygnał generowany po naciśnięciu
klawisza przerwania (klawiatura: ^C);
SIGQUIT (3) podobny do SIGINT (klawiatura: ^\); generuje
obraz pamięci;
SIGKILL (9) proces nie może przechwycić ani zignorować sygnału.
SIGTERM (15) sygnał wysyłany do procesu domyślnie po użyciu
polecenia kill;
Postępowanie domyślne zatrzymanie:
SIGSTOP (19) zatrzymanie procesu (klawiatura: ^Z)  z możliwością
pózniejszego wznowienia; nie może być zignorowany
ani przechwycony przez proces.
Metody wysłania sygnału do
procesu przez użytkownika
1. Skrót klawiaturowy  do procesu pierwszoplanowego
2. Polecenie
kill [ -sig ] pid
Uwaga.
sig oznacza nazwę lub numer sygnału (zgodny z pozycją sygnału na liście wyświetlanej
poleceniem kill -l.
Przykład.
Wysłanie sygnału SIGKILL do procesu o identyfikatorze 100:
kill -9 100
kill -KILL 100
Sterowanie pracami
Praca (zadanie) to zbiór procesów oznaczonych wspólnym
identyfikatorem grupy procesów.
Ważna właściwość sterowania pracami :
użytkownik może przydzielać terminal różnym pracom.
Shelle dzielimy na:
" sterujące pracami np. shell C, KornShell (w systemie operacyjnym
pozwalającym na sterowanie pracami);
" nie mające właściwości sterowania pracami np. shell Bourne a.
Sterowanie pracami -
polecenia
jobs [ -l ] wyświetlenie numerów prac [i identyfikatorów
PID]
kill [ -sig ] %job_id
Polecenia służące do przenoszenia zadań z planu drugiego na
pierwszy i odwrotnie:
fg [ % job_id ]
bg [ % job_id ... ]
Podsumowanie
Polecenia: top, ps, kill, jobs, bg, fg, nice


Wyszukiwarka

Podobne podstrony:
Wyświetlacz MMI z 6 kanałowym procesorem dźwięku (9VD)
rup process engineerQCC276E
2010 artykul MAPOWANIE PROCESOW Nieznany
Formy i procesy peryglacjalne
EKO VI Promocja jako proces komunikacji
Kalendarium procesu?atyfikac
MEDIA w procesie socjalizacji
Mikrokomputer Pecel z procesorem AT90S8535 cz 3
Metody modelowania procesow 12 cz I (1)
Mechanizmy procesy i oddziaływania w fitoremediacji
P S Proces zakupów ISO 9001

więcej podobnych podstron