Sistemi Operativi. Processi in Linux - Part Ottobre 2007

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sistemi Operativi. Processi in Linux - Part Ottobre 2007"

Transcript

1 Sistemi Operativi Processi in Linux - Part 2 Davide Ariu davide.ariu@diee.unica.it Igino Corona igino.corona@diee.unica.it 23 Ottobre 2007

2 Outline Creating a process Process Identiers Permissions Risorse utili

3 Creating a process Ciclo di vita di un processo fork La creazione di un nuovo processo avviene generando una copia di un processo esistente attraverso la funzione fork

4 Creating a process Ciclo di vita di un processo fork La creazione di un nuovo processo avviene generando una copia di un processo esistente attraverso la funzione fork Il nuovo processo è dotato di un PID (Process IDentier) distinto.

5 Creating a process Ciclo di vita di un processo fork La creazione di un nuovo processo avviene generando una copia di un processo esistente attraverso la funzione fork Il nuovo processo è dotato di un PID (Process IDentier) distinto. fork è una funzione che è in grado di restituire due valori distinti. Al processo glio restituisce il valore 0, al processo padre restituisce il PID del processo glio. Un processo, per capire stabilire il suo ruolo, deve analizzare il valore restituitogli dalla fork.

6 Creating a process PARENT - CHILD Processes Considerazioni sull'esempio 3.2:

7 Creating a process PARENT - CHILD Processes Considerazioni sull'esempio 3.2: Uso di write al posto di cout: cout usa un buer, l'output prodotto viene visualizzato solo quando Lo spazio sul buer termina Il processo chiamante muore Viene esplicitamente eettuato un ush del buer

8 Creating a process PARENT - CHILD Processes Considerazioni sull'esempio 3.2: Uso di write al posto di cout: cout usa un buer, l'output prodotto viene visualizzato solo quando Lo spazio sul buer termina Il processo chiamante muore Viene esplicitamente eettuato un ush del buer sleep serve per rallentare il processo (in modo che non termini in un quanto di tempo)

9 Creating a process PARENT - CHILD Processes Considerazioni sull'esempio 3.2: Uso di write al posto di cout: cout usa un buer, l'output prodotto viene visualizzato solo quando Lo spazio sul buer termina Il processo chiamante muore Viene esplicitamente eettuato un ush del buer sleep serve per rallentare il processo (in modo che non termini in un quanto di tempo) Uno dei due processi termina prima dell'altro

10 Creating a process Perchè i processi generano gli? Esistono dei processi chiamati daemon che forniscono servizi su richiesta (ad es. syslogd (system logging daemon), lpd (line printer daemon))

11 Creating a process Perchè i processi generano gli? Esistono dei processi chiamati daemon che forniscono servizi su richiesta (ad es. syslogd (system logging daemon), lpd (line printer daemon)) Restano in ascolto in attesa di richieste

12 Creating a process Perchè i processi generano gli? Esistono dei processi chiamati daemon che forniscono servizi su richiesta (ad es. syslogd (system logging daemon), lpd (line printer daemon)) Restano in ascolto in attesa di richieste Per ogni richiesta il daemon genera un glio (o un thread) che la gestisce

13 Creating a process Perchè i processi generano gli? Esistono dei processi chiamati daemon che forniscono servizi su richiesta (ad es. syslogd (system logging daemon), lpd (line printer daemon)) Restano in ascolto in attesa di richieste Per ogni richiesta il daemon genera un glio (o un thread) che la gestisce Ci sono situazioni in cui un processo genera un glio, per poter sostituire il codice (eseguibile) del glio con il codice (eseguibile) di un altro programma

14 Creating a process Perchè i processi generano gli? Esistono dei processi chiamati daemon che forniscono servizi su richiesta (ad es. syslogd (system logging daemon), lpd (line printer daemon)) Restano in ascolto in attesa di richieste Per ogni richiesta il daemon genera un glio (o un thread) che la gestisce Ci sono situazioni in cui un processo genera un glio, per poter sostituire il codice (eseguibile) del glio con il codice (eseguibile) di un altro programma La famiglia di funzioni exec consente di operare questa sostituzione del codice

15 Creating a process Le funzioni exec Abbiamo a disposizione 5 funzioni di libreria: execl execv execle execlp execvp

16 Creating a process Le funzioni exec Abbiamo a disposizione 5 funzioni di libreria: execl execv execle execlp execvp Tutte queste funzioni si appoggiano alla syscall execve

17 Creating a process Le funzioni exec Abbiamo a disposizione 5 funzioni di libreria: execl execv execle execlp execvp Tutte queste funzioni si appoggiano alla syscall execve La chiamata ad una delle funzioni della famiglia exec provoca la sostituzione dell'immagine del processo chiamante con l'immagine di un nuovo processo

18 Creating a process Le funzioni exec Abbiamo a disposizione 5 funzioni di libreria: execl execv execle execlp execvp Tutte queste funzioni si appoggiano alla syscall execve La chiamata ad una delle funzioni della famiglia exec provoca la sostituzione dell'immagine del processo chiamante con l'immagine di un nuovo processo Se la chiamata ha successo la funzione non ritorna

19 Creating a process Le funzioni exec Abbiamo a disposizione 5 funzioni di libreria: execl execv execle execlp execvp Tutte queste funzioni si appoggiano alla syscall execve La chiamata ad una delle funzioni della famiglia exec provoca la sostituzione dell'immagine del processo chiamante con l'immagine di un nuovo processo Se la chiamata ha successo la funzione non ritorna Text, Data e Stack Segment vengono sovrascritti dal nuovo processo, solo la u-area rimane identica

20 Creating a process Le funzioni exec - Nomenclatura Dopo la parola exec:

21 Creating a process Le funzioni exec - Nomenclatura Dopo la parola exec: l indica che gli argomenti della funzione sono elencati uno dopo l'altro (lista di argomenti) es. int execl(const char *path, const cha *arg0,... const char *argn, char * / NULL /)

22 Creating a process Le funzioni exec - Nomenclatura Dopo la parola exec: l indica che gli argomenti della funzione sono elencati uno dopo l'altro (lista di argomenti) es. int execl(const char *path, const cha *arg0,... const char *argn, char * / NULL /) v indica che gli argomenti della funzione sono contenuti in un array es. int execv(const char *path, const char *argv[])

23 Creating a process Le funzioni exec - Nomenclatura Dopo la parola exec: l indica che gli argomenti della funzione sono elencati uno dopo l'altro (lista di argomenti) es. int execl(const char *path, const cha *arg0,... const char *argn, char * / NULL /) v indica che gli argomenti della funzione sono contenuti in un array es. int execv(const char *path, const char *argv[]) Dopo l o v ci possono essere e, che indica che il programmatore costruisce la lista delle variabili d'ambiente e la passa alla funzione p, che indica che il programma va cercato nei percorsi specicati dalla variabile d'ambiente PATH

24 Creating a process Funzionamento della exec Esempio $ cat file.txt > file2.txt La shell crea un glio tramite una fork La nuova shell (shell glia) chiude lo standard output di default (monitor), apre le2.txt e lo mappa sullo standard output Viene chiamata la system call execve che sovrascrive l'immagine del processo nuova shell con quella del processo creato per eseguire il comando cat La shell aspetta la ne del glio (system call wait) e poi ritorna attiva (visualizza il prompt)

25 Creating a process execlp int execlp(const char *file, const char *argv0,..., const char *argn, char * /*NULL*/); Si usa quando il numero di parametri è noto a priori. Di solito argv0 coincide con le o con il nome del comando senza includere il percorso (Esempio p3.3.cpp. Si fornisca il nome di un le di testo come argomento)

26 Creating a process execvp int execvp(const char *file, const char *argv[]); Si usa quando il numero di parametri può variare dinamicamente Il vettore argv[] contiene la lista dei parametri. (Esempio p3.4.cpp e 3.5.cpp)

27 Process Identiers Identicatori di un processo Ciascun processo è individuato da alcuni identicatori che consentono al Sistema Operativo di gestirlo

28 Process Identiers Identicatori di un processo Ciascun processo è individuato da alcuni identicatori che consentono al Sistema Operativo di gestirlo Il PID, ovvero un numero intero che identica univocamente il processo

29 Process Identiers Identicatori di un processo Ciascun processo è individuato da alcuni identicatori che consentono al Sistema Operativo di gestirlo Il PID, ovvero un numero intero che identica univocamente il processo Il PPID, ovvero il PID del processo genitore

30 Process Identiers Identicatori di un processo Ciascun processo è individuato da alcuni identicatori che consentono al Sistema Operativo di gestirlo Il PID, ovvero un numero intero che identica univocamente il processo Il PPID, ovvero il PID del processo genitore Il PGID, ovvero l'identicatore del gruppo di processi al quale il processo appartiene

31 Process Identiers Identicatori di un processo Process IDentier - PID

32 Process Identiers Identicatori di un processo Process IDentier - PID Il PID è un numero intero che identica univocamente un processo.

33 Process Identiers Identicatori di un processo Process IDentier - PID Il PID è un numero intero che identica univocamente un processo. Il Sistema Operativo assegna un PID crescente ai nuovi processi che vengono generati.

34 Process Identiers Identicatori di un processo Process IDentier - PID Il PID è un numero intero che identica univocamente un processo. Il Sistema Operativo assegna un PID crescente ai nuovi processi che vengono generati. Alcuni processi del Sistema Operativo che vengono generati in fase di bootstrap sempre nello stesso ordine hanno sempre lo stesso PID.

35 Process Identiers Identicatori di un processo Process IDentier - PID Il PID è un numero intero che identica univocamente un processo. Il Sistema Operativo assegna un PID crescente ai nuovi processi che vengono generati. Alcuni processi del Sistema Operativo che vengono generati in fase di bootstrap sempre nello stesso ordine hanno sempre lo stesso PID. La syscall che consente di ottenere il PID di un processo è getpid() (vd. getpid.cpp) Es. cout My process ID is getpid() endl

36 Process Identiers Identicatori di un processo Parent Process IDentier - PPID

37 Process Identiers Identicatori di un processo Parent Process IDentier - PPID A ciascun processo viene associato anche il PID del processo genitore

38 Process Identiers Identicatori di un processo Parent Process IDentier - PPID A ciascun processo viene associato anche il PID del processo genitore La syscall getppid() consente di ottenere il PID del processo padre (vd. getppid.cpp)

39 Process Identiers Identicatori di un processo Parent Process IDentier - PPID A ciascun processo viene associato anche il PID del processo genitore La syscall getppid() consente di ottenere il PID del processo padre (vd. getppid.cpp) Se da un processo glio è possibile risalire al processo padre, non è possibile il percorso inverso: non esiste alcuna syscall attraverso la quale è possibile ottenere il PID di tutti i gli di un dato processo

40 Process Identiers Identicatori di un processo Parent Process IDentier - PPID A ciascun processo viene associato anche il PID del processo genitore La syscall getppid() consente di ottenere il PID del processo padre (vd. getppid.cpp) Se da un processo glio è possibile risalire al processo padre, non è possibile il percorso inverso: non esiste alcuna syscall attraverso la quale è possibile ottenere il PID di tutti i gli di un dato processo Per tenere traccia di questa informazione, un processo padre dovrebbe memorizzare i PID che gli vengono restituiti ogni volta che esso chiama la fork()

41 Process Identiers Identicatori di un processo Process Group IDentier - PGID

42 Process Identiers Identicatori di un processo Process Group IDentier - PGID Un processo e tutti i suoi processi gli costituiscono un gruppo

43 Process Identiers Identicatori di un processo Process Group IDentier - PGID Un processo e tutti i suoi processi gli costituiscono un gruppo Il processo genitore è il process leader

44 Process Identiers Identicatori di un processo Process Group IDentier - PGID Un processo e tutti i suoi processi gli costituiscono un gruppo Il processo genitore è il process leader L'ID del processo genitore è anche l'identicatore del gruppo (PGID)

45 Process Identiers Identicatori di un processo Process Group IDentier - PGID Un processo e tutti i suoi processi gli costituiscono un gruppo Il processo genitore è il process leader L'ID del processo genitore è anche l'identicatore del gruppo (PGID) Il concetto di gruppo è molto importante per la distribuzione dei segnali tra i processi: se il processo padre riceve un segnale di terminazione (kill), questo segnale verrà inoltrato anche a tutti i processi gli (ovvero quelli che fanno parte del suo gruppo)

46 Process Identiers Identicatori di un processo Process Group IDentier - PGID Un processo e tutti i suoi processi gli costituiscono un gruppo Il processo genitore è il process leader L'ID del processo genitore è anche l'identicatore del gruppo (PGID) Il concetto di gruppo è molto importante per la distribuzione dei segnali tra i processi: se il processo padre riceve un segnale di terminazione (kill), questo segnale verrà inoltrato anche a tutti i processi gli (ovvero quelli che fanno parte del suo gruppo) getpgid() è la syscall che consente di ottenere l'id del gruppo di un processo (vd. getpgid.cpp)

47 Permissions Permessi Nei sistemi UNIX, a ciascun le è associato un set di bit che individua quali siano i tipi di operazioni consentite su quel le per tutti gli utenti del sistema.

48 Permissions Permessi Nei sistemi UNIX, a ciascun le è associato un set di bit che individua quali siano i tipi di operazioni consentite su quel le per tutti gli utenti del sistema. 9 bit, divisi in tre set di 3 bit ciascuno

49 Permissions Permessi Nei sistemi UNIX, a ciascun le è associato un set di bit che individua quali siano i tipi di operazioni consentite su quel le per tutti gli utenti del sistema. 9 bit, divisi in tre set di 3 bit ciascuno 3 bit descrivono i permessi per il proprietario (owner) del le, 3 bit sono relativi al gruppo di utenti cui il proprietario appartiene (group), 3 bit descrivono i bit per tutti gli altri utenti (other)

50 Permissions Permessi Nei sistemi UNIX, a ciascun le è associato un set di bit che individua quali siano i tipi di operazioni consentite su quel le per tutti gli utenti del sistema. 9 bit, divisi in tre set di 3 bit ciascuno 3 bit descrivono i permessi per il proprietario (owner) del le, 3 bit sono relativi al gruppo di utenti cui il proprietario appartiene (group), 3 bit descrivono i bit per tutti gli altri utenti (other) I 3 bit di ogni set individuano rispettivamente i permessi in lettura (read), scrittura (write) e esecuzione (execution)

51 Permissions Permessi

52 Permissions Permessi I permessi possono rappresentati da tre cifre in ottale.

53 Permissions Permessi I permessi possono rappresentati da tre cifre in ottale. rwx r-x rw- = 756 signica:

54 Permissions Permessi I permessi possono rappresentati da tre cifre in ottale. rwx r-x rw- = 756 signica: Che il proprietario ha permessi di lettura, scritturae esecuzione

55 Permissions Permessi I permessi possono rappresentati da tre cifre in ottale. rwx r-x rw- = 756 signica: Che il proprietario ha permessi di lettura, scritturae esecuzione Che al gruppo del proprietario sono concessi i permessi di letturae esecuzione ma non di scrittura

56 Permissions Permessi I permessi possono rappresentati da tre cifre in ottale. rwx r-x rw- = 756 signica: Che il proprietario ha permessi di lettura, scritturae esecuzione Che al gruppo del proprietario sono concessi i permessi di letturae esecuzione ma non di scrittura Che a tutti gli altri utenti sono concessi i permessi di letturae scritturama non di esecuzione

57 Permissions Permessi I permessi possono rappresentati da tre cifre in ottale. rwx r-x rw- = 756 signica: Che il proprietario ha permessi di lettura, scritturae esecuzione Che al gruppo del proprietario sono concessi i permessi di letturae esecuzione ma non di scrittura Che a tutti gli altri utenti sono concessi i permessi di letturae scritturama non di esecuzione Il comando chmod consente al proprietario (o a root) di cambiare i permessi di accesso ad un le

58 Permissions Permessi I permessi possono rappresentati da tre cifre in ottale. rwx r-x rw- = 756 signica: Che il proprietario ha permessi di lettura, scritturae esecuzione Che al gruppo del proprietario sono concessi i permessi di letturae esecuzione ma non di scrittura Che a tutti gli altri utenti sono concessi i permessi di letturae scritturama non di esecuzione Il comando chmod consente al proprietario (o a root) di cambiare i permessi di accesso ad un le Il comando ls -l consente di elencare i le con i relativi permessi

59 Permissions Permessi E' il sistema operativo che assegna dei permessi di default ad un le quando questo viene creato. Questi permessi vengono determinati in modo automatico eettuando un operazione bit a bit tra la creation mask e la umask La creation mask vale di default 777 per les eseguibili e directories e 666 per gli altri les La umask vale di default 022 Il valore della umask può essere visualizzato o modicato utilizzando il comando umask Il valore della umask può essere impostato per ciascun utente all'interno del le.bash_prole

60 Permissions Identicatori di utente e di gruppo Ciascun utente è identicato da real user ID (UID), associato al nome utente real group ID (GID), associato al nome del gruppo di cui fa parte l'utente

61 Permissions Identicatori di utente e di gruppo Ciascun utente è identicato da real user ID (UID), associato al nome utente real group ID (GID), associato al nome del gruppo di cui fa parte l'utente A ciascun processo sono associati eective user ID (EUID) eective group ID (EGID)

62 Permissions Identicatori di utente e di gruppo Ciascun utente è identicato da real user ID (UID), associato al nome utente real group ID (GID), associato al nome del gruppo di cui fa parte l'utente A ciascun processo sono associati eective user ID (EUID) eective group ID (EGID) Dal momento che tutti i processi (eccetto alcuni processi di sistema) vengono creati da utenti, di solito l'eectiveid coincide con il realid.

63 Permissions Set User ID E' dunque possibile distinguere: Un real ID usato dal sistema per , accounting, ecc.

64 Permissions Set User ID E' dunque possibile distinguere: Un real ID usato dal sistema per , accounting, ecc. Un eective ID per stabilire i privilegi associati a quel processo Es. Per cambiare la propria password è necessario avere i privilegi di root eective group ID (EGID)

65 Permissions Set User ID E' dunque possibile distinguere: Un real ID usato dal sistema per , accounting, ecc. Un eective ID per stabilire i privilegi associati a quel processo Es. Per cambiare la propria password è necessario avere i privilegi di root eective group ID (EGID) Esiste un altro insieme di permessi SUID (set-user-id) e SGID (set-group-id). Questi permessi dicono al sistema operativo che quando il programma è in esecuzione deve avere gli stessi privilegi dell owner-gruppo del proprietario del programma (e non quelli dello user/gruppo associati al processo). (/usr/bin/passw può essere eseguito come root)

66 Permissions Limiti di risorse per un processo Il comando ulimit consente di visualizzare le risorse disponibili ulimit -ah: hard limits(possono essere modicati solo dal superuser) ulimit -as: soft limits(possono essere modicati dall'utente). Un soft limit è tipicamente minore o ugaule al corrispondente hard limit I limiti visualizzati sono relativi a cpu seconds, dimensione max di un le, spazio complessivo relativo ai segmenti di dati e di stack, spazio per il segmento di stack, numero descrittori di le, ecc.

67 Permissions Segnali Possono essere pensati come l'analogo software degli interruptper l'hardware. Possono essere generati da Hardware: ad es., un processo cerca di accedere ad aree di memoria non autorizzate Kernel: ad es., per noticare ad un processo che la periferica di cui era in attesa è pronta Altri processi: ad es., un processo glio notica al genitore che ha terminato Utente: ad es., producendo segnali di quit, interrupt o stop attraverso la tastiera

68 Permissions Segnali I segnali sono numerati ( man 7 signal ) <sys/signal.h>

69 Permissions Segnali I segnali sono numerati ( man 7 signal ) <sys/signal.h> Un processo che ha ricevuto un segnale può: Eseguire l'azione di default per quel segnale, specicata dal sistema Es.: (a) noticare al genitore la terminazione, (b) generare un core dump (copia su le dell'immagine del processo in memoria), (c) terminare Ignorare il segnale (non valido per SIGSTOP e SIGKILL) Catturare il segnale ed eseguire la routine legata al segnale (non valido per SIGSTOP e SIGKILL)

70 Permissions Informazioni sui le L'immagine di un processo contiene informazioni sui le aperti dal processo stesso A ciascun le aperto è associato un numero intero, chiamato descrittore di le Il descrittore di le è l'indice di una tabella con 1024 righe che si trova nella u-area del processo (contiene i le aperti dal processo) Il sistema operativo gestisce la tabella dei le aperti da tutti i processi (system le table) Nella tabella dei descrittori dei le di ciascun processo c'è il riferimento alla corrispondente riga della tabella di sistema

71 Permissions Informazioni sui le

72 Permissions Informazioni sui le Ciascun glio può accedere ai le aperti dal padre usando gli stessi descrittori Figlio e padre possono leggere/scrivere indipendentemente Identicatori di default: 0 stdin (input standard) 1 stdout (output standard) 2 stderr (errori: di solito coincide con il dispositivo stdout)

73 Permissions Il lesystem proc E' un lesystem virtuale che contiene informazioni relative al kernel, strutture dati del kernel, stato di ciascun processo e thread associati. ( man 5 proc ) E' virtuale perchè le informazioni non sono memorizzate su disco, ma in memoria principale Le informazioni memorizzate in /proc possono essere visualizzate con il comando procinfo ls /proc Gli elementi numerici sono associati ai processi, mentre gli elementi non-numerici sono associati al kernel

74 Permissions Il lesystem proc Per ogni processo, la relativa directory contiene cmdline - Lista argomenti in linea di comando cpu - Informazioni sull'uso della CPU cwd - Current working directory exe - Link simbolico al le binario del processo environ - Variabili d'ambiente fd - Identicatori numerici dei le aperti etc.

75 Risorse utili Risorse utili Alcuni riferimenti John Shapley Gray, Interprocess Communications in LINUX, The Nooks & Crannies B. W. Kernighan, D. M. Ritchie, Il Linguaggio C, Prentice Hall Herbert Schildt, Guida al C++, Mc Graw Hill

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica. SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica. SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto fork() & exec() Roberto Perdisci A.A. 2004/2005 1 Dettagli

Dettagli

Transizioni di stato in UNIX

Transizioni 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

Dettagli

SISTEMI OPERATIVI. Processi in Linux. Giorgio Giacinto Sistemi Operativi

SISTEMI 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

Dettagli

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009 Sistemi Operativi Processi in Linux Igino Corona igino.corona@diee.unica.it 20 Ottobre 2009 Contenuti della lezione Come funzionano i programmi in Linux? Schema base di esecuzione di un programma Modalità

Dettagli

System Calls per la Gestione dei Processi

System 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()

Dettagli

LINUX: struttura generale

LINUX: 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

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO 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

Dettagli

Processi. Introduzione. Effective user/group id. Fork

Processi. Introduzione. Effective user/group id. Fork Introduzione Processi = entità attiva 1. esiste per un certo lasso di tempo 2. utilizza risorse Ogni processo ha un identificatore intero (PID: process identifier) Tutti i processi UNIX hanno un genitore

Dettagli

System call per la gestione di processi

System 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:

Dettagli

System call per la gestione di processi

System 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:

Dettagli

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

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 Processi Introduzione Processo = entità attiva 1. esiste per un certo lasso di tempo 2. utilizza risorse Ogni processo ha un identificatore intero (PID: process identifier) Tutti i processi UNIX hanno

Dettagli

SISTEMI&OPERATIVI& AA&2013&0&2014& Processi( in(linux( Giorgio&Giacinto&2013& Sistemi&Opera?vi&

SISTEMI&OPERATIVI& AA&2013&0&2014& Processi( in(linux( Giorgio&Giacinto&2013& Sistemi&Opera?vi& SISTEMI&OPERATIVI& AA&2013&0&2014& Processi( in(linux( ( 2& Creazione(di(processi( concorren2(» La&creazione&di&un&processo&figlio&consente&di& far&eseguire&alcune&funzionalità&del&programma& in&modo&concorrente&»

Dettagli

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3 Marzo-Giugno 2008 matricole congrue 0 mod 3 Controllo dei processi - I Controllo dei processi Creazione di nuovi processi Esecuzione di programmi Processo di terminazione Altro 2 1 Identificatori di processi

Dettagli

Università 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 Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 23 Martedì 17-01-2017 Il file system Il file system si basa sulle astrazioni

Dettagli

Processi 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 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

Dettagli

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

Progetto II: Il linguaggio C e le chiamate di sistema sui processi Progetto II: Il linguaggio C e le chiamate di sistema sui processi Scrivere un programma C psstat.c che svolga quanto segue: se invocato senza parametri deve stampare su standard output un istogramma orizzontale

Dettagli

Università 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 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

Dettagli

L ambiente di un processo (I)

L ambiente di un processo (I) L ambiente di un processo (I) L ambiente di un processo è un insieme di stringhe (terminate da \0). Un ambiente è rappresentato da un vettore di puntatori a caratteri terminato da un puntatore nullo. Ogni

Dettagli

Corso di Laboratorio di Sistemi Operativi A.A

Corso di Laboratorio di Sistemi Operativi A.A Corso di Laboratorio di Sistemi Operativi A.A. 2016 2017 Lezione 13 Ivan Scagnetto ivan.scagnetto@uniud.it Nicola Gigante gigante.nicola@spes.uniud.it Dipartimento di Scienze Matematiche, Informatiche

Dettagli

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

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013 Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013 Processi bash 1 Sommario I processi Comando ps (process status) Terminazione di un processo CTRL-C Kill Controllo dei processi Processi in background

Dettagli

Il processo figlio : utilizza lo stesso codice che sta eseguendo il padre ;

Il 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

Dettagli

Esempio di domande sul file system

Esempio di domande sul file system Esempio di domande sul file system Si supponga che un file system usi blocchi di 4 Kbyte, e che un puntatore ad un blocco occupi 4 byte. Se l INODE di un file utilizza 12 blocchi, un blocco indiretto ed

Dettagli

System Call EXEC EXEC P P. fork exec(new_prog) fork. sono_il_padre = fork(); if (!sono_il_padre) {

System Call EXEC EXEC P P. fork exec(new_prog) fork. sono_il_padre = fork(); if (!sono_il_padre) { System Call EXEC EXEC L effetto delle system call della famiglia exec consiste nel mandare in esecuzione: (1) un programma contenuto in un file eseguibile oppure un (2) interprete di programmi P fork P

Dettagli

Università 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 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

Controllo dei Processi 1

Controllo dei Processi 1 Controllo dei Processi 1 I processi Nei sistemi Unix/Linux ogni processo ne può generare altri. Il processo che li genera è detto processo padre (parent process), mentre i processi generati sono detti

Dettagli

La creazione di un nuovo processo in UNIX

La 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

Dettagli

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Editor Utenti Permessi Esercitazione 2 Domande sulle lezioni passate? Lezione 2 Editor Utenti e gruppi, Permessi, Gestione utenti (prima

Dettagli

Pag. 1. modello di esecuzione parallela

Pag. 1. modello di esecuzione parallela Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel calcolatore. Costituisce la parte essenziale del cosiddetto software di sistema (o di base) in quanto

Dettagli

Accesso a Linux. E Mumolo - DIA

Accesso a Linux. E Mumolo - DIA Accesso a Linux E Mumolo - DIA Login Esempio: Ubuntu 10.04l4 LTS tt2 login: utente Password: $ PROMPT Verifica accesso: File /etc/passwd File /etc/shadow Login scheduler init File password/shadow La verifica

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO 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 III)

Dettagli

Gestione dei processi nel sistema operativo Unix

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

Dettagli

In generale può essere utile che i due processi eseguano del codice diverso

In generale può essere utile che i due processi eseguano del codice diverso System call FORK P fork() ha l aspetto di una funzione C, in realtà è una system call, una chiamata al sistema operativo fork() P P Il processo P' è una copia di P esegue lo stesso codice e possiede una

Dettagli

Igino Corona

Igino Corona Sistemi Operativi Esercitazione 6: Comunicazione fra processi in Linux PIPE Igino Corona igino.corona@diee.unica.it 17 Novembre 2009 File In Linux, un le può essere un contenitore di informazione o uno

Dettagli

eseguire comandi dati dall'utente, utilizzando una macchina reale, di livello inferiore,

eseguire comandi dati dall'utente, utilizzando una macchina reale, di livello inferiore, La programmazione di sistema Introduzione ai sistemi operativi multiprocesso Primitive per la gestione dei processi http://home.dei.polimi.it/silvano/acso.htm Il sistema ste operativo Il Sistema Operativo

Dettagli

Î Modello ad Ambiente Locale P1 P1. File System P2 P2 P3 P3. Processi in UNIX. Modello di Processo in UNIX

Î 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

Dettagli

Università 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 Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 6 Martedì 24-10-2017 1 Sostituzione del codice Tipicamente, dopo una

Dettagli

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

Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva Processi Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva Processi Processo L'istanza di un programma in esecuzione in ambiente UNIX viene detta processo Ogni programma può generare diversi

Dettagli

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat. Esame Laboratorio di Sistemi Operativi 2-01-2008 Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 1 ora. Domande chiuse:

Dettagli

I 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. 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

Dettagli

La famiglia di system call exec. Modulo 6. Laboratorio di Sistemi Operativi I Anno Accademico

La famiglia di system call exec. Modulo 6. Laboratorio di Sistemi Operativi I Anno Accademico 1 Modulo 6 Laboratorio di Sistemi Operativi I Anno Accademico 2008-2009 Copyright 2005-2007 Francesco Pedullà, Massimo Verola Copyright 2001-2005 Renzo Davoli, Alberto Montresor (Universitá di Bologna)

Dettagli

Processi in UNIX. Spazio di sistema (residente) Tabella dei. file APERTI OPEN FILE. Tabella dei codici

Processi 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)

Dettagli

I Processi nel Sistema Operativo Unix

I 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

Dettagli

Lezione XII.IV Gestione dei file Uso della shell I permessi di accesso

Lezione XII.IV Gestione dei file Uso della shell I permessi di accesso Programmazione e Laboratorio di Programmazione Lezione XII.IV Gestione dei file Uso della shell I permessi di accesso Programmazione e Laboratorio di Programmazione: Gestione dei file Uso della shell 1

Dettagli

File binari e file di testo

File binari e file di testo I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file

Dettagli

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Editor Utenti Permessi Esercitazione 2 Domande sulle lezioni passate? Lezione 2 Editor Utenti e gruppi, Permessi, Gestione utenti (prima

Dettagli

I Processi nel SO UNIX

I 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

Dettagli

Sistemi Operativi. Lezione 4 I processi: implementazioni

Sistemi Operativi. Lezione 4 I processi: implementazioni Lezione 4 I processi: implementazioni UNIX Creazione di un processo Assegna al processo un identificatore univoco Alloca spazio per il processo Inizializza il PCB Predisponi gli opportuni agganci con strutture

Dettagli

Gestione dei processi

Gestione dei processi Gestione dei processi Dormire unsigned int sleep(unsigned int); Attende un numero specificato di secondi a meno che non si verifichi un segnale Restituisce 0 se l'attesa è terminata senza interruzioni,

Dettagli

Il comando make. Per produrre un eseguibile da un programma C sono necessari tre passi compiuti dai seguenti moduli:

Il comando make. Per produrre un eseguibile da un programma C sono necessari tre passi compiuti dai seguenti moduli: Il comando make Sviluppando programmi complessi, si è spesso portati a suddividere il codice sorgente in diversi file. La fase di compilazione quindi richiede maggior tempo, anche se le modifiche apportate

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi primavera 2009 Controllo dei processi (2) Funzioni wait e waitpid quando un processo termina il kernel manda al padre il segnale SIGCHLD il padre può ignorare il segnale (default) oppure lanciare una funzione

Dettagli

Sistemi Operativi Teledidattico

Sistemi Operativi Teledidattico Sistemi Operativi Teledidattico Anno 2002 3a esercitazione 5/10/2002 Paolo Torroni processi fork (creazione di un figlio) exec (sostituzione di codice del programma in esecuzione) wait (attesa della terminazione

Dettagli

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

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 Esercizio 1 Scrivere un programma in C che prende in input (su riga di comando) il nome di un file e visualizza: Il file uid=

Dettagli

Università 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 Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 22 Martedì 08-01-2019 Struttura logica del file system una tipica organizzazione

Dettagli

I Processi nel SO UNIX

I 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

Dettagli

Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica

Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica Ing. Daniele Migliorini (daniele.migliorini@for.unipi.it) # 1 1 Seconda Esercitazione # 2 2 Sommario Editor Utenti e gruppi, Permessi,

Dettagli

Processore Danilo Dessì. Architettura degli Elaboratori.

Processore Danilo Dessì. Architettura degli Elaboratori. Processore 8088 Architettura degli Elaboratori Danilo Dessì danilo_dessi@unica.it Subroutine Anche nel linguaggio assemblativo è possibile suddividere un programma in subroutine Per invocare una subroutine

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO 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: www.iet.unipi.it/g.cola Informazioni generali Ricevimento

Dettagli

Processi. C. Baroglio a.a

Processi. C. Baroglio a.a Processi C. Baroglio a.a. 2002-2003 1 Processi, flussi e pipe In Unix ogni processo è identificato da un numero intero, il Process IDentifier o PID per brevità. I processi sono generati o dall esecuzione

Dettagli

I Processi nel SO UNIX

I 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

Dettagli

Simulazione esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Simulazione esame 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

Dettagli

Permessi base e speciali in Unix-Linux

Permessi base e speciali in Unix-Linux Permessi base e speciali in Unix-Linux Le autorizzazioni di base vengono assegnati utilizzando tre tipi di accesso: Lettura, scrittura ed esecuzione. Questi tipi di accesso vengono utilizzati per determinare

Dettagli

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

Page 1. Programmazione. Shell e programmazione. File comandi (script) Introduzione alla programmazione nella shell di Unix Introduzione alla programmazione nella shell di Unix 10 Maggio 2005 1 Programmazione E` possibile memorizzare sequenze di comandi all'interno di le eseguibili: Ad esempio: #!bin/bash echo hello world!

Dettagli

Controllo degli accessi in UNIX - parte I

Controllo degli accessi in UNIX - parte I 1 aprile 2019 1 aprile1 Controllo degli accessi nei sistemi UNIX Linee guida generiche stabilite fin dalle prime versioni: 1 Tutti gli oggetti (es. file, processi) hanno dei proprietari. I proprietari

Dettagli

Sistemi Operativi 1. Lezione III: Concetti fondamentali. Mattia Monga. 7 marzo 2008

Sistemi Operativi 1. Lezione III: Concetti fondamentali. Mattia Monga. 7 marzo 2008 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 7 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Sistemi Operativi 1. Mattia Monga. 7 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. 7 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 7 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Processi: system calls

Processi: 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

Dettagli

Chiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI mumolo@units.it

Chiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI mumolo@units.it Chiamate di sistema per la Gestione dei processi in POSIX E.Mumolo, DEEI mumolo@units.it Process id ed altri identificatori pid_t getpid(); // Process id del processo chiamante pid_t getppid(); // Process

Dettagli

Editor, Utenti e Permessi Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet

Editor, Utenti e Permessi Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet Editor, Utenti e Permessi 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

Dettagli

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005 Introduzione alla programmazione nella shell di Unix 10 Maggio 2005 1 Page 1 Shell e programmazione La shell di UNIX definisce un vero e proprio linguaggio di programmazione, le cui caratteristiche principali

Dettagli

Laboratorio di Sistemi Operativi primavera 2009

Laboratorio di Sistemi Operativi primavera 2009 primavera 2009 Forme di comunicazione tra processi La comunicazione tra processi può avvenire: Le pipe Passando dei files aperti tramite fork Attraverso il filesystem Utilizzando le pipes Utilizzando le

Dettagli

Sistemi Operativi. Marzo-Giugno 2011 matricole congrue 0 mod 3. Controllo dei processi - I

Sistemi Operativi. Marzo-Giugno 2011 matricole congrue 0 mod 3. Controllo dei processi - I Marzo-Giugno 2011 matricole congrue 0 mod 3 Controllo dei processi - I Controllo dei processi Creazione di nuovi processi Esecuzione di programmi Processo di terminazione Altro 2 1 Identificatori di processi

Dettagli

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

Sistema 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

Dettagli

File System Unix. Generalità

File System Unix. Generalità File System Unix Generalità File System: Caratteristiche Struttura gerarchica Files senza struttura (byte strems) Protezione da accessi non autorizzati Semplicità di struttura "On a UNIX system, everything

Dettagli

Corso di Informatica Modulo T3 1-Nucleo e processi

Corso di Informatica Modulo T3 1-Nucleo e processi Corso di Informatica Modulo T3 1-Nucleo e processi 1 Prerequisiti Concetto stack Programmazione elementare Struttura elementare del computer Concetto intuitivo di sottoprogramma 2 1 Introduzione Vediamo

Dettagli

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 4

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 4 UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica e delle Telecomunicazioni a.a. 2005-2006 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 4 1 Funzioni per il

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo L2 4-1 Prerequisiti Concetto di firmware Struttura di base di un sistema operativo Uso pratico elementare di un sistema operativo 2 1 Introduzione In questa Unità vediamo più

Dettagli

Senza Soluzioni. Può un altro utente non appartenente al gruppo di mgiorgio, eseguire gli stessi comandi?

Senza Soluzioni. Può un altro utente non appartenente al gruppo di mgiorgio, eseguire gli stessi comandi? Senza Soluzioni Scrivere i due seguenti semplici script in bash shell: a. (1.5pt.)uno script che cancella un file dando il suo inode. Lo script e' attivato cosi': irm b. (1.5pt.)uno script che

Dettagli

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 mod 3

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 mod 3 Marzo-Giugno 2008 Matricole congrue 0 mod 3 IPC: pipe e FIFO (1) Forme di comunicazione tra processi La comunicazione tra processi può avvenire: Passando dei files aperti tramite fork Attraverso il filesystem

Dettagli

Processi - II. Franco Maria Nardini

Processi - 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

Dettagli

PROGRAMMA DISCIPLINARE SVOLTO a. s. 2015 / 2016

PROGRAMMA 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

Dettagli

Università 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 Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 9 Giovedì 2-11-2017 Comunicazione con pipe Oltre che con la memoria condivisa

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi Laboratorio di Sistemi Operativi LAB2 Installazione Linux e relativi ambienti di lavoro 2002/2003 Pagani - Trentini Slide 1 Agenda Panoramica e storia di Linux Installazione Linux Installazione strumenti

Dettagli

Controllo degli accessi in UNIX

Controllo degli accessi in UNIX Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2013/2014 Controllo degli accessi in UNIX Andrea Lanzi 2014 Andrea Lanzi Controllo degli accessi in UNIX

Dettagli

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3 Marzo-Giugno 2008 matricole congrue 0 mod 3 Funzioni wait e waitpid quando un processo termina il kernel manda al padre il segnale SIGCHLD Controllo dei processi (2) il padre può ignorare il segnale (default)

Dettagli

Sistemi Operativi e informatica 1

Sistemi Operativi e informatica 1 1 Dip. Scienze dell Informatica Università degli Studi di Milano, Italia marchi@dsi.unimi.it a.a. 2011/12 1 c 2010-2012 M.Monga R.Paleari M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5

Dettagli

Corso di Programmazione Concorrente Processi. Valter Crescenzi

Corso di Programmazione Concorrente Processi. Valter Crescenzi Corso di Programmazione Concorrente Processi Valter Crescenzi http://crescenzi.inf.uniroma3.it Sommario Processi vs Thread Creazione e terminazione di processi chiamata di sistema fork() chiamata di sistema

Dettagli

Controllo degli accessi in UNIX - parte I

Controllo degli accessi in UNIX - parte I Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2012/2013 Controllo degli accessi in UNIX - parte I Srdjan Matic, Aristide Fattori 12 Aprile 2013 Srdjan

Dettagli

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

Introduzione a Unix/Bash. Insieme minimo di strumenti per interagire con la shell Bash, compilare ed eseguire Introduzione a Unix/Bash Insieme minimo di strumenti per interagire con la shell Bash, compilare ed eseguire Sistema operativo e shell Il sistema operativo è un programma che Fa da intermediario fra le

Dettagli

Processi. Franco Maria Nardini

Processi. 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

Dettagli

Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI. Fabio Buttussi

Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI. Fabio Buttussi Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI Fabio Buttussi La programmazione di sistema Il kernel è la parte di Unix che corrisponde al sistema operativo

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO 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)

Dettagli

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Esame 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

Dettagli

Programmazione di Sistema 3

Programmazione di Sistema 3 Programmazione di Sistema 3 Paolo Baldan Università Ca Foscari Venezia Corso di Laurea in Informatica Parte di questo materiale è rielaborato dalle slide del Corso di Laboratorio di Sistemi Operativi tenuto

Dettagli

ESERCITAZIONE 2 fork e exec

ESERCITAZIONE 2 fork e exec ESERCITAZIONE 2 fork e exec Richiami di scripting Ripassiamo: Differenza tra pipe e ridirezione su file Come si accede agli argomenti di un invocazione Sintassi dell if Sintassi del for Pipe e ridirezione

Dettagli

Richiami sui Concetti Fondamentali dei Processi

Richiami 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

Dettagli

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

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Shell (prosecuzione) Permessi (prosecuzione) Gestione utenti (prosecuzione) Daniel Cesarini daniel.cesarini@for.unipi.it www.iet.unipi.it/d.cesarini

Dettagli

Esercizi su permessi

Esercizi su permessi Esercizi su permessi usare umask per verificare il valore corrente creare file e directory verificare i permessi cambiare umask e ripetere l esercizio verificando come cambiano i permessi creare una cartella

Dettagli

Processi - II. Franco Maria Nardini

Processi - 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.

Dettagli