I SISTEMI OPERATIVI (1)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "I SISTEMI OPERATIVI (1)"

Transcript

1 I SISTEMI OPERATIVI (1) 1 un computer può essere pensato come una stratificazione di macchine virtuali, ciascuna delle quali mette a disposizione alcuni servizi, che sono utilizzabili mediante chiamate effettuate in un linguaggio di programmazione caratteristico del livello considerato (ad es. linguaggio macchina, C, comandi). Il sistema operativo, è la più esterna delle macchine virtuali, quella che permette all utente (o agli utenti) di utilizzare ad alto livello il computer. E anch esso stratificato a livelli e prevede: Interfaccia Utente: Testuale o Grafica (con finestre) Ambiente di programmazione: editor, compilatori, debugger, Librerie, data base, Linguaggi di sistema: L. di programmazione per applicazioni, L. di configurazione (es. makefile), L. interfaccia utente(es.shell), L. servizi di sistema (funzioni del S.O. system call ).

2 I SISTEMI OPERATIVI (2) 2 Sarà compito del s.o. gestire - risorse software quali: Archiviazione dati e programmi, database, librerie, Esecuzione di programmi, compilatori e debugger Ingresso e uscita (I/O), Comunicazioni, remote login, remote file transfer, posta elettronica - risorse hardware quali: processore, memoria, dispositivi, I moderni s.o. prevedono la multiprogrammazione: più processi di utenti diversi vengono eseguiti contemporaneamente condividendo le risorse quali CPU, memoria, periferiche. Il s.o. effettua l'allocazione delle risorse agli utenti, ottimizzandone la gestione tramite opportune politiche e risolvendo i conflitti di accesso tramite sincronizzazione e mutua esclusione. Per tali scopi tutti i s.o. prevedono alcuni moduli fondamentali: Scheduler, Gestore della Memoria, Gestore dell I/O.

3 I PROCESSI E LA LORO GESTIONE 3 La gestione dei processi, la loro creazione e terminazione e la gestione delle comunicazioni fra processi è la parte più importante (il nucleo) di un Sistema Operativo. Definizione di Processo: è un attività sequenziale, controllata da un programma, che si svolge su un processore, in un proprio ambiente costituito dal contenuto dei registri del processore e dallo stack. Nel caso di sistemi multiprocessore, il processo può non essere legato ad un particolare processore. In un sistema Multiprogrammazione più processi condividono (in interleaving) la stessa CPU, quindi ciascun processo non avanza in modo continuo, però quando avanza, occupa in modo esclusivo un processore.

4 I PROCESSI 4 Un processo è rappresentabile da una terna P = (IM, IP, S) dove: IM Immagine in Memoria: insieme del codice e dei dati, modificabile dal processo in avanzamento. Può essere interamente contenuta in memoria, in modo statico, o essere presente solo parzialmente (gestione dinamica). IP Immagine del Processore: Informazioni sul processo mantenute nei registri del processore, anch'esse modificabili. S Stato di avanzamento: un processo si trova in un certo stato tra tre stati possibili: Ready, Running e Blocked Stato Running: il processore è assegnato al processo (dal S.O.) che puo' avanzare dell esecuzione. Stato Blocked: il processo non dispone del processore perchè bloccato in attesa di un servizio (es. attesa I/O). Stato Ready: il processo è in attesa dell'assegnazione del processore, che è occupato da un altro processo. Un processo può essere bloccato o mandato in esecuzione a seconda della disponibilità del processore e della politica di assegnazione della CPU ai processi. I processi in stato ready (pronti) sono selezionati per l esecuzione in base ad una opportuna politica (schedulazione). Gli obiettivi sono diversi: 1) evitare che la CPU sia inattiva, 2) fare avanzare i processi con velocità dipendenti dalla loro priorità, 3) evitare che un processo debba attendere per un tempo indefinitamente lungo prima di essere eseguito (attesa indefinita o starvation).

5 I PROCESSI IN UNIX 5 Fase di Compilazione programma compilatore eseguibile program text data Fase di Caricamento: viene caricato il codice in memoria con la exec text regioni data stack Fase di Esecuzione: esecuzione user mode user stack system call kernel mode kernel stack

6 ARCHITETTURA UNIX 6 L architettura dei s.o. UNIX, è composta di 3 livelli, hardware, kernel e utente. Il kernel schedula i processi, gestisce le comunicazione tra i i processi, alloca e dealloca memoria, gestisce il file system e le periferiche. In particolare il kernel mette a disposizione dell utente delle funzioni (system call) contenute in librerie di sistema, per eseguire I/O, leggere scrivere file, creare e eliminare processi, modificarne le priorità, ecc. Le system call possono essere chiamate all'interno di un programma, esattamente come normali funzioni implementate dall utente. La loro esecuzione tuttavia e' diversa dall'esecuzione di una funzione normale in quanto vengono eseguite in modo kernel.

7 SYSTEM CALL In Unix non esistono processi del kernel e processi utente separati ma solo processi che passano da modo kernel a utente e viceversa. Infatti Unix è un S.O. con modello a chiamata di procedura. Una procedura eseguita da un processo può non appartenere al pro_ cesso che la sta eseguendo, potrebbe ad esempio essere una procedura di schedulazione per scegliere il successivo processo da attivare, o una routine di interruzione a seguito di un segnale esterno. Tali procedure del kernel sono eseguite in modo kernel. Quando un processo opera in modo kernel utilizza uno stack del kernel (all interno dell'area utente) separato dallo stack utente. Il codice del kernel e le sue strutture dati sono condivise da tutti i processi, e non fanno parte di un processo particolare. Le system call che modificano le tabelle e i dati del kernel devono essere eseguite in mutua esclusione. Il sistema utilizzato da Unix è quello di impedire l'interruzione di tali routine a causa di interrupt (anche da parte del clock) o rischedulazione. Le procedure eseguite in modo non interrompibile devono quindi essere brevissime. Un processo quindi può essere: in esecuzione in modo utente, In esecuzione in modo kernel, in stato ready, in stato waiting (detto anche sleeping). 7

8 FILE SYSTEM UNIX 8 Dal Punto di Vista dell Utente: eseguibili File regolari: testo.. Directory: Per organizzare il file system file speciali: device fisici (tty, disks, printers) Pipe: (per la comunicazione fra processi) Dal Punto di Vista del Sistema Operativo: i-nodes + dati - Gli i-node (Index NODE) sono la rappresentazione interna dei file unix, - risiedono su disco, possono essere copiati in memoria, - esiste un i-node per ogni file fisico, - possono esistere più file, detti link, (anche con nomi diversi) che rappresentano lo stesso file fisico (i-node) pippo link pluto file i-node..

9 INFORMAZIONI NEGLI I-NODE 9 Un i-node su disco contiene: Proprietario del file tipo di file diritti di accesso data di accesso numero di link al file (link counter) indirizzi dei blocchi che contengono il file dimensioni del file Un i-node in memoria contiene: indice di quell inode su disco file system di appartenenza numero di istanze attive del file (es. compilatore) STATO DELL I-NODE: locked? c é un processo in attesa? l i-node in memoria é stato modificato?

10 STRUTTURA DEI FILE REGOLARI 10 Ogni blocco del disco é identificato da un numero Ogni i-node contiene un elenco dei blocchi che memorizzano il file Unix adotta l allocazione gerarchica indicizzata dei blocchi del file data blocks direct 0 direct 1 direct 9 single indirect double indir. triple indirect 256 indirizzi 1024 B 1024 B 1024 B 1024 B 1024 B 1024 B 1024 B (1KB x 10)+(1KB x 256)+(1KB x ) +(1KB x )=16GB

11 STRUTTURE DATI PER GESTIRE I FILE APERTI User file table (per il singolo processo): lista dei file aperti per processo (nell area utente) di solito ha 20 entry (max 20 file aperti contemp.) le entry puntano alla File table (globale) ogni entry è indicizzata da un file descriptor restituito dalla system call open() al momento dell apertura del file fd=open(nomefile, mode); File table (globale, per tutti i processi) : lista globale dei file aperti Lista degli i-node in memoria sempre in memoria centrale ogni entry punta ad un i-node in memoria ogni entry contiene l offset della prossima read/write user file table file table count read count rd-wrt 1. count write 1 i-node list count /etc/passwd count myfile 1. 11

12 SYSTEM CALL OPEN 12 fd = open( file,mode) (fd: user file descriptor) ilkernel: recupera l i-node di file e controlla i permessi alloca una nuova entry nella FILE TABLE che punterá all i-node in memoria setta a zero l offset del puntatore in lettura/scrittura alloca una nuova entry nella USER FILE TABLE che punta alla entry corrispondente nella FILE TABLE il file descriptor fd ha come valore l indice della entry nella USER FILE TABLE

13 USER FILE DESCRIPTOR 0, 1, = Standard Input (STDIN) 1 = Standard Output (STDOUT) 2 = Standard Error (SDTERR) stdin, stdout, stderr sono assunti di default da tutti i processi la convenzione é utile per la redirezione dell input/output e per l uso delle pipe possono essere gestiti come normali file (cioé chiusi, riassegnati, riaperti, )

14 system call CLOSE 14 close(3) close(4) count := count -1 user file table NULL 4 NULL rilasciato.... file table rilasciato. count rite w 1 i-node table count /etc/passwd i-node ritorna in free list.

15 ALTRI TIPI DI FILE UNIX: PIPE file di contenuto transitorio i dati possono essere letti solo nell ordine in cui sono stati scritti (FIFO) dimensione massima: 10 blocchi (i 10 blocchi ad indirizzamento diretto dell i-node) servono per le comunicazioni veloci tra processi distinguiamo Unnamed pipe e Named pipe Unnamed Pipe risiedono solo in memoria vengono riferite solo mediante file descriptor Vengono implementate come file normali usando un i-node. Solo i blocchi indirizzati direttamente vengono usati per lettura/scrittura, e sono gestiti in modo circolare. ad ogni pipe sono associati un file descriptor in lettura ed uno in scrittura solo processi padre/figlio possono usare una unnamed pipe sono automaticamente rimosse alla morte dei processi Named Pipe esistono nel file system qualsiasi processo puó usarne una (se ha i permessi) 15

16 UNNAMED PIPE 16 pipe(fds) int fds[2] fds[0] = lettura fds[1] = scrittura read pointer write pointer offset 0 offset blocchi diretti dell i-node i dati vengono letti nell ordine in cui sono stati scritti (no lseek) i dati possono essere letti una sola volta (vengono consumati ) un dato non puó essere sovrascritto prima che sia stato letto (il processo scrittore é messo in wait) la lettura di una pipe vuota provoca la sospensione del processo lettore

17 ESEMPIO DI USO DI UNNAMED PIPE 17 char string[] = hello main() { char buf[1024]; char *cp1, *cp2; int fds[2]; pid_t pid; pipe(fds); pid=fork(); // creo un nuovo processo // si crea una nuova user file table per il figlio if(pid==0) { // sono il processo figlio close(fds[0]); for (;;) write(fds[1], string, 6); //scrivo verso il padre } else { // sono il processo padre close(fds[1]); for (;;) read (fds[0], buf, 6): /* ricevo dal padre tramite pipe */ } Il processo figlio scrive (produce dati) sulla pipe all infinito. Il processo padre legge (consuma) dalla pipe, per sempre, attendendo ogni volta che il figlio abbia prodotto un dato.

18 NAMED PIPES 18 mknod(file_name, PIPE, 0); crea il file file_name che viene gestito come una pipe file_name é un file del file system, quindi ogni processo lo vede e puó usarlo, se ha i permessi. anche questa pipe é sospensiva

19 ESEMPIO DI USO DI NAMED PIPE 19 #include <fcntl.h> char string[] = hello ; main(argc,argv) int argc; char *argv[]; { int fd; char buf[256]; /* creazione di una named pipe con permessi di lettura/scrittura per tutti gli utenti */ mknod( fifo, ,0); if (argc == 2 ) fd = open( fifo, O_WRONLY); else fd = open( fifo, O_RDONLY); for(;;) } if (argc == 2) write(fd, string, 6); else read(fd, string, 6);

20 CREAZIONE PROCESSI IN UNIX 20 STRUTTURE DATI PER PROCESSI Un processo può essere in escuzione in 2 modi: kernel e utente. Un processo ha almeno 3 regioni: codice, dati e stack Lo stack è allocato dinamicamente. Unix usa 2 tipi di stack, user e kernel, a seconda del modo di esecuzione.il meccanismo che opera il passaggio da user a kernel viene detto trap (o software interrupt). Il kernel possiede una Tabella dei Processi contenente informazioni su ciascun processo in esecuzione. Il Contesto del processo: è costituito dal contenuto dello spazio utente (le tre regioni), dei registri hardware, e dalle strutture dati del kernel relativi a quel processo. MECCANISMO DI BIFORCAZIONE proc_id=fork() La system call fork() duplica un processo. Dopo la fork, se questa ha avuto successo, esistono due processi: il genitore e il figlio. I due processi avranno identificatori di processo diversi. Poichè il program counter è lo stesso, entrambi i processi ritengono di aver eseguito la funzione fork. Entrambi ricevono un valore di ritorno, ma diverso: proc_id > 0 per processo padre == 0 per il figlio < 0 per il padre (solo in caso di errore della fork) pid_t pid; pid=fork(); // creo un nuovo processo if(pid<0) exit(1); // errore, duplicazione non eseguita else { if(pid==0) {.. sono il processo figlio } else {.. sono il processo padre } }

21 RELAZIONE PADRE FIGLIO 21 Il figlio condivide il codice con il genitore, mentre la memoria, i registri e le informazioni sui files (tabelle) vengono duplicate. Quindi, dopo la fork, ogni processo può modificare le variabili contenute nel proprio spazio utente senza alterare le analoghe variabili dell altro processo. I file descriptor sono duplicati. Le tabelle del kernel dei file aperti non sono duplicate. Il figlio eredita i permessi di accesso ai file aperti. I reference counter nelle tabelle del kernel sono incrementati per: 1. area codice 2. entry nella tabella file del kernel (per file aperti) 3. entry nella tabella i-node in memoria

22 Terminazione Sincrona di Processo 22 void exit( int status) La system call void exit(int status) viene chiamata implicitamente dalla libreria C all'uscita dal main. Fra le operazioni eseguite dal kernel c è la chiusura dei file aperti, la liberazione della memoria e il cambiamento dello stato del processo in zombie. Un processo zombie non è più schedulato anche se è ancora presente nella Tavola dei processi. Infine viene inviato al processo genitore un segnale di avvenuta terminazione. Sono comunque mantenuti e aggiornati (nella Tavola dei processi) i tempi di esecuzione relativi al processo terminato. Insieme al segnale di avvenuta terminazione, al padre viene anche passato un valore intero di terminazione, lo status.

23 Attesa Terminazione Figlio 23 pid_t wait( int *status) Il processo che chiama la system call pid = wait(&status) rimane sospeso (non piu' schedulato, quindi in stato waiting) fino alla morte di uno dei suoi figli, in particolare fino a che uno dei figli esegue la funzione exit. Il genitore raccoglie il signal emesso durante la exit. Se il processo non ha figli e' ritornato -1 e settato errno. In caso contrario, viene restituito il pid del figlio terminato. Se un figlio termina prima che il genitore esegua la wait, ne viene tenuta traccia. Quando il genitore chiamerà la wait() non verrà quindi sospeso, ma continuerà immediatamente la sua esecuzione. I figli che hanno chiamato la exit, ma il cui padre non ha ancora chiamato la wait vanno in uno stato detto zombie e rimangono nella tabella dei processi del kernel. Nel momento in cui il padre chiama la wait i figli zombie sono cancellati dalla tavola dei processi. int status; pid_t pid; if ((pid = fork()) == 0) { /* processo figlio */.. exit(1); } /* processo padre */ pid = wait (&status);

24 Esecuzione di Programmi 24 Famiglia di funzioni int exec(diversi parametri) E' possibile mandare in esecuzione altri programmi all'interno di un processo, mediante la famiglia di funzioni exec. Tali funzioni differiscono solo per i tipo di parametri con cui possono essere chiamate. Esistono ad esempio: int execv (char *nomefile, char *argv[] ); int execl (char *nomefile,char *arg1,char *arg2,.,char *argn,0); e altre ancora. definite in <unistd.h> dove: nomefile e' il nome del file che contiene l'eseguibile argv e' il puntatore ad un array di puntatori a caratteri, ognuno dei quali punta ad una stringa che verrà passata come argomento al processo chiamato arg1, arg2, argn puntano ciascuno ad una stringa che verrà passata come argomento al programma Il nuovo programma si sostituisce interamente, come dati e codice, a quello vecchio, che non è più raggiungibile mentre restano inalterate le tavole file (file aperti, posizionamento all'interno di essi, relazioni con altri processi ecc.). ESEMPIO.. editare il file augusto.txt con l editor /usr/bin/vi #include <unistd.h> void main(void) { execl( /usr/bin/vi, augusto.txt,0); printf("errore in chiamata a /usr/bin/vi\n"); } La funzione printf viene eseguita solo in caso di errore della funzione exec, cioe' solo se l'operazione fallisce, per cui il processo continua con lo stesso programma, e non chiama l altro.

25 Esecuzione di più Programmi 25 Le system call di tipo exec possono essere associate alla fork per ottenere l esecuzione del programma chiamato senza interrompere l esecuzione del programma chiamante. ESEMPIO.. editare il file augusto.txt con l editor /usr/bin/vi #include <unistd.h> void main(void) { pid_t pid; int status; pid=fork(); if(pid==0) ) { /* figlio */ execl( /usr/bin/vi, augusto.txt,0); printf("errore in chiamata a /usr/bin/vi\n"); exit(1); } wait (&status); } Questo meccanismo viene applicato anche nelle shell di comandi per eseguire dei programmi: prima con una fork si duplica la shell, e il padre viene messo in attesa della terminazione del figlio. Il figlio chiama la exec per eseguire il programma voluto, tale programma si sostituisce al figlio e alla fine dell esecuzione avvisa il padre, la shell, che riprenderà il controllo.

26 Esecuzione di più Programmi 26 Lo stesso meccanismo (fork + exec) è utilizzato a Linux, per creare i processi iniziali del s.o.

CREAZIONE PROCESSI IN UNIX 20

CREAZIONE PROCESSI IN UNIX 20 CREAZIONE PROCESSI IN UNIX 20 STRUTTURE DATI PER PROCESSI Un processo puo' essere in escuzione in 2 modi: kernel e utente. Un processo ha almeno 3 regioni: codice, dati e stack Lo stack è allocato dinamicamente.

Dettagli

I SISTEMI OPERATIVI (1)

I SISTEMI OPERATIVI (1) I SISTEMI OPERATIVI () un computer può essere pensato come una stratificazione di macchine virtuali, ciascuna delle quali mette a disposizione alcuni servizi, che sono utilizzabili mediante chiamate effettuate

Dettagli

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX

Processi 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

Dettagli

CAP. 6: Nucleo del sistema operativo (La gestione dei processi)

CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Struttura interna del sistema operativo Linux CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Architettura del sistema operativo shell Programmi utente Modo utente Interfaccia delle chiamate

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel

Dettagli

Corso di Laboratorio di Sistemi Operativi

Corso di Laboratorio di Sistemi Operativi Corso di Laboratorio di Sistemi Operativi Lezione 5 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Processi in Unix Approfondimenti: http://gapil.gnulinux.it/download/

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 22 Martedì 7-1-2014 1 System Call per l'uso dei segnali Un processo che

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

Il Concetto di Processo

Il 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

Dettagli

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi

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

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

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

ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX

ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX Introduzione In questa dispensa sono stati raccolti alcuni esercizi di programmazione C in ambiente Unix, tratti dagli esami di Sistemi Operativi svoltisi

Dettagli

Sistemi Operativi. Des crizione e controllo dei proces s i

Sistemi Operativi. Des crizione e controllo dei proces s i Sistemi Operativi Des crizione e controllo dei proces s i Servizi di un Sistema Operativo Permettere ad un utente di creare processi (lanciare programmi) Interallacciare l esecuzione di diversi processi,

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

Digressione: man 2...

Digressione: man 2... Syscall File I/O Digressione: man 2... Le funzioni della libreria standard UNIX associate alle system call di Linux sono documentate nella sezione 2 di man e.g.: man 2 open Ogni manpage di system call

Dettagli

Sistema Operativo e Applicativi

Sistema Operativo e Applicativi Sistema Operativo e Applicativi Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Software A.A. 2012-2013 1 / 36 Software Conosciamo due classi di software: Programmi

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Programmazione multiprocesso

Programmazione multiprocesso DTI / ISIN / Titolo principale della presentazione 1 Programmazione multiprocesso Amos Brocco, Ricercatore, DTI / ISIN 20 febbraio 2012 2 Processi Cos'è un processo? Un programma in esecuzione Spazio di

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

Drivers. Introduzione Tipologie Struttura Interazione con il kernel

Drivers. Introduzione Tipologie Struttura Interazione con il kernel Drivers Introduzione Tipologie Struttura Interazione con il kernel Driver Un driver è un modulo del sistema operativo Esterno al kernel Dedicato alla gestione di una specifica periferica Come altre funzionalità

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix-

Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- 1 Sommario Esercizi sulla gestione dei processi Creazione di un nuovo processo: fork Sincronizzazione tra processi: wait 2 -

Dettagli

2. Strutture dei Sistemi Operativi

2. Strutture dei Sistemi Operativi 1 2. Strutture dei Sistemi Operativi Quali servizi un generico sistema operativo mette a disposizione degli utenti, e dei programmi che gli utenti vogliono eseguire? interfaccia col sistema operativo stesso

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

Capitolo 3 -- Silberschatz

Capitolo 3 -- Silberschatz Processi Capitolo 3 -- Silberschatz Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo sono usati

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread-

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- 1 Sommario Esercizi su: Comunicazione tra processi: la funzione pipe() Condivisione dati e codice tra due o più processi: concetto di Thread 2 -

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR

SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR Cognome: Nome: Matricola: 1. Ricordate che non potete usare calcolatrici o materiale didattico,

Dettagli

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario L hardware di I/O Struttura Interazione tra computer e controllori

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività:

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività: Impossibile visualizzare l'immagine. Processi Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

2. I THREAD. 2.1 Introduzione

2. I THREAD. 2.1 Introduzione 2. I THREAD 2.1 Introduzione Il tipo di parallelismo che è opportuno avere a disposizione nelle applicazioni varia in base al grado di cooperazione necessaria tra le diverse attività svolte in parallelo:

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it Chiamate di sistema per la Inter Process Communication (IPC) in POSIX E.Mumolo, DEEI mumolo@units.it Pipe Cos'è un pipe? E' un canale di comunicazione che unisce due processi Caratteristiche: La più vecchia

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

Dettagli

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti 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

Dettagli

Lezione 5. Processi e thread. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Lezione 5. Processi e thread. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata Lezione 5 Sistemi operativi 24 marzo 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 5.1 Di cosa parliamo in questa lezione? Relazione tra processi e thread, e relative

Dettagli

Interfaccia del file system

Interfaccia del file system Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory Montaggio di un file system Condivisione di file Protezione 9.1 File E un insieme di informazioni correlate e

Dettagli

Processi e Sincronizzazione. Laboratorio Software 2008-2009 C. Brandolese M. Grotto

Processi e Sincronizzazione. Laboratorio Software 2008-2009 C. Brandolese M. Grotto Processi e Sincronizzazione C. Brandolese M. Grotto Sommario 1. Processi Concetti fondamentali Stati in GNU/Linux 2. Creazione Descrizione Creazione con system() Creazione con fork() Effetto di fork()

Dettagli

Controllo I/O Costituito dai driver dei dispositivi e dai gestori dei segnali d interruzione.

Controllo I/O Costituito dai driver dei dispositivi e dai gestori dei segnali d interruzione. C6. REALIZZAZIONE DEL FILE SYSTEM Struttura del file system Un file è analizzabile da diversi punti di vista. Dal punto di vista del sistema è un contenitore di dati collegati tra di loro, mentre dal punto

Dettagli

Gestione dei processi

Gestione dei processi Capitolo 1 Gestione dei processi 1.1 Creazione di un processo I principali eventi che possono dare luogo ad un nuovo processo sono: inizializzazione del sistema; esecuzione di una primitiva di sistema

Dettagli

File I/O. M. R. Guarracino: File I/O 1

File I/O. M. R. Guarracino: File I/O 1 File I/O M. R. Guarracino: File I/O 1 File I/O Gran parte delle operazioni su file in ambiente UNIX possono essere eseguite utilizzando solo cinque funzioni: open read write lseek close M. R. Guarracino:

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi a.a. 2010/2011 Francesco Fontanella Il Sistema Operativo Sistema Operativo 2 Il Sistema Operativo Il Sistema Operativo è uno strato

Dettagli

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione SISTEMI OPERATIVI (parte prima - gestione dei processi) Tra i compiti di un sistema operativo sicuramente troviamo i seguenti: Gestione dei processi Gestione della memoria Gestione del file-system Ci occuperemo

Dettagli

Files, File I/O, File Sharing. Franco Maria Nardini

Files, File I/O, File Sharing. Franco Maria Nardini Files, File I/O, File Sharing Franco Maria Nardini UNIX file types UNIX non richiede una struttura interna del file. Dal punto di vista del sistema operativo c e un solo tipo di file. Struttura e interpretazione

Dettagli

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Secondo biennio Articolazione Informatica TPSIT Prova Quarta Sistema operativo: gestione memoria centrale La Memoria Virtuale consente di superare i limiti della Memoria Centrale : A. no B. a volte C. si, ma non sempre e' adeguata D. si, attraverso tecniche di gestione

Dettagli

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base) Sistema Operativo (Software di base) Il Sistema Operativo Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Funzioni dei Sistemi Operativi!2 Le funzioni principali del SO Gestire le risorse dell elaboratore

Dettagli

IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO... è l insieme dei programmi che rende agevole l uso dell hardware, mascherando le caratteristiche delle risorse fisiche (interfaccia) gestisce le risorse fisiche ottimizzandone l

Dettagli

SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR

SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR Cognome: Nome: Matricola: 1. Ricordate che non potete usare calcolatrici o materiale

Dettagli

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

Cosa e un processo? Stato del processo

Cosa e un processo? Stato del processo Cosa e un processo? LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Un sistema operativo esegue programmi di varia natura: Compilatori, word processor, programmi utente, programmi di sistema,

Dettagli

CAP.8: Il file system

CAP.8: Il file system Struttura interna del sistema operativo Linux CAP.8: Il file system Primitive per la gestione dei file 28/10/2013 File System Il gestore del file system è quel componente del Sistema Operativo che realizza

Dettagli

Esercizio sulla gestione di file in Unix

Esercizio sulla gestione di file in Unix Esercizio sulla gestione di file in Unix 1 Esercizio Si vuole realizzare un programma C che, utilizzando le system call di Unix, realizzi uno schema di comunicazione tra due processi (padre e figlio) mediante

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Unix e GNU/Linux Eugenio Magistretti emagistretti@deis.unibo.it Prima Esercitazione Fork Stefano Monti smonti@deis.unibo.it Unix: sviluppato negli anni '60-'70 presso Bell Labs di AT&T, attualmente sotto

Dettagli

La sincronizzazione è legata alla implementazione delle pipe: int pipe(int fd[2]);

La sincronizzazione è legata alla implementazione delle pipe: int pipe(int fd[2]); int pipe(int fd[2]); Le pipe sono canali di comunicazione unidirezionali che costituiscono un primo strumento di comunicazione (con diverse limitazioni), basato sullo scambio di messaggi, tra processi

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job. Di cosa parliamo in questa lezione? Lezione 4 Cosa è un processo e come viene gestito dal SO 1 e job 2 Il blocco di controllo Sistemi operativi 3 Struttura di un file eseguibile 4 La schedulazione dei

Dettagli

SISTEMI OPERATIVI. I processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. I processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) I processi Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Il concetto di processo

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore. I processi Cos è un processo? Un processo è una attività, controllata da un programma, che si svolge su un processore. Il programma è una entità statica che descrive la sequenza di istruzioni che devono

Dettagli

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007 2007 SISTEMI OPERATIVI Gestione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 13/05/2007 Gestione dei processi 1. Qual è la differenza tra un programma e un processo? Un programma

Dettagli

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

Modello 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

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it Introduzione ai Device Drivers in Linux E.Mumolo, DEEI mumolo@units.it 1 Device Drivers Moduli software che gestiscono le periferiche attraverso il file system Tutte le periferiche sono viste come file

Dettagli

CREAZIONE DI UN FILE

CREAZIONE DI UN FILE #include #include CREAZIONE DI UN FILE fd = creat(filename, mode); int fd, mode; char *filename; La primitiva creat crea un file, se non ne esiste uno col nome specificato, oppure

Dettagli

Sincronizzazione e comunicazione tra processi in Unix. usati per trasferire ad un processo l indicazione che un determinato evento si è verificato.

Sincronizzazione e comunicazione tra processi in Unix. usati per trasferire ad un processo l indicazione che un determinato evento si è verificato. Processi parte III Sincronizzazione e comunicazione tra processi in Unix Segnali: usati per trasferire ad un processo l indicazione che un determinato evento si è verificato. Pipe: struttura dinamica,

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

6. IL NUCLEO DEL SISTEMA OPERATIVO. 1. Meccanismo base di funzionamento del nucleo

6. IL NUCLEO DEL SISTEMA OPERATIVO. 1. Meccanismo base di funzionamento del nucleo 6. IL NUCLEO DEL SISTEMA OERATIVO 1. Meccanismo base di funzionamento del nucleo La funzione principale che il SO deve svolgere è la virtualizzazione dei processi. er comprendere il modo in cui il SO realizza

Dettagli

I/O su Socket TCP: read()

I/O su Socket TCP: read() I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una

Dettagli

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera CPU Memoria principale Il Sistema Operativo Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010 ALU Unità di controllo Registri A indirizzi

Dettagli

Compiti del S.O. Lezione 2: Gestione dei processi. La struttura e funzioni dei Sistemi Operativi

Compiti del S.O. Lezione 2: Gestione dei processi. La struttura e funzioni dei Sistemi Operativi Lezione 2: Compiti del S.O. La struttura e funzioni dei Sistemi Operativi Un S.O. ha il compito di rendere semplice (all utente), l utilizzo del calcolatore componenti di un sistema operativo servizi dei

Dettagli

Sistema di protezione (2) Protezione (1)

Sistema di protezione (2) Protezione (1) Sistema di protezione (1) Sistema di protezione (2) Sistema di protezione (3) - Un processo potrebbe tentare di modificare il programma o i dati di un altro processo o di parte del S.O. stesso. - Protezione:

Dettagli

Sistema di protezione (1)

Sistema di protezione (1) Sistema di protezione (1) - Un processo potrebbe tentare di modificare il programma o i dati di un altro processo o di parte del S.O. stesso. - Protezione: politiche (cosa) e meccanismi (come) per controllare

Dettagli

Programmazione di Sistema 3

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

Dettagli

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2 Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:

Dettagli

Digressione: man (2)...

Digressione: man (2)... Syscall File I/O Digressione: man (2)... Le funzioni della libreria standard UNIX associate alle system call di Linux sono documentate nella sezione 2 di man e.g.: man 2 open Ogni manpage di system call

Dettagli

Sistemi Operativi. Descrizione e controllo dei processi

Sistemi Operativi. Descrizione e controllo dei processi Sistemi Operativi Descrizione e controllo dei processi Servizi di un Sistema Operativo Permettere ad un utente di creare processi (lanciare programmi) Interallacciare l esecuzione di diversi processi,

Dettagli

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Sistemi Operativi. Organizzazione logica ed implementazione di un File System Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Organizzazione logica ed implementazione di un File

Dettagli

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

Dettagli

Come funziona un sistema di elaborazione

Come funziona un sistema di elaborazione Introduzione Cosa è un Sistema Sste aoperativo? Come funziona un sistema di elaborazione Proprietà dei Sistemi Operativi Storia dei Sistemi di Elaborazione Sistemi Mainframe Sistemi Desktop Sistemi i Multiprocessori

Dettagli

Capitolo 5: I thread

Capitolo 5: I thread Capitolo 5: I thread Generalità. Modelli multithread. Problematiche relative ai thread. Pthread. 5.1 I thread Il thread è un flusso di controllo relativo ad un dato processo. Molti sistemi operativi moderni

Dettagli