Systemy operacyjne
TEMAT: Środowisko Linux – Procesy w systemie Unix
Celem ćwiczenia będzie zapoznanie się z podstawowymi informacjami dotyczącymi procesów
w systemie Unix. System ten pozwala na wykonywanie wiele procesów jednocześnie, jest to jednak
pozorne, gdyż w danym momencie wykonuje się tylko jeden co pare milisekund. Wszystkie procesy
posiadają swojego rodzica, z których się wywodzą, po za jednym wyjątkiem, procesem init
uruchamianym wraz ze startem systemu. Posiadają one swoje numery identyfikacyjne oraz numery
swoich przodków.
1. WYŚWIETLANIE PROCESÓW
Aby zobaczyć istniejące procesy w systemie, które aktualnie pracują służy polecenie ps. Do
wyświetlenia pełnej listy procesów oraz do podziału na strony wyświetlania należy dopisać parametry
–ef | more.
Ps –ef | more
W kolumnach dostaniemy informacje oznaczone skrótami tj.:
- UID numer użytkownika ( właściciela procesu)
- PID numer identyfikacyjny procesu
- PPID numer PID rodzica danego procesu
- C miara obciążenia procesora
- STIME czas rozpoczęcia działania procesu
- TTY nazwa terminala związanego z procesem
- TIME czas wykorzystania procesora
- CMD komenda, która wywołała proces
W systemie procesy mają wielu różnych właścicieli. Chcąc zobaczyć procesy tylko jednego
właściciela wpisujemy polecenie ps –fu nazwa_użytkownika. Na poniższym zrzucie ekranu widać w
jaki sposób są dane wyświetlane. Jest to tylko niewielka część procesów istniejących w systemie.
2. ZADANIA w SYSTEMIE
Obok pojęcia procesu, kolejnym ważnym pojęciem w systemie unix jest zadanie (ang. job).
Zadanie jest to proces, który został uruchomiony przez wywołanie komendy z danego terminala.
Podczas uruchamiania zadania, aktywne zadanie, w tym przypadku nasz terminal przechodzi do
działania w tle. Zadania możemy uruchamiać tak aby działały w tle oraz je usypiać ( inaczej
zatrzymywać ) i wyłączać ( zabijać ). Do uruchomienia procesu w tle wykorzystujemy symbol „&”.
Rafał Polak 12k2
Laboratorium Komputerowe nr.8
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
:nano & - edytor nano uruchomiony w tle
CTRL+Z – uśpienie działającego procesu
Uruchamiamy w tle kilka programów. Aby zobaczyć wszystkie istniejące zadania w systemie
wpisujemy w wierszu poleceń jobs.
Programy uruchamiane w tle zostają automatyczne zastopowane. Możemy je wywołać na
główne okno, czyli przejść do programu poleceniem
Fg %numer_zadania – tzw. foreground
// uruchamiane w tle to background.
Programy w tle często powinny wykonywać jakieś działania, dla naszego oka niewidoczne.
Aby sprawdzić czy taka możliwość istnieje wywołamy zadanie, które wykonywać się będzie w tle a
swoje wyniki działania zapisuje do pliku. Dla porównania zostanie ten sam skrypt uruchomiony w tle
oraz w sposób tradycyjny.
Po uruchomieniu skryptu dwa wcześniej uruchomione zadania są zastopowane, natomiast
skrypt data jest w trakcie pracy. Zapisuje on aktualną datę w pliku z odstępem 30 sekund dokładnie
dwa razy. Natomiast gdy uruchomi się ten sam skrypt w tradycyjny sposób zostaniemy pozbawieni na
30 sekund dostępu do normalnej pracy na konsoli. A więc co jeżeli chcemy przerwać działanie takiego
skryptu na rzecz ważniejszych działań…
3. ZABIJANIE PROCESÓW I ZADAŃ
Do zmiany stanu zadania lub procesu służy polecenie kill. Ma ono wiele wariantów. Aby
zatrzymać (zawiesić) zadanie używamy polecenia kill -STOP z numerem zadania
poprzedzonym znakiem "%". Aby zatrzymać zadanie:
kill -STOP %numer
Jeżeli chcemy wyłączyć, zakończyć zadanie w systemie używamy polecenia:
kill -9 %numer
Do zakańczania procesów w systemie wykorzystujemy ten sam sposób, jednakże podajemy
numer identyfikacyjny procesu PID i nie poprzedzamy znakiem procentu. Jeżeli zabijemy proces,
który posiadał dzieci, czyli był rodzicem dla innych procesów, procesy te także bezwarunkowo
zostaną zakończone.
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.