Lezione 11 Processi Sistemi Operativi (9 CFU), Cdl Informatica, A

Lezione 11 Processi Sistemi Operativi (9 CFU), Cdl Informatica, A

Lezione 11 Processi Sistemi Operativi (9 CFU), CdL Informatica, A. A. ! !" ! 1 Dipartimento di Scienze Fisic$e, Informatic$e e %atematic$e Universit& di %odena e Re((io )mi*ia $ttp+"",e-*a-.in(..nimo.it"peop*e"andreo*ini"didattica"sistemi/operativi 1 0.ote of t$e da1 (%editate, (ente, meditate...) “This is the UNIX philosophy: write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a niversal inter"ace.# #o.(*as McI*ro1 (192 -) %atematico, In(e(nere, Programmatore Inventore de**e pipe e de**e utilit1 U3I4 2 SOLUZIONI DEGLI ESERCIZI 3 Esercizio 1 (1 min.) 0.al 5 il PID del processo init (il (estore dei servizi U3I4)6 4 Identi7cazione esatta con pidof Il PID del processo init p.8 essere individ.ato a partire dal s.o nome esatto con i* comando pidof+ pidof init Si dovre--e ottenere il PID 1. 5 Esercizio 2 (2 min.) I processi del des9top :;3OM)< iniziano con la strin(a :(nome<. Come si possono individ.are i processi del des9top in esec.zione6 6 Individuazione tramite pgrep I processi de**=am-iente des9top ;3OME possono essere individ.ati cercando *=espressione re(olare ^gnome.*$ con il comando pgrep+ pgrep ^gnome.*$ Per stampare anc$e i nomi dei comandi si .sa *=opzione -l+ pgrep -l ^gnome.*$ 7 Esercizio 3 (2 min.) Elencate t.tti i processi (e relativi PID) ese(.iti per conto del vostro .sername. Le((ete la pa(ina di man.ale del comando opportuno per capire come fare. 8 Lett.ra pagina manuale pgrep Si apra la pagina di man.ale del comando pgrep+ man pgrep Scorrendo la pagina, si dovre--ero trovare le due opzioni -u e -U, c$e svolgono il compito ric$iesto. Si .si *=opzione -u. Il perc$> sar& c$iaro in .na *ezione s.ccessiva. 9 Individuazione tramite pgrep I processi de**=.tente studente possono essere individ.ati desktop con *=opzione -u del comando pgrep+ pgrep -l -u studente 10 Esercizio 4 (2 min.) Aprite .n terminale. Con (li str.menti Processo a vostra disposizione, individ.ate .n padre modo per creare .na (erarc$ia di processi come @.ella mostrata in Processo 7(.ra. 7(*io Processo nipote 11 Esec.zione di s$e** gnome-terminal È suBciente lanciare .n Avvio de* em.latore di terminale ed terminale ese(.ire per tre volte il processo bash bash+ bash La (erarc$ia bash richiesta bash bash Avvio de**e Si ottiene l'a*-ero dei processi bash s$e** riportato a 7anco. bash 12 Esercizio 5 (2 min.) %ostrate la catena di processi da init ad .no @[email protected] dei processi bash. 13 Individuazione processo con pgrep Si invidivua .na istanza di EASH con il comando pgrep+ pgrep bash 1234 2345 3456 Si sce(lie .no dei PID, ad esempio 1234. 14 Gis.alizzazione tramite pstree Per vis.alizzare i processi ric$iesti si p.8 .sare il comando pstree. Si .sano le opzioni se(.enti+ -a → stampa dei comandi -p → stampa dei PI# -H → evidenziazione di un processo specifico (e antenati) Il comando ric$iesto 5 il se(.ente+ pstree -a –p -H 1234 Per visua*izzare solo *a catena di processi, si può sostit.ire *=opzione -H con l=opzione -s+ pstree -a –p -s 1234 15 Esercizio 6 (1 min.) Avviate il comando top. Ierminate il processo appena creato, inviandogli .n se(nale opportuno. 16 Esec.zione de* comando top Si apra .n n.ovo terminale e si ese(.a il comando se(.ente+ top 17 Individuazione de* PID con pgrep Si individ.a il PID del processo top con il comando pgrep+ pgrep top 1234 18 Ierminazione con kill Si invia il se(nale di terminazione anomala SIGI)'% al PI#+ kill 1234 3on 5 necessario esplicitare i* se(nale in @.anto SIGT)'M 5 il se(nale di default inviato al processo. Se proprio lo si v.ole esplicitare+ kill -15 1234 19 Esercizio 7 (3 min.) Ese(.ite .n em.latore di terminale. Le((ete la pa(ina di man.ale di pkill e individ.ate .n modo per terminare *=istanza piK recente del processo bash. 20 Lett.ra pagina manuale pgrep Si apra la pagina di man.ale del comando pkill+ man pkill Scorrendo la pagina, si dovre--e trovare *=opzione -n, c$e svo*(e il compito ric$iesto. 21 Uccisione de* processo con pkill Si termina il processo con il comando pkill, .sando *=opzione -n+ pkill -n bash $TTENZION%( P.ò succedere c$e @.esto comando non funzioni. Ciò capita @.ando si prova ad .ccidere i* termina*e da c.i si sta digitando il comando. BASF ignora per motivi di sic.rezza tutti i se(na*i ricevuti dai processi 7(*i. Per (arantire *a c$iusura, si .si SI;KILL (non (estibile) a* posto di SI;I)'%+ pkill -KILL -n bash 22 Esercizio 8 (2 min.) Gisualizzate i trenta 7le piK (randi ne**=intero 7*e s1stem. 23 Stampa di fi*e e dimensioni con find Si stampano i 7le e le relative dimensioni con il comando find+ find / -printf “%s %p\n” 24 Ordinamento con sort L=outp.t del comando precedente viene dato in pasto al comando di ordinamento sort -nrk1, c$e ordina le ri($e ricevute da ST#I3 in modo n.merico e decrescente s.l primo campo+ find / -printf “%s %p\n” | sort -nrk1 25 Se*ezione prime ri(he con head L=outp.t del comando precedente viene dato in pasto al comando di head -n 30, c$e seleziona le prime trenta ri($e (ovvero i primi trenta 7le)+ find / -printf “%s %p\n” | sort -nrk1 | head -n 30 26 Esercizio 9 (3 min.) Il comando se(.ente estrae le colonne :.sername< e :.ser ID< di /etc/passwd e stampa il valore delle .ltime dieci ri($e+ cut -f1,4 /etc/passwd | head -10 Geri7cate la correttezza del comando. 27 #e-.( de* comando con tee Si log(a o(ni outp.t intermedio a((i.n(endo .na istanza di tee dopo o(ni pipe+ cut -f1,4 /etc/passwd | tee cut.txt | head -10 | tee head.txt 28 Analisi o.tp.t cut L=outp.t di cut mostra tutti i campi di /etc/passwd, non solo il primo e il @.arto. Il separatore non 5 stato impostato; lo si imposta con *=opzione -d: di cut+ cut -d: -f1,4 /etc/passwd 29 #e-.( de* comando con tee Si log(a o(ni outp.t intermedio a((i.n(endo .na istanza di tee dopo o(ni pipe+ cut -f1,4 /etc/passwd | tee cut.txt | head -10 | tee head.txt 30 Analisi de**=outp.t di cut L=outp.t di cut mostra .no .ser ID pari a 65534. Ci8 5 molto sospetto, poic$> (li .ser I# dei primi .tenti sono solitamente vicini allo zero. Il @.arto campo del record di /etc/passwd 5 i* (ro.p ID, non lo .ser ID. Si imposta il terzo campo, ovvero lo .ser ID+ cut -d: -f1,3 /etc/passwd 31 #e-.( de* comando con tee Si log(a o(ni outp.t intermedio a((i.n(endo .na istanza di tee dopo o(ni pipe+ cut -f1,4 /etc/passwd | tee cut.txt | head -10 | tee head.txt 32 Analisi de**=outp.t di cut L=outp.t di cut 5 corretto. Si passa al comando s.ccessivo. 33 Analisi de**=o.tp.t di head L=outp.t di head mostra la stampa dei primi dieci .tenti in /etc/passwd. In realtà, si vo(liono (li .ltimi dieci .tenti. Si corre((e il comando .sando tail al posto di head+ tail 34 #e-.( de* comando con tee Si log(a o(ni outp.t intermedio a((i.n(endo .na istanza di tee dopo o(ni pipe+ cut -f1,4 /etc/passwd | tee cut.txt | tail | tee tail.txt 35 Analisi de**=o.tp.t di tail L=outp.t di tail 5 corretto. In de7nitiva, il comando corretto 5+ cut -f1,4 /etc/passwd | tail 36 Esercizio 1! (2 min.) Gisualizzate i trenta 7le piK (randi ne**=intero 7*e s1stem. Usate le named pipe per la com.nicazione tra processi. Spie(ate il -locco dei vari processi coinvolti. 37 Creazione named pipe con mkfifo Il comando 7nale ric$iede la colla-orazione di tre processi distinti. Pertanto, sono necessarie d.e named pipe per la com.nicazione. Si creano le named pipe con il comando mkfifo+ mkfifo fifo1 fifo2 38 Stampa di fi*e e dimensioni con find Si riversa ne**a named pipe fifo1 lo ST#OUI del comando se(.ente -asato su find, c$e stampa i 7le e le relative dimensioni+ find / -printf “%s %p\n” > fifo1 Il processo c$e ese(.e il comando si -locca al momento della scritt.ra, poic$> non esiste ancora .n lettore disponi-ile a cons.mare *=outp.t prodotto. 39 Ordinamento con sort Si ese(.e il comando di ordinamento sort -nrk1, le((endo le ri($e dalla named pipe fifo1 e scrivendo *=outp.t sulla named pipe fifo2+ sort -nrk1 < fifo1 > fifo2 Il processo c$e ese(.e il comando si -locca al momento della scritt.ra, poic$> non esiste ancora .n lettore disponi-ile a cons.mare *=outp.t prodotto. Il -locco di sort implica ancora il -locco di find, p.rtroppo. 40 Ordinamento con sort Si ese(.e il comando di ordinamento sort -nrk1, le((endo le ri($e dalla named pipe fifo1 e scrivendo *=outp.t sulla named pipe fifo2+ sort -nrk1 < fifo1 > fifo2 3on appena si ese(.e @.esto comando, find si sblocca e comincia a riversare il suo output.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    60 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us