Gestione dei processi

Documenti analoghi
Introduzione a Linux Lezione 4 Gestione dei processi

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

LABORATORIO DI SISTEMI OPERATIVI

Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva Processi

Processi. Introduzione. Effective user/group id. Fork

Introduzione. P4 termina prima di P3, P2 e P3 prima di P1 P1 P2 P3 P4 P1 P1 P2 P3 P4. Padre. P1,..., P4 sono processi. Figlio

Richiami sui Concetti Fondamentali dei Processi

Simulazione esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Processi. Esecuzione di programmi. Multi-tasking. Processo = programma in esecuzione

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Scheduling di attività

Lab 19 Unix e comandi di base

Il sistema operativo LINUX La shell

Sistemi Operativi e informatica 1

Introduzione a Unix/Bash. Insieme minimo di strumenti per interagire con la shell Bash, compilare ed eseguire

Funzionamento. Francesco Benincasa (a.k.a. ciccio2000) GNU/Linux Incontri aperti Pagina 1

Utente. Sistemi operativi 2003/2004. /etc/passwd

Proprietà di un processo

Come si accede a BASH Tasti utili: Ctrl-Alt-F1, Ctrl-Alt-F7. Il Primo comando : exit (CASE SENSITIVE!!) Si può uscire con CTRL-D

INTRODUZIONE ALLA SHELL BASH (PARTE 1) Marica Antonacci INFN BARI

Gestione dei processi nel sistema operativo Unix

Processi. C. Baroglio a.a

Funzioni, Stack e Visibilità delle Variabili in C

Corso di Informatica Modulo T3 1-Nucleo e processi

Corso di Laboratorio di Sistemi Operativi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Ulteriori comandi sui file

System call per la gestione di processi

Shell BASH. Variabili Redirezione

System call per la gestione di processi

LABORATORIO DI SISTEMI OPERATIVI

Gestione dei Processi

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005

Elementi di Informatica A. A. 2016/2017

Provare e installare Linux

Corso di Reti di Calcolatori L-A

LINUX: struttura generale

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2018/2019. Comandi Shell

Corso di Informatica

Lezione 5 in laboratorio processi, stringhe

Il supporto al sistema operativo

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Cautele coi file aperti

Page 1. Programmazione. Shell e programmazione. File comandi (script) Introduzione alla programmazione nella shell di Unix

Controllo di processi

Funzioni, Stack e Visibilità delle Variabili in C

ESERCITAZIONE 2 fork e exec

Lab. di Sistemi Operativi - Esercitazione n 4- a.a Sed e Awk

SISTEMI OPERATIVI. Processi in Linux. Giorgio Giacinto Sistemi Operativi

Esercizi su permessi

Sistemi Operativi. La gestione delle risorse

: livelli : azione : processo

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2015/2016. Comandi Shell

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Gestione dei processi Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet

Corso di Informatica

L utility Unix awk [Aho-Weinberger-Kernighan]

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

Introduzione al sistema Linux

CX: 4 K DX:12 K PX:4 K CY:16 K DY: 4 K PY:4 K

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2016/2017. Comandi Shell

Gestione della configurazione Input/Output PLC Cosa c'è di nuovo?

Sistema operativo e processi. Il Sistema Operativo ed i Processi. Il sistema operativo. Il sistema operativo

KNOS - MANUALE INSTALLAZIONE CONSERVAZIONE ON SITE

Lezione 3: Programmazione della Shell di Unix

Configurazione di una LAN in ambiente Windows

L'applicazione integrata con il servizio My Fattura

Segnali. Tecnica di comunicazione asincrona tra processi. Si può solo inviare uno tra un insieme fissato di segnali

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

2. Cenni di sistemi operativi

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini

Esempio di domande sul file system

Ulteriori comandi sui file

Pag. 1. Il Nucleo del sistema operativo (la gestione dei processi)

Principi operativi dei computer. Capitolo 7 Fluency Conoscere e usare l informatica

LABORATORIO DI SISTEMI OPERATIVI

Lezione 14 Comunicazione

Corso di Reti di Calcolatori T

Filtri e pipeline. qualsiasi comando unix ha a disposizione 3 file con cui comunicare con il resto del sistema: standard input in ingresso

Progetto II: Il linguaggio C e le chiamate di sistema sui processi

Esercitazione 11. Esercitazione di riepilogo

Esercitazione 1 la shell

Sistemi Operativi Informatica II. Presentazione del corso. a.a Patrizia Scandurra

Programma e Modalità d Esame

Sistemi Operativi, Secondo Modulo, Canale M Z Riassunto della lezione del 09/03/2017

Terza Esercitazione. Gestione di segnali in Unix Primitive signal e kill!

Wincc TIA Portal v14

Esercizio 2 Scrivere un programma C che: Prende in input da linea di comando il nome di una directory ed il nome di un file. Se non e' possibile aprir

04/04/2016 MANUALE DI ISTRUZIONI DELL APPLICAZIONE ENTRATEL-MULTIFILE VERSIONE 1.0.0

ACSO Programmazione di Sistema e Concorrente

5.19! Silberschatz, Galvin and Gagne 2005! 0! 20! 37! 57! 77! 97! 117! 121! 134! 154! 162!

Laboratorio in C su Processi e POSIX IPC (Inter Process Communications) Dalla nona lezione di laboratorio in avanti

Lab. di Sistemi Operativi

Processi - II. Franco Maria Nardini

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

Transcript:

Corso di Sistemi Operativi I/II Introduzione a Linux Gestione dei processi Ruggero Donida Labati Dipartimento di Informatica via Bramante 65, 26013 Crema (CR), Italy http://homes.di.unimi.it/donida ruggero.donida@unimi.it

Sommario La memoria in Linux I processi in Linux Tipi di processi Struttura dei processi Gestione dei processi Redirezione dell Input/Output Esercizi Ruggero Donida Labati 2

La memoria in Linux Introduzione alla memoria in Linux Evoluzione e integrazione dei processi Memoria allocabile Configurazione «Swappiness» Approfondimenti Ruggero Donida Labati 3

Introduzione Linux è un sistema operativo multi-user e multi-tasking Numerosi processi in esecuzione contemporaneamente Implementa meccanismi per la gestione di numerosi processi in memoria Allocazione spazio di memoria per ogni processo Protezione degli indirizzi Paginazione Memoria virtuale Ruggero Donida Labati 4

Evoluzione e integrazione tra i processi Sono presenti meccanismi per controllare l evoluzione e l integrazione tra i processi Avvio Sospensione Duplicazione Terminazione Ecc. Ruggero Donida Labati 5

Memoria allocabile La memoria allocabile è limitata dallo spazio di indirizzamento della CPU 4 GB su macchine a 32 bit Quando la memoria allocata supera la memoria fisica, viene utilizzata la partizione di swap Ruggero Donida Labati 6

Configurazione «Swappiness» (1/2) Lo spazio di swap viene usato per estendere la memoria utilizzabile oltre la capacità fisica Spazio di memoria dato dalla somma di memoria fisica + swap I processi utilizzati meno frequentemente vengono spostati nell area di swap HD di molti ordini di grandezza più lenti della RAM Il parametro «swappiness» definisce quanto spesso Linux sposterà contenuti dalla RAM allo swap Default: 60 Swap inizia quando la memoria è usata al ~40% Ruggero Donida Labati 7

Configurazione «Swappiness» (2/2) È possibile configurare il parametro Es. diminuire per sistemi con molta RAM (no macchina virtuale.) Valore attuale: cat /proc/sys/vm/swappiness Cambiare il valore sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf«sudo sysctl -p Ruggero Donida Labati 8

Approfondimenti Corso di sistemi operativi Andrew S. Tanenbaum Modern Operating Systems, 3 edition Ruggero Donida Labati 9

I processi in Linux Tipi di processi Struttura dei processi Gestione dei processi Ruggero Donida Labati 10

Tipi di processi Processi interattivi Processi automatici Daemon (o servizi) Ruggero Donida Labati 11

Processi interattivi (1/2) Sono avviati manualmente dall utente tramite un terminale Possono essere in foreground o in background In foreground bloccano il terminale finchè l esecuzione non è completata In background permettono l uso del terminale per altri processi Ruggero Donida Labati 12

Processi interattivi (2/2) È possibile avviare un processo interattivo in background aggiungendo & Es. Apertura di un nuovo terminale da shell xterm & Se si avviasse xterm in foreground la prima shell rimarrebbe inutilizzabile Comando per visualizzare i processi in background jobs Ruggero Donida Labati 13

Processi automatici I processi automatici (o batch) non sono associati ad un terminale Sono accodati dal sistema operativo ed eseguiti con base FIFO Sono eseguiti in due situazioni Ad un ora predefinita Comando at Quando il carico del sistema è < 80 % Comando batch Ruggero Donida Labati 14

Daemon Processi che sono sempre in esecuzione Inizializzati in fase di avvio della macchina In genere rimangono in background finchè non sono richiesti Networking HTTP server Ecc. È possibile fermarli o riavviarli (es. per applicare modifiche alla loro configurazione) Ruggero Donida Labati 15

Struttura dei processi Creazione Terminazione Sospensione e ripristino Attributi Ruggero Donida Labati 16

Creazione di un processo Un processo viene creato da un altro processo utilizzando due chiamate di sistema Duplicazione (fork) Sovrascrittura del codice con il codice del nuovo processo (exec) Il processo che origina tutti gli altri è il processo init Il processo init rimane il processo padre dei daemon Ruggero Donida Labati 17

Terminazione di un processo Quando un processo termina restituisce un codice di uscita (valore di ritorno) Derivato dal linguaggio C I codici di uscita cambiano per ogni programma Documentati nel manuale associato al programma man <nome_programma> Il comando kill permette di terminare un processo kill <ID_processo> Ruggero Donida Labati 18

Sospensione e ripristino di un processo Per sospendere un processo avviato in foreground bisogna inviare il segnale di SIGTSP Ctrl + Z Portare in foreground un processo che era in background fg <nome_processo> riprendere in background l esecuzione di un job sospeso bg <nome_processo> Ruggero Donida Labati 19

Attributi di un processo ID del processo (PID) ID del processo padre (PPID) Terminale a cui è associato (TTY) Utente reale (RUID) e utente effettivo (EUID) Utente reale è chi avvia il processo Utente effettivo controlla l accesso alle risorse Sono in genere uguali Gruppo reale (RGID) e gruppo effettivo (EGID) Numero nice Controlla la priorità del processo Ruggero Donida Labati 20

Gestione dei processi Elenco dei processi Tempo di esecuzione di un processo Priorità dei processi Schedulazione dei processi Ruggero Donida Labati 21

Elenco dei processi (1/2) Lista dei processi che attualmente si trovano in esecuzione ps In realtà ogni utente riceve il riepilogo dei processi che stanno girando con i suoi permessi Lista di tutti i processi presenti sulla macchina ps -aux Ruggero Donida Labati 22

Elenco dei processi (2/2) Lista dei processi e relazioni tra di loro pstree Lista dei processi aggiornata in modo dinamico top Ruggero Donida Labati 23

Tempo di esecuzione di un processo Tempo di esecuzione di un processo time <nome_processo> Output Tempo effettivo trascorso (real) Tempo di CPU utilizzato dal processo (user) Tempo di CPU utilizzato dal sistema per il processo (sys) Ruggero Donida Labati 24

Priorità dei processi (1/2) La priorità di un processo è definita dal suo numero nice Un alto valore di nice corrisponde ad una bassa priorità Un basso valore di nice significa che il processo è importante È possibile diminuire il valore di nice dei processi in base alle necessità Utile per processi che usano molto la CPU Poco utile per processi legati all I/O perché automaticamente impostati con un basso valore di nice Ruggero Donida Labati 25

Priorità dei processi (2/2) Definire la priorità di un processo tramite il suo valore nice Comando nice nice <nome_processo> Ruggero Donida Labati 26

Schedulazione dei processi Tipi di schedulazione Schedulazione tramite sleep Schedulazione tramite cron e anacron Schedulazione tramite at Schedulazione tramite batch Ruggero Donida Labati 27

Tipi di schedulazione (1/2) La schedulazione dei processi permette di impostarne l esecuzione in date e orari stabiliti Tre tipi di schedulazione Posticipare l esecuzione di una certa quantità di tempo Schedulare l avvio di un processo in modo regolare Impostare l avvio di un processo in un certo momento Ruggero Donida Labati 28

Tipi di schedulazione (2/2) Cinque strumenti possibili sleep cron anacron at batch Ruggero Donida Labati 29

Schedulazione tramite sleep Il comando sleep permette di ritardare l esecuzione di un processo Es. carico di sistema troppo elevato (sleep 10000; <processo_pesante>) & Promemoria (sleep 1800; echo "Lunch time..") & Ruggero Donida Labati 30

Schedulazione tramite cron (1/4) Il comando cron permette di configurazione il servizio crond Esegue i comandi in momenti determinati Configurazione contenuta nel file crontab La configurazione è testuale Modificando il file crontab crontab -e Ruggero Donida Labati 31

Schedulazione tramite cron (2/4) Struttura dei file crontab le righe vuote e quelle che cominciano con il simbolo # vengono ignorate le righe possono contenere un assegnamento ad una variabile d ambiente o un comando cron Formato generico dei comandi cron data-orario comando data-orario si scompone in altri cinque campi: minuti ore giorni-del-mese mesi giorni-della-settimana I campi possono contenere un asterisco (*) Ogni valore possibile Ruggero Donida Labati 32

Schedulazione tramite cron (3/4) I campi possono essere impostati in due modi Valori singoli Ogni volta che l orologio raggiunge quel valore Intervalli Ogni volta che l orologio raggiunge un valore compreso nell intervallo Elenchi Ogni volta che l orologio raggiunge uno dei valori possibili Passi Ogni volta che è trascorsa l unità di tempo specificata nel passo Ruggero Donida Labati 33

Schedulazione tramite cron (4/4) Esempio di comando cron Ogni giovedì alle 16:38 invia un email a pippo con oggetto «calcetto» 38 16 * * 3 mail s calcetto" pippo Ruggero Donida Labati 34

Schedulazione tramite anacron (1/2) Strumento simile a cron, utilizzato nel caso di macchine non accesse sempre Configurato tramite il file /etc/anacrontab Due tipi di istruzioni Assegnamento a variabili d ambiente comandi I comandi sono nella forma n-giorni n-secondi-ritardo nome-attribuito-al-job comando Ruggero Donida Labati 35

Schedulazione tramite anacron (2/2) Opzioni n-giorni Indica la cadenza con cui deve essere eseguito il comando n-secondi-ritardo Indica il numero di secondi che deve essere atteso prima di cominciare nome-attribuito-al-job Attribuisce un nome al job comando Comando da eseguire. Ruggero Donida Labati 36

Schedulazione tramite at (1/2) Processo da eseguire una sola volta Comandi a terminale at <tempo_di_esecuzione> at> <comando_1> at> <comando_2> Ecc. Ctrl + D Ruggero Donida Labati 37

Schedulazione tramite at (2/2) È possibile usare un file con la lista dei comandi da eseguire at -f <file> <ora> Es. at -f routine 13:30 + 3 days Esegue i comandi contenuti nel file routine fra tre giorni alle 13:30. Ruggero Donida Labati 38

Schedulazione tramite batch Simile a at I processi sono eseguiti evitando di eccedere il carico di sistema impostato Non è obbligatorio specificare un orario Comando a terminale batch at> <comando_1> at> <comando_2> Ecc. Ctrl + D Ruggero Donida Labati 39

Redirezione dell Input / Output Canali di comunicazione del sistema Pipe Redirezione su file Ruggero Donida Labati 40

Canali di comunicazione del sistema Standard input Il canale tramite il quale vengono ricevuti i dati da processare Normalmente è usata la tastiera Standard output Il canale tramite il quale vengono emessi i dati processati Normalmente è usato il terminale Standard error È il canale tramite il quale vengono riportati gli errori Normalmente è usato il terminale Ruggero Donida Labati 41

Pipe Il comando pipe permette di usare lo standard output di un processo come standard input di un altro processo <programma_1> <programma_2> Es. utile per ordinare in modo alfabetico l output di un comando Ordinare in modo alfabetico l elenco delle directory ls sort Ruggero Donida Labati 42

Redirezione su file (1/2) Può essere utile salvare l output di un programma su file (redirezione dello standard output) Comando > «programma» > «file_output.txt» Il comando >> aggiunge l output al termine del file Oppure usare un file come input di un programma (redirezione dello standard input) Comando < «programma» < «file_input.txt» Ruggero Donida Labati 43

Redirezione su file (2/2) Redirezione dello standard error Comando 2> «programma» 2> «file_output.txt» Ruggero Donida Labati 44