Top Banner
Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013 “Processi bash” “Processi bash” 1 Laboratorio di sistemi operativi a.a. 2012/2013
24

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Aug 04, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Lab. di Sistemi Operativi- Lezione in aula -a.a. 2012/2013

“Processi bash”“Processi bash”

1Laboratorio di sistemi operativi a.a. 2012/2013

Page 2: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Sommario

I processi

Comando ps (process status)

Terminazione di un processo

CTRL-C

Kill

Controllo dei processi

Processi in backgroundProcessi in background

Jobs e Processi

Monitoraggio e Memoria

2Laboratorio di sistemi operativi a.a. 2012/2013

Page 3: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

- I processi -

3Laboratorio di sistemi operativi a.a. 2012/2013

- I processi -

Page 4: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

I processiSono programmi in esecuzione (parte dinamica di un programma)

Lo stesso programma può corrispondere a diversi processi(lanciato da utenti diversi)

Ogni processo può generare nuovi processi (figli) ed ècaratterizzato da:

PID (identificativo del processo)

PPID (identificativo del figlio generato dal processo)PPID (identificativo del figlio generato dal processo)

I processi si rappresentano con uno schema gerarchico dove alvertice c’è il processo INIT che è l’unico processo ad avere unPID=1 e nessun PPID

INIT è il processo che parte al boot del sistema creato dalprocesso principale chiamato root

4Laboratorio di sistemi operativi a.a. 2012/2013

Page 5: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

I processiModello gerarchico dei processi organizzata ad albero:

I�IT

SHELLSHELL

PID=1

5Laboratorio di sistemi operativi a.a. 2012/2013

COMANDOCOMANDOCOMANDO

Page 6: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

- Tabella dei processi ed Attributi -

6Laboratorio di sistemi operativi a.a. 2012/2013

- Tabella dei processi ed Attributi -

Page 7: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Tabella dei processiIl kernel gestisce una tabella dei processi che serve a teneretraccia del loro stato. In particolare sono registrati i valoriseguenti:

1. il nome dell'eseguibile in funzione che ha generato ilprocesso;

2. gli eventuali argomenti passati all'eseguibile al momentodell'avvio attraverso la riga di comando

3. il numero di identificazione del processo (PPID)3. il numero di identificazione del processo (PPID)

4. il numero di identificazione del processo che ha generatoquello a cui si fa riferimento (PID)

5. il nome del dispositivo di comunicazione se il processocontrollato da un terminale

6. il numero di identificazione dell'utente; (uid)

7. il numero di identificazione del gruppo; (gid)

7Laboratorio di sistemi operativi a.a. 2012/2013

Page 8: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Attributi dei processiOgni processo possiede vari ID

real user id: utente che ha lanciato il processo (uid)

real group id: gruppo a cui appartiene l’utente che halanciato il processo (gid)

effective user id: utente che determina i diritti delprocesso ad accedere al file system

effective group id

set-user-id e set-group-id: contengono una copia diset-user-id e set-group-id: contengono una copia dieffective user id e di effective group id

Di solito, i due utenti coincidono cioè

real user id = effective user id

real group id = effective group id

ovvero, i diritti di accesso sono determinati dall‘ utente cheesegue il programma

8Laboratorio di sistemi operativi a.a. 2012/2013

Page 9: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Attributi dei processiIn alcune situazioni, è desiderabile un comportamento diverso:

potrebbe essere necessario che un processo abbia (in undato momento) diritti maggiori di chi esegue il programma

Chiunque deve avere la possibilità di cambiare il file /etc/passwd

Si agisce su flag set-user-id e set-group-id :

Esempio:

comando passwd (cut /etc/passwd)

Si agisce su flag set-user-id e set-group-id :

se il flag set-user-id è attivo, quando il file viene eseguito:effective user id = st_uid

se il flag set-group-id è attivo, quando il file viene eseguito:effective group id = st_gid

9Laboratorio di sistemi operativi a.a. 2012/2013

comando passwd (cut /etc/passwd)

Page 10: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Attributi dei processiQuest i flag risolvono il problema di passwd

l’owner del “comando passwd” è root:

quando passwd viene eseguito, il suo effective user id èuguale a root

il comando può accedere in scrittura al file /etc/passwd

10Laboratorio di sistemi operativi a.a. 2012/2013

Page 11: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

- Comando ps (process status) -

11Laboratorio di sistemi operativi a.a. 2012/2013

- Comando ps (process status) -

Page 12: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Comando psIl comando ps fornisce i processi presenti nel sistema

Selezione:

niente processi lanciati dalla shell corrente

-u pippo i processi dell'utente pippo

Sintassi:

ps [selezione] [formato]

-u pippo i processi dell'utente pippo

-a (All) tutti i processi

Formato:

niente PID, terminale, ora di esecuzione, comando

-f (full) anche UID, PPID, argomenti

-F (Full) anche altro

12Laboratorio di sistemi operativi a.a. 2012/2013

Page 13: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Esempio: comando ps Esempio di utilizzo:

13Laboratorio di sistemi operativi a.a. 2012/2013

Page 14: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

- Terminazione di un processo: Ctrl-c kill -

14Laboratorio di sistemi operativi a.a. 2012/2013

- Terminazione di un processo: Ctrl-c kill -

Page 15: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Terminazione di un processo Per arrestare un processo in esecuzione si può utilizzare:

la sequenza Ctrl-c dal terminale stesso su cui il processo èin esecuzione

il comando kill seguito dal PID del processo (da qualsiasiterminale):

15Laboratorio di sistemi operativi a.a. 2012/2013

man

Uccide il processo

Page 16: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

- Controllo dei processi -

16Laboratorio di sistemi operativi a.a. 2012/2013

- Controllo dei processi -

Page 17: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Controllo dei processiNormalmente, la shell aspetta che ogni comando termini (comandoin foreground)

Con “comando&”, (e commerciale) la shell non aspetta (comando inbackground)

Il comando può̀ comunque scrivere su standard output

Esempio

17Laboratorio di sistemi operativi a.a. 2012/2013

job number = numero di job lanciatoin background dalla shell da quando èin esecuzione

Page 18: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Processi in backgroundI processi in background sono eseguiti in una sottoshell, inparallelo al processo padre (la shell) e non sono controllatida tastiera.

I processi in background sono quindi utili per eseguire task(Unix multi-tasking) in parallelo che non richiedonocontrollo da tastiera.

man lancio di un comando in background

18Laboratorio di sistemi operativi a.a. 2012/2013

"1" il numero di job (i job sono processi gestiti dalla shellcorrente),

mentre ”24760" il numero di processo (i processi sono gestiti dalsistema operativo).

Per terminare questo job/processo si può utilizzare sia kill %1che kill 24760.

man lancio di un comando in background

Page 19: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

jobs e processi

L’avvio da linea di comando di un singolo processo e’ un casoparticolare, quello in cui l’insieme contiene un solo elemento

Per avviare un job in background occorre terminare la linea dicomando con il carattere & (e commerciale):

> cmd1|cmd2|……|cmdN &

Questa procedura produce come output immediato la stampa avideo di un numero fra parentesi quadre che identifica il jobavviato in background, dopodichè ricompare il prompt: la shell èpronta a eseguire in parallelo altri comandi.

Su ogni terminale è possibile avviare molti job in background mauno solo può eseguire in foreground

19Laboratorio di sistemi operativi a.a. 2012/2013

Page 20: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

jobs e processiNon si deve confondere un job di shell con un processo

Un comando impartito attraverso una shell può generare più di unprocesso, per esempio quando viene avviato un programma o unoscript che avvia a sua volta diversi programmi.

Un job di shell rappresenta tutti i processi che vengono generatida un comando impartito tramite la shell stessa.

Cioè corrisponde ad un gruppo di processi connessi da una pipe:Cioè corrisponde ad un gruppo di processi connessi da una pipe:

Il job identifica l’insieme degli N processi avviati(corrispondenti ciascuno ad un comando), ciascun processo avra’comunque un proprio PID

20Laboratorio di sistemi operativi a.a. 2012/2013

> cmd1|cmd2|……|cmdN

Page 21: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Controllo dei processi

21Laboratorio di sistemi operativi a.a. 2012/2013

Page 22: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

- Monitoraggio e Memoria -

22Laboratorio di sistemi operativi a.a. 2012/2013

- Monitoraggio e Memoria -

Page 23: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

Monitoraggio e Memoria: comando top

23Laboratorio di sistemi operativi a.a. 2012/2013

Page 24: Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013wpage.unina.it/alberto.finzi/didattica/LSO/materiale/... · 2016-09-07 · Tabella dei processi Il kernel gestisce una

- Fine Lezione -- Fine Lezione -

24Laboratorio di sistemi operativi a.a. 2012/2013