• Non ci sono risultati.

Processi Esecuzione di programmi

N/A
N/A
Protected

Academic year: 2022

Condividi "Processi Esecuzione di programmi"

Copied!
5
0
0

Testo completo

(1)

Processi

Esecuzione di programmi

Processo = programma in esecuzione

Ogni processo è identificato da un numero intero, detto PID (process identifier)

Ogni processo ha un contesto (tutte le info. nec. per l’esecuzione) User-level: contenuto dello spazio degli indirizzi, ambiente run-time (descrittori di file)

Kernel-level: parametri di scheduling, e controllo delle risorse Necessario xché siamo in presenza di multi-tasking!!

Multi-tasking

Supponendo di avere una CPU sola, ad ogni istante un solo processo potrà essere in esecuzione, il meccanismo di CPU scheduling fa sì che la CPU venga usata un po’

da tutti i processi rendendo l’impressione che questi vengano eseguiti in parallelo

Ogni volta che la CPU viene tolta ad un processo e passata ad un altro occorre fare context switching, cioè cambiare contesto caricando le info necessarie al processo corrente

(2)

Nascita di un processo

Ogni processo è creato da un processo preesistente tramite la system call (chiamata al S.O.) fork L’unica eccezione è il processo init che è il primo processo creato all’avvio del sistema ed ha PID = 1 Ogni esecuzione di un comando Unix produce un nuovo processo (spesso brevissimo); quando l’utente preme

“invio” l’ambiente di esecuzione (un interprete di comandi detto “shell”) crea un processo che esegue il comando in questione

Anche la shell è un processo creato all’atto del login

Elenco dei processi

Per visualizzare l’elenco dei processi attualmente in esecuzione si utilizza di solito il comando ps

Senza opzioni vengono visualizzati i soli processi avviati dall’utente che si è identificato su quel terminale:

Prompt> ps PID TTY TIME CMD 1472 pts/1 00:00:00 bash 1489 pts/1 00:00:00 csh 1528 pts/1 00:00:00 ps identificatore

Opzioni d’uso

Il comando ps ha moltissime opzioni

Esempi di risultati differenti ottenuti utilizzando opzioni o loro combinazioni:

prompt> ps -a

PID TTY TIME CMD 1345 tty1 00:00:00 bash 1359 tty1 00:00:00 xinit 1368 tty1 00:00:00 ksmserver 1454 tty1 00:00:00 knotify

(3)

Altro esempio

prompt> ps -u

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND baroglio 1472 0.0 0.8 2720 1656 pts/1 S 15:30 0:00 /bin/bash baroglio 1489 0.0 0.7 2752 1472 pts/1 S 15:30 0:00 -sh baroglio 1522 0.0 0.4 2664 820 pts/1 R 15:34 0:00 ps -u

proprietario statistiche di uso

ora di avvio tempo d’esecuzione

nome identificatore

stato proc

Combino le opzioni

prompt> ps -aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.9 0.2 1356 532 ? S 15:28 0:03 init root 2 0.0 0.0 0 0 ? SW 15:28 0:00 [keventd]

root 3 65.8 0.0 0 0 ? SW 15:28 4:46 [kapm-idled]

root 4 0.0 0.0 0 0 ? SW 15:28 0:00 [kswapd]

root 5 0.0 0.0 0 0 ? SW 15:28 0:00 [kreclaimd]

root 6 0.0 0.0 0 0 ? SW 15:28 0:00 [bdflush]

root 7 0.0 0.0 0 0 ? SW 15:28 0:00 [kupdated]

root 8 0.0 0.0 0 0 ? SW 15:28 0:00 [mdrecoveryd]

root 63 0.0 0.2 1316 392 ? S 15:28 0:00 open -w -s -c 12

baroglio 1345 0.0 0.8 2700 1628 tty1 S 15:29 0:00 -bash baroglio 1359 0.0 0.4 2880 836 tty1 S 15:29 0:00 xinit /etc/X11/xi baroglio 1368 0.1 2.8 12608 5408 tty1 S 15:29 0:00 ksmserver –resto

baroglio 1526 0.0 0.5 2852 972 pts/1 R 15:35 0:00 ps -aux

Comando top

Anche top elenca i processi attivi sul nostro processore però mentre ps restituisce un’istantanea dello stato dei processi, top ha una durata non istantanea durante la quale mostra l’andamento delll’attività in corso.

I processi vengono elencati in ordine di occupazione della CPU, in testa quelli più CPU-costosi

(4)

Processi e controllo del terminale

Prompt> mio_programma

Supponiamo di avere prodotto il programma “mio_programma” e di averlo mandato in esecuzione, fino a quando non terminerà il programma manterrà il possesso del terminale, al termine ricomparirà il prompt e potrò digitare un nuovo comando Supponiamo che l’esecuzione sia molto lunga … potrei voler riavere il controllo del terminale mentre il programma viene eseguito in background

Passagio back ↔ fore-ground

Si dice che il processo che ha il controllo del terminale è eseguito in foreground

Su uno stesso terminale posso avere tanti processi eseguiti in background ma uno solo in foreground

Prompt> mio_programma Per far passare “mio_programma”

da esecuzione in foreground a esecuzione in background devo eseguire i seguenti passi …

Foreground → background

1. Premere la combinazione di tasti CNTRL-Z, questa combinazione di tasti produce un segnale che causa la sospensione del processo; a questo punto abbiamo nuovamente il controllo 2. Eseguire il comando “bg” che causa l’esecuzione

in background del processo sospeso

E’ possibile eseguire direttamente un

(5)

background → foreground

eseguendo il comando “fg” causo l’esecuzione in foreground del processo in background

Riferimenti

Documenti correlati

5) Abbattimento Barriere Architettoniche. Si dovrà dare continuità al percorso intrapreso per “l’accessibilità per tutti” e farsi carico del diritto alla

[r]

Questo organismo di Garanzia nel mandato appena iniziato, nell’intento di favorire il diffondersi di una cultura attenta ai diritti e al benessere delle persone di minore età,

La riunione del 26 novembre del Consiglio Pastorale, pur vissuta online per l’aggravarsi della pandemia, è stata molto proficua, affrontando in par- ticolare la problematica delle

Gli strumenti dovranno essere congegnati per realiz- zare quanto individuato come strumentali per i fini di qui sopra ovvero per l’interesse della categoria, quali ad esempio,

Esecuzioni di brani con acc.to del pianoforte Obiettivi minimi: Saper decodificare ed eseguire correttamente allo strumento gli elementi delle notazione musicale in funzione

Cliccando sul pulsante di richiesta dell’avviso di pagamento, il programma produce un documento contenente tutte le informazioni necessarie per poter effettuare il

A questo proposito è ferma intenzione di questa Amministrazione creare un Fondo di Solidarietà Sociale, alla cui costituzione chiameremo le forze economiche e produttive più