sop lab2, PJWSTK, 1 semestr, SOP ćwiczenia


  1. Z każdym `programem' uruchomionym w Linuksie związany jest proces (przynajmniej jeden). Aby zobaczyć listę działających procesów możesz w terminalu wpisać polecenie ps

0x01 graphic

  1. Jak widać poprzednie polecenie nie zwróciło zbyt długiej listy a to dlatego, że samo polecenie ps zwraca listę procesów `związanych' z aktualnym terminalem (uruchomionych z w danym terminalu).

  2. Przeprowadźmy mały test. Uruchom drugi terminal i sprawdź listę uruchomionych procesów poleceniem z p.1. Na drugim terminalu uruchom edytor nano ale w tle

0x01 graphic

Sprawdź teraz wynik polecenia z punktu 1. na obu terminalach. Czy widzisz różnicę.

  1. Dodając odpowiednią opcję do polecenia ps możesz wyświetlić wszystkie działające procesy skojarzone' z jakimś terminalem.

0x01 graphic

(uwaga u Ciebie wynik na ekranie może być inny ale proces nano powinien być widoczny)

Pierwsza kolumna w powyższym wyniku to tzw. identyfikator procesu (PID), druga kolumna pokazuje z którym terminalem proces jest `skojarzony' (jak widać nano jest skojarzony z 2. pseudoterminalem pts/1 bo na tym terminalu go uruchomiłem). Opcja -a nie wyświetla procesów nie skojarzonych z żadnym terminalem i nie wyświetla session leader'ów

Zadanie

Sprawdź jak działa opcja -e wyświetlająca wszystkie procesy uruchomione nie koniecznie skojarzone z jakimś terminalem.

Odszukaj w manualu do polecenia ps opcje -a i -e i sprawdź ich opisy.

  1. Jeśli zamiast -a użyjemy a wtedy wynik może być trochę dłuższy

0x01 graphic

Pojawiły m.in. procesy typu session leader (procesy które w kolumnie STAT mają m.in. literę `s').

Zadanie

- Odszukaj helpie co oznaczają wpisy w kolumnach STAT, TIME i COMMAND. Nie przejmuj się jeśli nie wszystko zrozumiesz. To przychodzi z czasem .

  1. Procesy mogą rodzić inne procesy. Za pomocą opcji f możesz sprawdzić który proces kogo urodził (kolejne zagłębienia określają relację rodzic-dziecko)

0x01 graphic

  1. Czasami przychodzi taka potrzeba, żeby znaleźć proces który nie jest `skojarzony' z żadnym terminalem i wtedy można na przykład dodać opcję x (zauważ że procesy nie skojarzone z żadnym terminalem w kolumnie TTY mają ?). Przykład

(wszystkie procesy których właścicielem jest użytkownik uruchamiający dane polecenie ps)

0x01 graphic

(wszystkie procesy)

0x01 graphic

Zadanie

- Sprawdź jak działa ps z użyciem opcji fx, ax

- Skoro już ustaliliśmy, że między procesami może zachodzić relacja rodzic-dziecko, sprawdź jak się nazywa rodzic wszystkich procesów czyli proces o najniższym numerze PID.

- Znajdź w manualu opcję o polcenia ps i za pomocą niej spróbuj zdefiniować swój własny format wyniku wyświetlających PID procesu, PID rodzica procesu, status procesu i polecenie którym proces został uruchomiony

- Jeśli jest zainstalowany program pstree i sprawdź jak działa.

  1. PID'y procesów mogą posłużyć do wysyłania procesom sygnałów. Można na przykład zatrzymać proces, który się `zawiesił' wysyłając mu sygnał KILL, na przykład możemy zatrzymać nasz proces nano (aczkolwiek nie jest on procesem, który się zawiesił). Sygnały wysyłamy za pomocą polecenia kill (z tym że wysłanie sygnału nie zawsze oznacza `ubijanie' procesu)

0x01 graphic

  1. Na drugim terminalu uruchom polecenie 0x01 graphic

Na pierwszy terminal i sprawdź listę aktywnych procesów skojarzonych z dowolnym terminalem. Zwróć uwagę na wartość w kolumnie STAT przy procesie ping.

  1. Wyślij procesowi ping sygnał STOP. 0x01 graphic

(u Ciebie pewnie PID będzie inny, zanim wyślesz sygnał musisz odnaleźć PID procesu)

Czy polecenie ping wciąż działa w terminalu drugim terminalu? Wśród działających procesów wciąż powinno występować tyle że z innych statusem niż poprzednio. Wysyłając sygnał STOP spowodowałeś że proces jest w `stanie zawieszenia'. Wciąż działa ale nie otrzymuje czasu procesora.

  1. Taki zawieszony proces można zatrzymać wysyłając sygnał KILL lub wznowić jego działanie na przykład wysyłając sygnał CONT. Wyślij sygnał CONT procesowi ping. Powinieneś zauważyć że polecenie znów działa. Wyślij sygnał TERM aby zatrzymać proces.

  2. Uruchom jeszcze raz polecenie ping i wciśnij CTRL+Z (znowu wysłałeś sygnał STOP tyle że nie za pomocą polecenia kill tylko skrótem klawiaturowym). Sprawdź, że proces wciąż jest uruchomiony tyle że jest w stanie zawieszenia. Teraz już powinieneś wiedzieć, że CTRL+Z nie zatrzymuje procesu (możliwe że tak wcześniej myślałeś). Zatrzymaj proces ping.

  3. Uruchom procesy nano i ping localhost i obu wyślij sygnał STOP w dowolny sposób.

  4. Teraz już masz dwa procesy w stanie `zawieszenia'. Listę takich `zawieszonych' procesów dla aktualnej konsoli możesz wyświetlić poleceniem jobs

0x01 graphic

  1. Każdy z takich procesów możesz wznowić albo wysyłając sygnał CONT albo za pomoca polecenia fg.

  2. Polecenie fg przyjmuje jako parametr numer (NIE PID )`uśpionego' procesu poprzedzony znakiem %. Numer procesu możesz odczytać z pierwszej kolumny wyniku polecenia jobs (u nas nano ma numer 1. a vim numer 2.). Przywróć do działania proces Nano

0x01 graphic

I zakończ poprawnie działanie edytora za pomocą sekwencji CTRL+X

  1. Sprawdź że teraz polecenie jobs zwróci tylko jeden proces 0x01 graphic

  2. Ponieważ proces jest tylko jeden więc wystarczy wpisać samo fg aby go przywrócić do działania. Zrób to i zakończ proces za pomocą sekwencji CTRL+C. Sprawdź, że oba procesy się zakończyły.

  3. Przejrzyj manual opisujący listę dostępnych sygnałów 0x01 graphic

  4. Przejrzyj manual dla poleceń ps, kill, jobs, fg.

  5. Przejrzyj manual dla polecenia top. Polecenie zostanie omówione na zajęciach.

  6. Na zajęciach powiemy tez o procesach zombie.



Wyszukiwarka

Podobne podstrony:
sop lab1, PJWSTK, 1 semestr, SOP ćwiczenia
sop lab6, PJWSTK, 1 semestr, SOP ćwiczenia
sop lab5, PJWSTK, 1 semestr, SOP ćwiczenia
sop lab4, PJWSTK, 1 semestr, SOP ćwiczenia
Koncentracja - zadłużenie, semestr I, STATYSTYKA, ćwiczenia Plenikowska
cwiczenia 1 instrukcja 2010, BIOLOGIA UJ LATA I-III, ROK III, semestr I, Mikrobiologia, Cwiczenia
lab2(v2), Semestr III, Technologie wytwarzania
ELEKTROSTATYKA, Politechnika Gdańska, Budownictwo, Semestr I, Fizyka I, Ćwiczenia
Uniwersytet Trzeciego Wieku ANDRAGOGIKA, Studia magisterskie, I rok, I semestr, andragogika, z cwicz
terenówki, LEŚNICTWO SGGW, MATERIAŁY LEŚNICTWO SGGW, II rok, 4 semestr, Maszynoznawstwo, Ćwiczenia
BIOCHEMIA - ćwiczenia, STUDIA, WSR - Fizjoterpia, Rok I, Semestr 1, Semestr I, Biochemia, Ćwiczenia
Szczelna projekt moj!!!!!!, Politechnika Gdańska Budownictwo, Semestr 4, Fundamentowanie, Ćwiczenia,
kolo 6 sciaga, AGH, Semestr 5, TOU, ćwiczenia Łabędź
ćw 6 układ Fe-C składniki strukturalne mini, Studia, ZiIP, Semestr I, PNOM, Ćwiczenia
skierowanie szpital, Studia WSM, 7 semestr, DPF- ćwiczenia
cw 5, Studia, ZiIP, Semestr I, PNOM, Ćwiczenia

więcej podobnych podstron