background image

Unix - procesy 

'tedd' T. K dzierski 

str. 1/1 (ost. akt.: 14-02-05) 

 

 

Wymagania.we: przerobienie działu 'pliki i kartoteki', przerobienie działu 'edytory' 

 

 

 

Procesy 

 

Ka dy uruchomiony skrypt, program, program rezydentny – niezale nie od tego kto go uruchomił (system, u ytkownik) – jest przez Unixa traktowany jako 

proces. ten, kto uruchomił proces jest jego wła cicielem – podobnie jak to ma miejsce z plikami wła ciciel ma wpływ na swoje procesy. Administrator mo e 

wpływa  na działanie dowolnego procesu. Zanim zaczniemy sterowa  procesami – musimy by  w stanie wy wietla  informacje o bie aco uruchomionych 

procesach. 

 

 

 

wy wietl informacje o procesach 

 

ps [ parametry ] 

 

Komenda 

ps bez  adnych parametrów wy wietla krótk  informacj  o procesach u ytkownika, który wykonał t  komend , uruchomionych na terminalu z 

którego komenda 

ps została wykonana. To nam zwykle nie wystarcza – najcz ciej komend  ps wykonujemy po to,  eby zebra  informacj  o zablokowanych 

procesach (zap tlone programy,  le napisane skrypty, uruchomione współbie nie procesy, etc.). Komenda 

ps jest wtedy wykonywana na innym - ni  ten na 

którym działa proces – terminalu. 

Na parametry komendy 

ps musimy zwróci  szczególn  uwag  – w ró nych wersjach Unixa parametry wykonuj ce podobne akcje maj  zwykle całkiem ró n  

posta . W poni szym zestawieniu podajemy tylko najcz ciej u ywane parametry 

background image

Unix - procesy 

'tedd' T. K dzierski 

str. 2/2 (ost. akt.: 14-02-05) 

 

 

 

-A 

 

listuj wszystkie procesy, nie tylko procesy u ytkownika który wykonał komend  ps 

-f 

 

‘pełny’ listing – pełna informacja o procesach 

-u 

nazwa

 

wy wietlaj informacje tylko o procesach u ytkownika 

nazwa

  

 

Najcz ciej u ywana kombinacja parametrów: -Af 

-a 

 

listuj wszystkie procesy, nie tylko procesy u ytkownika który wykonał komend  ps 

-x 

 

wy wietlaj równie  informacje o procesach nie doł czonych do  adnego terminala  

 

 

(‘

without controling terminal’ – s  to najcz ciej procesy rezydentne, działaj ce ‘w tle’) 

-u 

 

wy wietlaj c informacje o procesach wy wietlaj nazw  u ytkownika i czas pocz tku działania procesu 

 

Najcz ciej u ywana kombinacja parametrów: 

-aux  

 

Informacja o procesach te  mo e wygl da  inaczej w ró nych wersjach Unixa: 

 

 

ps –Af | less 

UID 

 

PID 

 

PPID  C 

STIME   

TTY 

TIME  CMD 

root   

 

Sep 30  

0:53  /etc/init 

nowak   

599038  

15:02:46 

0:00  grade_svc 

background image

Unix - procesy 

'tedd' T. K dzierski 

str. 3/3 (ost. akt.: 14-02-05) 

 

nowak   

635226  

536862 0 

13:22:19 

pts/17 0:00  pine

 

ps –aux | less 

USER   

PID 

%CPU  %MEM   

SIZE  RSS 

TTY 

STAT  START   

TIME  COMMAND 

bin 

 

192 

0.0 

0.3 

 

768 

392 

Sep 3   

0:02  portmap 

nobody  

3348  0.0 

1.4 

 

3036  1820  ? 

Oct 23  

0:00  httpd 

oracle  

368 

0.0 

2.0 

 

19916  2604  ? 

Sep 3   

0:00  ora_pmon_AXII

 

 

Sugeruj  sprawdzenie (

man ps) we własnej wersji Unixa, jakie jest znaczenie poszczególnych kolumn z opisu procesów. To co b dzie nam potrzebne w 

dalszym omawianiu procesów to identyfikator procesu (PID) i jego nazwa (CMD lub COMMAND). 

 

 

 

wy lij sygnał do procesu: 

 

kill –sygnał pid 

 

Wy lij sygnał numer 

sygnał do procesu o numerze pid. Sygnały o numerach od 1 do 8 mog  by  ‘przechwycone’ przez procesy (zob. man signal) u ywaj ce 

standardowej biblioteki C. Sygnałów tych mo na u y  do sterowania ‘z zewn trz’ procesem rezydentnym. Wyobra my sobie proces 

p, który po uruchomieniu 

zaczyna wykonywa  – w p tli – długie (liczone w godzinach) obliczenia. Je eli odpowiednio napiszemy taki proces, to wysyłaj c mu komend  

kill odpowiedni 

sygnał mo emy np. spowodowa  zapami tanie na pliku wyników cz stkowych, ponowne zainicjowanie oblicze  po zmianie warunków pocz tkowych, etc. – 

bez przerywania działania procesu. 

Sygnał 

9 (

kill –9 pid) jest interpretowany przez system – powoduje natychmiastowe, bezwarunkowe zako czenie procesu o podanym identyfikatorze. 

 

background image

Unix - procesy 

'tedd' T. K dzierski 

str. 4/4 (ost. akt.: 14-02-05) 

 

Nale y bardzo uwa a  podczas wpisywania identyfikatora procesu w komendzie ‘kill –9’. Je eli zamiast identyfikatora zap tlonego procesu 

wpiszemy identyfikator shella z którym pracujemy (to te  jest proces) – jego zako czenie spowoduje tak  sam  akcj  jak wykonanie 

komendy logout – zostaniemy odł czeni od systemu. 

Jeszcze wi ksz  uwag  musimy zwróci  na identyfikator procesu kiedy działamy jako administrator. Je eli zamiast zap tlonego procesu 

u ytkownika ‘nowak’ zako czymy shell u ytkownika ‘kowalski’ – obaj b d  nieszcz liwi. Administrator mo e zako czy  dowolny proces 

dowolnego u ytkownika 

 

 

 

‘interaktywne’ wy wietlanie informacji o bie cym obci eniu komputera 

 

top 

 

Komenda 

top wy wietla informacje o bie co działaj cych procesach i obci eniu, jakie generuj  w systemie. Posta  wy wietlanej informacji zale y od wersji 

Unixa jakiej u ywamy: 

 

 

top 

IRIX64 elf 6.5 IP27   load averages: 0.05 0.03 0.00   14:09:30 

205 processes: 186 sleeping, 5 zombie, 13 stopped, 1 running 

2 CPUs: 98.3% idle,  0.5% usr,  1.2% ker,  0.0% wait,  0.0% xbrk,  0.0% intr 

Memory: 256M max, 183M avail, 102M free, 512M swap, 498M free swap 

PID 

 

PGRP  USERNAME 

PRI 

SIZE  RES   STATE  TIME  WCPU%  CPU%  COMMAND 

636653  

636653 sgitedd 

20 

2608K  1600K  run/0  0:11  1.7 

1.6 

 top 

633308  

579859 postfix 

20 

2240K  1184K  sleep  0:00  0.0 

0.11  cleanup 

background image

Unix - procesy 

'tedd' T. K dzierski 

str. 5/5 (ost. akt.: 14-02-05) 

 

659 

 

659 

root   

20 

2128K  560K  sleep  37:37  0.1 

0.09  llbd

 

top 

1:35pm  up 52 days, 20:39,  1 user,  load average: 0.00, 0.00, 0.00 

49 processes: 48 sleeping, 1 running, 0 zombie, 0 stopped 

CPU states:  0.3% user,  0.3% system,  0.0% nice, 99.4% idle 

Mem:  127716K av, 124232K used,   3484K free,  40376K shrd,  65280K buff 

Swap: 130748K av,    620K used, 130128K free   38356K cached 

PID 

USER  PRI 

NI 

SIZE  RSS 

SHARE  STAT  LIB 

%CPU  %MEM  TIME  COMMAND 

7670  tedd  18 

724 

724 

556 

0.5 

0.5 

0:06  top 

7528  root  3 

1272  1272  836 

0.1 

0.9 

0:01  sshd 

root  0 

388 

388 

328 

0.0 

0.3 

0:02  init

 

 

Ponownie sugeruj  sprawdzenie jakie informacje o procesach wy wietla komenda 

top w Unixie w którym pracujemy. To co jest ‘wspólne’ dla wszystkich 

wersji komend 

top to: 

 

• 

interaktywno  

komenda top uaktualnia list  wy wietlanych procesów co zadany okres czasu (zwykle co 2-3 sekundy, mo na zmieni  t  warto ). Otrzymujemy w ten 

sposób mo liwo   ledzenia – na bie co, w sposób ci gły procesów działaj cych w naszym systemie 

 

• 

mo liwo  zmiany kolejno ci w jakiej wy wietlane s  procesy 

background image

Unix - procesy 

'tedd' T. K dzierski 

str. 6/6 (ost. akt.: 14-02-05) 

 

po uruchomieniu komenda top reaguje na komendy wprowadzane z klawiatury. Rodzaj komend zale y od wersji komendy top – zawsze jednak, po 

naci ni ciu klawisza 

h (help) zobaczymy na ekranie spis tych komend. Zawsze równie  istnieje mo liwo  zmiany kolejno ci w jakiej wy wietlane s  procesy 

– mo emy je uporz dkowa  pod wzgl dem czasu CPU, zaj to ci pami ci – rzeczywistej lub wirtualnej, etc. 

 

• 

mo liwo  zmiany priorytetu procesu 

po naci ni ciu klawisza r (renice – zmiana priorytetu procesu) mo emy wprowadzi  pid procesu i nowy priorytet (IRIX: najpierw priorytet potem pid, Linux: 

najpierw pid potem priorytet – to si  czasem nazywa “standaryzacja” ];-) ). Priorytety w Unixie działaj  nast puj co: 

 

• 

ka dy proces ma własny priorytet, nadawany w momencie uruchamiania procesu. Priorytety procesów s  liczbami, zwykle z przedziału –20 do +20. 

Im 

mniejsza liczba tym wi kszy priorytet. Procesy które maj  priorytet +20 działaj  tylko wtedy, kiedy  aden inny proces w systemie nie działa. 

Procesy z priorytetem –20 działaj  ‘zawsze’ – inne procesy działaj  tyko wtedy, kiedy nie działaj  procesy z priorytetem –20. 

• 

pocz tkowa warto  priorytetu z jakim uruchamiany jest proces jest zwykle ustawiana ‘po rodku’ – na warto  zero. Mo na zmieni  t  warto  

uruchamiaj c proces komend  nice –n liczba komenda ... – liczba mo e mie  warto  dodatni  lub ujemn  (ujemn  warto  mo e poda  tylko 

administrator) – jest to liczba o jak  zmieniany jest standardowy priorytet uruchamianego procesu. Je eli ta liczba jest 

dodatnia – zmniejszamy 

priorytet, je eli jest 

ujemna – zwi kszamy priorytet procesu 

 

Test.wy: 

 

 

• 

zaloginuj si  dwukrotnie do systemu. W jednym zadaniu uruchom edytor na dowolnym pliku, w drugim – znajd  identyfikator 

uruchomionego edytora a nast pnie zako cz go komend  

kill –9 

• 

zaloginuj si  dwukrotnie do systemu, w jednym z zada  uruchom edytor, w drugim – komend  

top. Znajd  identyfikator uruchomionego 

edytora, zmie  jego priorytet działania 

 

Koniec 

 

Nast pny rozdział: 

przetwarzanie_teksowe.doc