Process management 1
|
|
- Claudia Pasini
- 5 anni fa
- Visualizzazioni
Transcript
1 Process management 1
2 Process control subsystem user Level kernel Level trap user programs libraries system call interface kernel Level hardware Level file subsystem buffer cache character block device drivers process control subsystem hardware control hardware inter-process communication scheduler memory management 32
3 Process control subsystem Sincronizzazione tra processi. Interprocess communication (IPC): implementa e gestisce varie primitive di comunicazione tra processi, sia locali che remoti. Memory management: controlla l allocazione e la deallocazione della memoria. Schedulazione a breve termine: gestisce l allocazione della CPU tra i processi pronti. System calls: fork, exec, exit, wait, brk, signal 33
4 Overview Res sidente Switcher System calls Interrupt Handlers I/O drivers nte No on reside Processi utente Daemon Processo 1 Processo 2 Processo n Memoria centrale 2
5 bootstrap Processo Ø fork exec /etc/init fork exec /etc/getty exec /bin/login exec LOGIN SHELL swapper fork exec /etc/getty exec /bin/login exec LOGIN SHELL fork exec /etc/getty exec /bin/login exec LOGIN SHELL fork exec /etc/getty exec /bin/login exec LOGIN SHELL fork exec demoni
6 Immagine di un processo L immagine di memoria di un processo è organizzata in tre regioni: E rientrante, e può essere condiviso fra più processi Stack Dati Testo Ogni regione è uno spazio di indirizzamento autonomo 3
7 Cosa genera il compilatore C #include... char buffer[1000]; int version=1; main(int argc, char *argv[]) { int i; } while exit (0); int fun(int n) { int j; } if NON INIZIALIZZATI INIZIALIZZATI STACK TESTO 4
8 Formato di un eseguibile Un eseguibile è costituito da un insieme di header e un insieme di sezioni, contenenti codice o dati: Main header, con magic number Header della Sezione 1 Header della Sezione 2 Sezione 1 Sezione 2 5
9 Strutture dati per la gestione dei processi Process Table - si trova nel kernel, ed è residente; - contiene una entry per ogni processo, ed è dimensionata staticamente al momento della configurazione del sistema; - per ogni processo contiene le informazioni che ne permettono la schedulazione, e che devono essere sempre residenti. U-Area (user area) - si trova nel kernel, ma non è residente; - contiene quelle informazioni necessarie al kernel per la gestione del processo, ma che non è necessario che siano sempre residenti in memoria. Ready Queue - Liste dei processi ready (una per ciascun livello di priorità). 6
10 Strutture dati per la gestione dei processi Process Table U-Area PID PPID Stato del processo Flag di residenza Parametri di schedulazione (priorità, tempo di CPU usato, tempo di attesa) Dimensione del processo Maschere per i segnali locazione della entry nella kernel address map per la U-Area del processo associato 7
11 Strutture dati per la gestione dei processi Ptr alla Process Table entry 0 Registers & PC save area Stack del kernel per il processo Info relative alla system call corrente File descriptors dei file aperti dal processo Parametri per operazioni di I/O Directory corrente e root directory Informazioni per l accounting Puntatori alle region del processo UID e GID reale ed effettivo Process Table U-Area Text Table Stack Dati Testo Processo 8
12 Process table Text table residente swappable User structure Stack del kernel kernel utente dati globali stack heap codice
13 Strutture dati per la gestione dei processi Priorità Ready Q Process Table Stack Dati Testo Lista dei processi che hanno priorità 0 Processo U-Area Text Table 9
14 Sintesi fin qui Ready queue Ker rnel Process Table Switcher System calls Interrupt handlers U-Area U-Area U-Area Stack Stack Stack Dati Dati Dati Testo Testo Testo Processo 1 Processo 2 Processo n 10
15 Scheduling 28
16 Stati di un processo Un processo non ha controllo sulle transizioni di stato; Un processo parte in esecuzione sempre in kernel mode, e subito transita in user mode; Un processo in esecuzione transita da user mode a kernel mode ogni volta che invoca una chiamata di sistema; Un processo può terminare volontariamente, ma anche involontaramente per effetto di eventi esterni (segnali). 29
17 Sintesi fin qui Ready queue Ker rnel Process Table Switcher System calls Interrupt handlers U-Area U-Area U-Area Stack Stack Stack Dati Dati Dati Testo Testo Testo Processo 1 Processo 2 Processo n 10
18 Process switching La schedulazione viene effettuata t da una routine del kernel chiamata switcher (o schedulatore di breve termine) Uno switch di processo può avvenire in 4 casi: 1. quando un processo si pone in stato di Asleep; 2. quando esegue una exit; 3. quando si ritorna da una system call da esso invocata, ma ci sono processi Ready più prioritari; 4. quando si ritorna dalla gestione di un interrupt ma ci sono processi Ready più prioritari. 30
19 Scheduling Unix Tradizionale (1) Adatto per time sharing generale; Privilegiati i processi I/O bound, tra cui i processi interattivi; Garantisce assenza di starvation per CPU-bound e batch; Quanto di tempo indipendente dalla priorità dei processi; Non adatto per real time; Non modulare; Poco adatto ad architetture parallele. 31
20 Scheduling Unix Tradizionale (2) Algoritmo basato su code multiple con feedback (o round robin with multilevel feedback). Il sistema si comporta come segue: - assegna la CPU ad un processo per un quanto di tempo; - la dealloca quando il processo in esecuzione (i) ha esaurito il suo quanto, o (ii) rilascia volontariamente la CPU in attesa di un evento, o (iii) ci sono processi con maggiore priorità; - aggiorna dinamicamente le priorità. Un processo può avere bisogno di più feedback loop prima di finire. 32
21 Scheduling Unix Tradizionale (3) Ogni process entry contiene un campo priorità. Il range delle priorità è partizionato in due classi: User mode e Kernel mode; Le priorità di classe Kernel sono ulteriormente suddivise in: Interruptible e Not Interruptible; tibl Le priorità di processi di classe user vengono ricalcolate dinamicamente; Le priorità ità di prcessi di classe kernel non vengono mai ricalcolate; l Quando un processo rilascia la CPU, va in Asleep in attesa di un evento; Quando l evento occorre, il kernel esegue una wakeup con l indirizzo i dell evento e il processo in Asleep in testa alla coda sull evento viene messo nella coda Ready (*); I processi che erano in attesa di un evento in modo kernel rientrano con la stessa priorità (negativa). 33
22 Scheduling Unix Tradizionale (4) (*) Nota: In Unix tradizionale gli eventi sono mappati in indirizzi del kernel; Eventi diversi possono essere mappati nello stesso indirizzo kernel (ad es. attesa su un buffer e attesa di completamento di I/O vengono mappati sull indirizzo del buffer); Più processi possono essere in Asleep sullo stesso indirizzo kernel; Il kernel non tiene traccia di quanti processi sono in attesa; A seguito di una wakeup tutti i processi in Asleep in attesa su un evento vengono risvegliati e spostati nello stato Ready; Tuttavia molti di essi torneranno subito in Asleep (quelli fortemente I/O- bound). 34
23 Scheduling Unix Tradizionale (7) Kernel Mode Priorities NOT Interruptible Range of Process Priorities Priority Levels Swapper Waiting for Disk IO Waiting for Buffer Waiting for Inode Process Interruptible Threshold Priority User Mode Priorities Waiting for TTY Input Waiting for Tty Output Waiting for Child Exit User Level0 User Level1 User Level n 37
24 Scheduling Unix Tradizionale (5) Alla fine di un quanto (5 o 6 tick = 100 msec), il processo viene prelazionato forzosamente; Quando il processo j rilascia la CPU (forzosamente o no) viene incrementato il suo contatore CPU j di uso CPU; viene messo in fondo alla stessa coda di priorità; riparte lo scheduler su tutte le code. 1 volta al secondo, vengono ricalcolate tutte le priorità dei processi in user mode (dove nice j è un parametro fornito dall utente): CPU j = CPU j /2 (fading esponenziale) Priority j = CPU j + nice j (P.S.:I processi in kernel mode non cambiano priorità) 35
25 Scheduling Unix Tradizionale (6) I processi possono esercitare un controllo crudo del valore della loro priorità mediante la chiamata di sistema nice(value) La chiamata incrementa o decrementa di value il valore della priorità e setta il campo nice nella process entry con valore value; La chiamata funziona solo dalla sua invocazione da parte di un processo che sta in Running; Solo il superuser può usare valori che incrementano la priorità (cioè usare value negativo); I processi ereditano il campo nice con la fork e possono agire solo sul proprio campo (P.S.: se un amministratore di sistema desidera abbassare la priorità di vari processi, non lo può fare. Si può solo killare). 36
26 Scheduling Unix Tradizionale (8) Kernel Mode Priorities NOT Interruptible Movement of a Process on Priority Queues Priority Levels Process Swapper Waiting for Disk IO Waiting for Buffer Waiting for Inode Interruptible Threshold Priority User Mode Priorities Waiting for TTY Input Waiting for Tty Output Waiting for Child Exit User Level0 User Level1 User Level n 38
27 Scheduling Unix Tradizionale (1) Adatto per time sharing generale; Privilegiati i processi I/O bound, tra cui i processi interattivi; Garantisce assenza di starvation per CPU-bound e batch; Quanto di tempo indipendente dalla priorità dei processi; Non adatto per real time; Non modulare; Poco adatto ad architetture parallele. 31
28 Schedulazione Unix Moderno (1) (4.4BSD, SVR4 e successivi) Applicazione del principio di separazione tra il meccanismo e le politiche. Meccanismo: livelli di priorità (numero maggiore = priorità maggiore); - ogni livello è gestito separatamente, i.e. eventi con politiche differenti; Politiche: - classi di scheduling, per ognuna delle quali si può definire una politica diversa; - intervallo delle priorità che definisce la classe; -algoritmo per il calcolo l delle priorità; ità - assegnazione di quanti di tempo diversi ai vari livelli; - migrazione dei processi da un livello ad un altro; Limitazione dei tempi di latenza per il supporto real-time: - inserimento di punti di prelazionabilità del kernel con check del flag kprunrun, settato dalle routine di gestione eventi. 39
29 Schedulazione Unix Moderno (2) (4.4BSD, SVR4 e successivi) Assegnazione di default: 3 classi: -Real time: possono prelazionare il kernel, hanno priorità e quanto di tempo fisso ed ogni coda è gestita round-robin. -Kernel: prioritari su processi time shared, hanno priorità ed ogni coda è gestita FCFS; -Time shared: per i processi normali, ogni coda è gestita roundrobin, con quanto minore per priorità maggiore; la priorità è variabile secondo una tabella fissa, e, se un processo termina il suo quanto, scende di priorità. 40
30 Segnali 41
31 Segnali Un segnale è una notifica a un processo che è occorso un particolare evento: - Un errore di floating point - La morte di un figlio - Una richiesta di terminazione - I segnali possono essere pensati come degli interrupts software ; I segnali possono essere inviati: - da un processo a un altro processo; - da un processo a se stesso; - dal kernel a un processo. Ogni segnale è identificato da un numero intero associato a un nome simbolico. 42
32 Segnali in POSIX Segnale Significato (default) 1. SIGABRT Abortisce un processo (termina con dump) 2. SIGALRM Invia un segnale di "sveglia" " (termina) i ) 3. SIGCHLD Lo stato di un figlio è cambiato (ignora) 4. SIGCONT Continua un processo stoppato (continua o ignora) 5. SIGFPE Floating Point Error (termina con dump) 6. SIGHUP Hangup su un terminale (termina) 7. SIGILL Istruzione di macchina illegale (termina con dump) 8. SIGINT Premuto il tasto DEL per interrompere il processo (termina) 9. SIGKILL Segnale per terminare un processo (non può essere ignorato) (termina) 10. SIGPIPE Tentativo di scrivere su una pipe che non ha lettori (termina) 11. SIGQUIT L'utente ha usato il tasto di quit del terminale (termina con dump) 12. SIGSEGV Riferimento a un indirizzo di memoria non valido (termina con dump) 13. SIGSTOP Per stoppare un processo (non può essere ignorato) (stoppa t il processo) 14. SIGTERM Segnale per terminare un processo (termina) 15. SIGTSTP L'utente ha usato il tasto "suspend" del terminale (stoppa il processo) 16. SIGTTIN Un processo in background tenta di leggere dal suo terminale di controllo (stoppa il processo) 17. SIGTTOU Un processo in background tenta di scrivere sul su terminale di controllo (stoppa il processo) 18. SIGUSR1 Disponibile per scopi definiti dall'applicazione 19. SIGUSR2 Disponibile per scopi definiti dall'applicazione 43
33 System calls per i segnali kill(pid, sig#) invia il segnale specificato al processo o al gruppo di processi specificato. signal (sig#, handler) associa a un segnale la sua funzione di trattamento. Per motivi di protezione, deve valere almeno una delle seguenti condizioni: 1. Il processo che riceve e il processo che invia il segnale devono avere lo stesso owner; 2. L owner del processo che invia il segnale è il superuser. 44
34 Gestione dei segnali Quando un processo riceve un segnale, può: 1. Trattarlo mediante una specificata funzione ( handler ); 2. Ignorarlo 3. Attivare l azione di default associata al segnale stesso (termina o sospendi il processo, ignora). 45
35 Esempio Per terminare o sospendere un processo in foreground, l utente può premere i tasti CTRL-C o CTRL-Z (rispettivamente). Tale carattere viene acquisito dal driver del terminale, che notifica al processo il segnale SIGINT o SIGTSTP (rispettivamente). Per default, SIGINT termina il processo e SIGTSTP lo sospende. NB: Tali segnali vengono inviati a tutto il gruppo di processi. 46
36 Quando viene notificato/gestito un segnale Nessun effetto su un processo in esecuzione in kernel mode; La notifica e la gestione avvengono poco prima che il processo vada in esecuzione in user mode. sys call, interrupt User Running return return to user Check and Handle Signal Kernel Running exit preempt Zombie Asleep In Memory sleep swap out reschedule process wakeup swap out Preempted Ready to Run In Memory swap in enough mem Created Check for Signal fork Sleep, Swapped not enough mem (swapping system only) wakeup Ready to Run, Swapped 47
37 Il kernel gestisce i segnali all interno del contesto del processo (process table entry e u-area). I segnali possono essere trattati in 3 modi: exit (default action), ignore, proper handler. Proper handler --> oldfunction = signal(sig_num, HANDLER_FUNC) HANDLER_FUNC è l indirizzo della funzione da eseguire per SIG_NUM oppure: 0: il valore di defaul che induce exit() 1: ignora le future occorrenze del segnale L u-area contiene un array di handler in cui ad ogni segnale è possibile associare una funzione dedicata.
38 Strutture dati per la gestione dei segnali un bit per ogni segnale, che viene alzato dalla kill (viene ricordato solo l ultimo segnale di ogni tipo) Process Table Stack Dati Testo Processo array di puntatori agli handler definiti dall utente per ogni segnale (null=default) U-Area Text Table 48
Gestione dei processi nel sistema operativo Unix
Gestione dei processi nel sistema operativo Unix (Bach: the Design of the Unix Operating System (cap: 6, 7, 8) 1 Argomenti Processi Strutture dati associate ai processi boot, init, shell Process Scheduling
DettagliInterrupt-Driven I/O Gli Interrupts sono segnali hardware: - generati da device periferici es. fine di un operazione di I/O -oppure generati dalla CPU, a fronte di eccezioni i es. divisione per zero, stack
DettagliI Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.
I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo
DettagliI segnali. First the signals described in the original POSIX standard.
I segnali Prof.ssa Sara Michelangeli I segnali sono interruzioni inviate ai processi dal kernel, da un altro processo utente, oppure da un processo a se' stesso. Possono essere utilizzati dal sistema operativo
DettagliPag. 1. Il Nucleo del sistema operativo (la gestione dei processi)
shell Programmi utente Modo utente Il Nucleo del sistema operativo (la gestione dei processi) Interfaccia delle chiamate di sistema File system Gestione processi Device driver Gestione memoria HARDWARE
DettagliProcessi Aspetti avanzati. Terminazione Segnali
Processi Aspetti avanzati Terminazione Segnali Inizializzazione e terminazione di un programma Dal punto di vista dell'utente, ogni programma "inizia" dalla funzione main() E' la prima funzione utente
DettagliProgrammazione di sistema in Linux: System Call per i Segnali. E. Mumolo
Programmazione di sistema in Linux: System Call per i Segnali E. Mumolo Eventi asincroni: segnali I segnali permettono la gestione di eventi asincroni che interrompono il normale funzionamento di un processo
DettagliLABORATORIO DI SISTEMI OPERATIVI
LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Processi in Unix/Linux (parte II)
Dettagli2. Nucleo del sistema operativo (la gestione dei processi)
Struttura interna del sistema operativo Linux 2. Nucleo del sistema operativo (la gestione dei processi) Architettura (struttura) del sistema operativo shell Programmi utente Modo utente Interfaccia delle
DettagliLINUX: struttura generale
LINUX: struttura generale User Interface The layers of a UNIX system. 1 Processi in LINUX Ogni processo nasce con un solo thread Un processo gira in modalità utente; quando effettua una system call passa
DettagliI Processi nel SO UNIX
I Processi nel SO UNIX 1 Processi UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice
DettagliI Processi nel SO UNIX
I Processi nel SO UNIX 1 Processi UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice
DettagliSystem call per la gestione di processi
System call per la gestione di processi Chiamate di sistema per creazione di processi: fork() sostituzione di codice e dati: exec...() terminazione: exit() sospensione in attesa della terminazione di figli:
DettagliSystem call per la gestione di processi
System call per la gestione di processi Chiamate di sistema per creazione di processi: fork() sostituzione di codice e dati: exec...() terminazione: exit() sospensione in attesa della terminazione di figli:
DettagliSincronizzazione tra processi in Unix: i segnali
Sincronizzazione tra processi in Unix: i segnali 1 Sincronizzazione tra processi I processi interagenti possono avere bisogno di sincronizzazione. Unix: non c è condivisione di variabili tra processi:
DettagliSistemi Operativi I. a.a. 2008/09. Copyright c 2008 Giorgio Delzanno
Sistemi Operativi I a.a. 2008/09 Copyright c 2008 Giorgio Delzanno (giorgio@disi.unige.it) 1 Processi in UNIX Creazione dei processi: fork e execve Strutture dati per gestire processi Ciclo di vita Context
DettagliAvvio. La funzione main puo' avere due argomenti argc ed argv, ma in realta' oltre a argc ed argv c'e' qualche cosa di piu'.
Avvio Quando un programma viene eseguito, prima vengono caricate le librerie condivise che servono al programma, poi viene effettua il link dinamico del codice e alla fine avviene l'esecuzione vera e propria.
DettagliI Processi nel Sistema Operativo Unix
I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo
DettagliSistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni
Anno Accademico 2011/2012 Segnali: Interrupt software per la gestione di eventi asincroni Concetto di segnale Un segnale è un interrupt software Un segnale può essere generato da un processo utente o dal
Dettagli2. Nucleo del sistema operativo (la gestione dei processi)
Architettura del sistema operativo Struttura interna del sistema operativo Linux shell Programmi utente Modo utente 2. Nucleo del sistema operativo (la gestione dei processi) - 31 marzo 2008 - Interfaccia
DettagliSincronizzazione tra processi UNIX: i segnali. Sincronizzazione tra processi
Sincronizzazione tra processi UNIX: i segnali Sincronizzazione tra processi Processi interagenti possono avere bisogno di meccanismi di sincronizzazione Ad esempio, abbiamo appena visto il caso di processi
DettagliSistema operativo e processi. Il Sistema Operativo ed i Processi. Il sistema operativo. Il sistema operativo
Il Sistema Operativo ed i Processi Giuseppe Pozzi Impianti di Elaborazione Facoltà di Ingegneria di Como Politecnico di Milano giuseppe.pozzi@polimi.it - versione del 22 ottobre 2003 - Sistema operativo
DettagliI Processi nel SO UNIX
I Processi nel SO UNIX Processi UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice
DettagliSincronizzazione tra processi. Sincronizzazione tra processi. segnali. Segnali UNIX
Sincronizzazione tra processi Sincronizzazione tra processi UNIX: i segnali Processi interagenti possono avere bisogno di meccanismi di sincronizzazione Ad esempio, abbiamo appena visto il caso di processi
DettagliProcessi. Concetto di processo. Scheduling dei processi. Operazioni sui processi. Stati dei processi. Esempio in Unix
Processi Concetto di processo Scheduling dei processi Operazioni sui processi Stati dei processi Esempio in Unix 1 Concorrenza Un sistema operativo consiste in un gran numero di attività che vengono eseguite
DettagliProcessi. Concorrenza. Processi e programmi. Processi e programmi
Concetto di processo Scheduling dei processi Operazioni sui processi Stati dei processi Esempio in Unix Processi Concorrenza Un sistema operativo consiste in un gran numero di attività che vengono eseguite
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 20 Martedì 16-12-2014 1 System call per la gestione dei processi Creazione
DettagliSegnali. #include <signal.h> Segnali
Segnali Segnali 1. Un segnale è la notifica asincrona di un evento 2. Si dice che un segnale è generato (o consegnato sent, delivered to ) quando l evento associato a quel segnale occorre per la prima
DettagliInformatica II Sistemi Operativi DIGIP - a.a. 2015/16
DIPARTIMENTO DI INFORMATICA Alberto Ceselli (alberto.ceselli@unimi.it) Informatica II Sistemi Operativi DIGIP - a.a. 2015/16 Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università
DettagliRichiami sui Concetti Fondamentali dei Processi
Processi Processi 1 Richiami sui Concetti Fondamentali dei Processi Processi 2 Definizione Nell ambito dei sistemi operativi esistono diverse definizioni di processo, ad es. un programma in esecuzione
DettagliSincronizzazione tra processi in Unix: : i segnali. Sistemi Operativi T AA
Sincronizzazione tra processi in Unix: : i segnali Sistemi Operativi T AA 2009-2010 1 Sincronizzazione tra processi La sincronizzazione permette di imporre vincoli sull'ordine di esecuzione delle operazioni
DettagliSystem Calls per la Gestione dei Processi
System Calls per la Gestione dei Processi Domenico Cotroneo Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II Roadmap Process Context Identificativi getpid() getppid()
DettagliLaboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva 18 Segnali
Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva 18 Segnali I lucidi di seguito riportati sono distribuiti nei termini della licenza Creative Commons Attribuzione/Condividi allo stesso
DettagliModello dei processi. Riedizione delle slide della Prof. Di Stefano
Modello dei processi Riedizione delle slide della Prof. Di Stefano 1 Processi Modello di Processi asincroni comunicanti Process Scheduling Operazioni sui Processi Cooperazione tra Processi Interprocess
DettagliSistemi Operativi (modulo di Informatica II) I processi
Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Il concetto di processo Schedulazione dei processi Operazioni sui processi
DettagliSincronizzazione tra processi in Unix: i segnali
Sincronizzazione tra processi in Unix: i segnali Sincronizzazione tra processi La sincronizzazione permette di imporre vincoli sull'ordine di esecuzione delle operazioni dei processi interagenti. Unix
DettagliSommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads
Sommario Lezione 5 Processi e Threads Processi e Programmi Implementazione dei Processi Casi di Studio relativi a Processi Thread Casi di Studio relativi a Thread 5.2 Processi e Programmi Che cosa e un
DettagliSincronizzazione tra processi! in Unix: i segnali!
Sincronizzazione tra processi! in Unix: i segnali! 1 Sincronizzazione tra processi La sincronizzazione permette di imporre vincoli sull'ordine di esecuzione delle operazioni dei processi interagenti. Unix
DettagliProcessi: system calls
Processi 24 Processi: system calls In Unix, ogni processo viene creato dal kernel su richiesta di un altro processo (detto processo padre), mediante una apposita system call (fork). Esiste un processo
DettagliLABORATORIO DI SISTEMI OPERATIVI
LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Processi in Unix/Linux caratteristiche
DettagliI Processi. Il Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
DettagliProcessi - II. Franco Maria Nardini
Processi - II Franco Maria Nardini Processi Programmi in esecuzione in memoria sono chiamati processi. Caricati in memoria da una delle sei funzioni exec(3). Ogni processo ha un identificatore univoco
DettagliProcessi. Franco Maria Nardini
Processi Franco Maria Nardini La funzione main il kernel gestisce l avvio del vostro codice C (attraverso una funzione exec) routine speciale di start-up che prepara l ambiente di esecuzione per il main
DettagliProcessi - II. Franco Maria Nardini
Processi - II Franco Maria Nardini Memory Layout un programma C è composto dalle seguenti parti: text segments: sono le istruzioni che la CPU esegue. è condiviso in memoria (una sola copia). è read-only.
DettagliSegnali. Tecnica di comunicazione asincrona tra processi. Si può solo inviare uno tra un insieme fissato di segnali
Segnali ed allarmi Segnali Tecnica di comunicazione asincrona tra processi Si può solo inviare uno tra un insieme fissato di segnali Il destinatario viene interrotto, e si salta ad una procedura specifica
Dettaglii. Diagramma di GANTT relativo all esecuzione dei quattro processi:
1. (a) Si descriva il meccanismo attraverso cui i programmi richiamano i servizi del Sistema Operativo. Si faccia qualche esempio. (b) Si descriva il funzionanmento di un server web basato su thread multipli.
DettagliSistemi Operativi 1. Lezione IV: Processi e thread. Mattia Monga. 11 marzo 2008
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
DettagliLaboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 modulo 3
Marzo-Giugno 2008 Matricole congrue 0 modulo 3 Segnali: Interrupt software per la gestione di eventi asincroni Concetto di segnale Un segnale è un interrupt software Un segnale può essere generato da un
DettagliSistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1
GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di
DettagliTerza Esercitazione. Gestione di segnali in Unix Primitive signal e kill!
Terza Esercitazione Gestione di segnali in Unix Primitive signal e kill! Primitive fondamentali signal kill pause alarm sleep Imposta la reazione del processo all eventuale ricezione di un segnale (può
DettagliProcessi. Concorrenza. Processi e programmi
Concetto di processo Scheduling dei processi Operazioni sui processi Stati dei processi Esempio in Unix Processi Concorrenza Un sistema operativo consiste in un gran numero di attività che vengono eseguite
DettagliPOSIX - Gestione dei Segnali. E.Mumolo, DEEI mumolo@units.it
POSIX - Gestione dei Segnali E.Mumolo, DEEI mumolo@units.it Segnali in POSIX Segnali in Posix Modalità di notifiche relative a vari eventi asincroni I signal interrompono un processo e possono o meno essere
DettagliLaboratorio di Sistemi Operativi
Laboratorio di Sistemi Operativi Segnali a.a. 2011/2012 Francesco Fontanella Segnali - Introduzione I segnali sono interrupt software a livello di processo comunicano al processo il verificarsi di un evento
DettagliSistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it e 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
DettagliÎ Modello ad Ambiente Locale P1 P1. File System P2 P2 P3 P3. Processi in UNIX. Modello di Processo in UNIX
Processi in UNIX Spazio di sistema (residente) Modello di Processo in UNIX 1 Tabella dei processi i PROCESS CODE Tabella dei codici Tabella dei file APERTI OPEN FILE ACTIVE FILE Tabella dei file ATTIVI
DettagliScheduling della CPU. I/O e CPU burst. Scheduler a breve termine. Dispatcher. Concetti base
I/O e CPU burst Concetti base Scheduling della CPU. load store add store read from file CPU burst Massimizzazione dell uso della CPU attraverso multiprogrammazione wait for I/O I/O burst 160 140 Ciclo
DettagliObiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi.
Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi. Scheduler (a breve
DettagliProcessi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX
Processi UNIX I Processi nel SO UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice
DettagliProcessi in UNIX. Spazio di sistema (residente) Tabella dei. file APERTI OPEN FILE. Tabella dei codici
Processi in UNIX Spazio di sistema (residente) 1 i Tabella dei processi CODE Tabella dei file APERTI ACTIVE FILE PROCESS Tabella dei codici OPEN FILE Tabella dei file ATTIVI Spazio di utente (swappable)
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale
DettagliScheduling della CPU
Scheduling della CPU 1 Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi. Scheduler della
DettagliIl Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione l di un processo è sequenziale (le istruzioni vengono eseguite
DettagliProcessi Concetti di base. Esecuzione parallela e sequenziale Il concetto di processo Gestione dei processi
Processi Concetti di base Esecuzione parallela e sequenziale Il concetto di processo Gestione dei processi Esecuzione sequenziale I sistemi di calcolo più semplici consentono unicamente l'esecuzione sequenziale
DettagliSISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 21 dicembre 2004
SISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 21 dicembre 2004 Cognome: Nome: Matricola: ESERCIZIO 1, teoria (6 punti) a) riportate lo pseudocodice che descrive l implementazione dell operazione
DettagliI segnali possono essere pensati come degli interrupts software ;
Segnali 57 Segnali Un segnale è una notifica a un processo che è occorso un particolare evento: - Un errore di floating point - La morte di un figlio - Una richiesta di terminazione - I segnali possono
DettagliStruttura interna del sistema operativo Linux
Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/giuseppe.pozzi@polimi.it -versione del 30 marzo 2004-1-04.-04
DettagliIl Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
DettagliSistemi di Calcolo (A.A ) Corso di Laurea in Ingegneria Informatica e Automatica Sapienza Università di Roma
Sistemi di Calcolo (.. 2014-2015) Corso di Laurea in Ingegneria Informatica e utomatica Sapienza Università di Roma Esercizi riepilogativi sulla seconda parte del Modulo I Eccezioni e processi Domanda
DettagliI Processi. Il Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
Dettaglicoda arrivo burst P 1 A 0 20ms P 2 C 10 25ms P 3 B 15 20ms P 4 A 25 20ms
1. (a) Si descriva il meccanismo attraverso cui i programmi richiamano i servizi del Sistema Operativo. Si faccia qualche esempio. (b) Si descriva l algoritmo di scheduling nel sistema Windows Vista (e
DettagliTransizioni di stato in UNIX
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto Processi in Linux Roberto Perdisci A.A. 2004/2005 1
Dettagli5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche
Device driver - gestori delle periferiche Struttura interna del sistema operativo Linux Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici Interagiscono con
DettagliSISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.
SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a
DettagliDati: variabili globali Program Counter Alcuni registri di CPU Stack: parametri, variabili locali a funzioni/procedure
Il Concetto di Processo Il processo è un programma in esecuzione. I Processi È l unità di esecuzioneall interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
DettagliSistemi Operativi. Lezione 3 Processi e Thread
Lezione 3 Processi e Thread Introduzione Sino ai sistemi batch la CPU di un sistema svolgeva un attività, la portava a termine e solo allora avviava un altra attività Con l avvento della multiprogrammazione
DettagliPROGRAMMA DISCIPLINARE SVOLTO a. s. 2015 / 2016
PROGRAMMA DISCIPLINARE SVOLTO a. s. 2015 / 2016 DOCENTI: TESTARDO CINZIA, VALERIO FELICI CLASSE 4 a IA DISCIPLINA TPSI MACROARGOMENTI che sono stati trattati nel corso del corrente anno scolastico (in
DettagliTerza Esercitazione. Gestione di segnali in Unix Primitive signal e kill
Terza Esercitazione Gestione di segnali in Unix Primitive signal e kill signal kill pause alarm sleep Primitive fondamentali Imposta la reazione del processo all eventuale ricezione di un segnale (può
DettagliGestione dei processi
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
DettagliMemory management 49
Memory management 49 Immagine di un processo L immagine di memoria di un processo è organizzata in tre regioni: E rientrante, e può essere condiviso fra più processi Stack Dati Testo Ogni regione è uno
DettagliQuinta Esercitazione. Principali primitive di accesso ai File
Esempio: processi padre e figlio condividono di file aperti PRIMA della creazione Quinta Esercitazione Gestione File-System Segnali processo padre fork() Sistema tabella dei file attivi i-node Eugenio
DettagliSistemi Operativi. Esercitazione 8. Corso di Laurea Triennale in Ingegneria Informatica.
Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Esercitazione 8 daniel.cesarini@for.unipi.it Gestione processi Segnali Shell e processi 1 Domande sulle lezioni passate Sommario Gestione
DettagliGestione dei processi Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet
Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet Domenico De Guglielmo E-mail: domenicodegu@virgilio.it Telefono: 050 2217 468 Pervasive Computing & Networking Lab
DettagliSistemi operativi 2003/2004. Linux
Sistemi operativi 2003/2004 Linux Unix 1969: Bell Labs (Ken Thompson) http://www.levenez.com/unix/ Struttura Utility standard Unix e il C 1972: Bell Labs (Dennis Ritchie) Il kernel viene riscritto in C
DettagliLa creazione di un nuovo processo in UNIX
La creazione di un nuovo processo in UNIX #include int fork(void); Viene creato un nuovo processo (figlio) identico (stesso codice, area dati copiata) al processo (padre) che ha invocato la
DettagliIntroduzione al Multithreading
Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui
DettagliOrganizzazione di un SO monolitico
Organizzazione di un SO monolitico Applicazioni Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del Gestore delle processore / Gestore della periferiche/ Scheduler(s) memoria dispositivi
DettagliIl processo figlio : utilizza lo stesso codice che sta eseguendo il padre ;
La creazione di un nuovo processo in UNIX int fork(void); Viene creato un nuovo processo (figlio) identico (stesso codice, area dati copiata) al processo (padre) che ha invocato la fork Solo il valore
DettagliUniversità Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo
Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano Domande di riepilogo 1) Il descrittore di processo (Process Control Block) include al suo interno:
DettagliProcessi e thread. Concetto di processo
Processi e thread Concetto di processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione l di un processo è sequenziale (le istruzioni vengono
DettagliStruttura dei Sistemi di Calcolo
Struttura dei Sistemi di Calcolo Operazioni dei sistemi di calcolo Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione hardware Invocazione del Sistema Operativo 1 Architettura
DettagliCAP9. Device drivers
Struttura interna del sistema operativo Linux CAP9. Device drivers Device drivers Gestori di periferiche Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici
DettagliEsame Laboratorio di Sistemi Operativi Cognome Nome Mat.
Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio
DettagliSISTEMI OPERATIVI. Processi in Linux. Giorgio Giacinto Sistemi Operativi
SISTEMI OPERATIVI Processi in Linux 2 Creazione di processi concorrenti» La creazione di un processo figlio consente di far eseguire alcune funzionalità del programma in modo concorrente» Opzione 1 il
DettagliIl Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
DettagliIl Concetto di Processo
Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono
DettagliCaso di studio: il kernel di Unix. Parte del materiale tratto da: Roberto Polillo, Università di Milano
Caso di studio: il kernel di Unix Parte del materiale tratto da: Roberto Polillo, Università di Milano Sommario Storia Architettura del kernel Strutture dati del kernel Gestione dei processi Gestione del
DettagliSistemi Operativi Modulo I. I Processi
Sistemi Operativi Modulo I Primo canale (A-L) e Teledidattica A.A. 2018/2019 Corso di Laurea in Informatica I Processi Igor Melatti Sapienza Università di Roma Dipartimento di Informatica Roadmap Come
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 5 Martedì 16-10-2018 Operazioni sui processi Nella maggior parte dei
Dettagli