Temat: Wielozadaniowość systemu Linux.
Informacje Ogólne
Linux jest systemem wielozadaniowym co umożliwia mu równoczesne wykonywanie więcej niż jednego procesu.
Proces jest to egzemplarz wykonywanego programu, posiadający własną przestrzeń adresową. Do wyświetlania listy uruchomionych procesów używamy polecenia – ps.
Procesy
Program – polecenia zapisane w pliku w systemie plików. Uruchamiając program tworzymy proces.
Proces – uruchomiony program.
Proces użytkownika – rozpoczęty przez użytkownika w terminalu.
Proces deamon – proces systemowy nie związane z terminalem.
Procesy i deamony
Związek pomiędzy deamonami a procesami użytkownika:
(obrazek)
Deamony
Deamony – specjalne procesy pracujące w tle i wykonujące zwykle ważne zadania w systemie. Dzięki istnieniu deamonów duża część systemu pracuje jako niezależne programy, co pozwala na utrzymanie stosunkowo niewielkiego rozmiaru jądra.
Poza tym poszczególne deamony mogą być uaktywnione lub ponownie uruchamiane po zmianie konfiguracji, nawet podczas działania systemu. Pracując jako niezależne procesy, deamony mogą być wykonywane współbieżnie, nie blokując innych programów.
W systemach uniksopodobnych deamony mają dodaną na końcu nazwy, zwyczajowo, literę „d”. Na przykład:
Ftpd – deamon FTP
Httpd – deamon http
Inetd – deamon Inet
W Microsoft Windows podobną do deamona funkcjonalność mają usługi Windows.
Procesy
Informacje niezbędne do identyfikacji procesów i budowy drzewa relacji:
Process ID – unikalny identyfikator przypisany do każdego procesu w systemie
Proces potomny – proces rozpoczęty przez inny proces
Proces macierzysty – proces, który rozpoczyna inne procesy
Parent Process ID – PID procesu rodzica
Jeżeli zabijemy proces rodzica to umierają wszystkie jego procesy dzieci
Polecenie ps
Polecenia ps może używać każdy użytkownik, ale wyświetlane będą tylko te procesy, których jest on właścicielem. Root może wyświetlić listę wszystkich procesów uruchomionych przez wszystkich użytkowników i procesów systemowych za pomocą polecenia ps –A.
Polecenie pstree
Polecenie pstree wyświetla procesy w postaci drzewa, dzięki czemu mona zobaczyć, które procesy zainicjowały inne procesy.
Opcja –p wyświetla PID procesów
Opcja –u wyświetla identyfikator użytkownika, jeśli właściciel się zmienił
Ponieważ drzewo może być bardzo długie wypróbuj następujące polecenie, aby wyświetlić tylko jedną stronę naraz na ekranie: pstree –up | less
Zakończenie procesu macierzystego kończy również wszystkie procesy potomne
Zarządzanie procesami
Linux jest systemem bardziej stabilnym niż Windows, ale również w tym systemie czasami jakiś proces się zawiesza i zachodzi potrzeba zamknięcia zawieszonego procesu. Do usuwania procesów służy polecenie kill – polecenie to musi jako argument otrzymać identyfikator PID danego procesu.
Składnia:
Kill nr_procesu – usunięcie bezpieczne procesu
Kill -15 nr_procesu – usunięcie bezpieczne procesu
Kill -9 nr_procesu – wymuszenie zakończenia procesu
Killall nazwa_procesu – wymuszenie zakończenia procesów o podanej nazwie
Środowisko powłoki Linuksa pozwala na uruchamianie procesów zarówno na pierwszym panie (foreground – polecenie fg) jak i w tle (background – polecenie bg).
Polecenie nohup – tworzy proces osierocony (którego „zaadoptuje” super deamon).
Polecenie top – daje spojrzenie w czasie rzeczywistym na działalność procesora. Wyświetla listę najbardziej zasobożernych zadań systemu i udostępnia interakcyjny interfesj obsługi procesów.
Parametry:
-q – wyjście z programu
-i – ignorując wszelkie procesy duchy i procesy próżnujące
-h – wyświetla pomoc
-k – zabija proces (zostaniesz zapytany o PID procesu)
-n – liczba wyświetlanych procesów
man top – pełna pomoc polecenia top
Ustalanie priorytetu procesu
nice – komenda systemu Linux, służąca do uruchamiania procesów z określonym priorytetem.
Komenda ustala priorytet procesu zgodnie z zasadą, że procesowi o większym priorytecie zostanie przyznane więcej czasu procesora niż procesowi o mniejszym priorytecie. Priorytet określa się z parametrem –n będącym liczbą całkowitą z przedziału -20 do 19.
Składnia: nice –n 20 xeyes
renice – komenda poprawiająca, zmieniająca priorytet już działającego procesu.
Składnia: renice –n 5 –p 8576