Programmazione concorrente

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

LINGUAGGIO DI PROGRAMMAZIONE C
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Stringhe di caratteri In linguaggio C.
Algoritmi notevoli In linguaggio C.
Gestione dei processi A. Ferrari.
PHP.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
SC che operano su processi
Introduzione al linguaggio C
1 Reti di Calcolatori Esercitazione 1 Implementazione di un superserver Unix di rete Vedi: W.R. Stevens, Unix Network Programming, Prentice Hall Copyright.
I segnali.
1 System Call per Comunicazione tra Processi Pipe.
Anno accademico Array e puntatori in C.
Processi Concetto di processo Scheduling dei processi
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Memorie Condivise Distribuite
Threads: Sistemi Operativi I Corso di Laurea in Ingegneria Informatica
Array Funzioni che operano su array. Funzioni Ricordiamo che una funzione è una parte di codice a sé stante che esegue un compito e/o ritorna un risultato.
I Thread.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Le funzioni.
Sistemi Operativi - Shell 1 Elementi di programmazione concorrente Niccolo` Battezzati Politecnico di Torino Dip. Automatica e Informatica.
1 ListaDiElem Cancella( ListaDiElem lista, TipoElemento elem ) { ListaDiElem puntTemp; if( ! ListaVuota(lista) ) if( lista–>info == elem ) { puntTemp =
Radix-Sort(A,d) // A[i] = cd...c2c1
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
2000 Prentice Hall, Inc. All rights reserved. Attivazione di funzioni La chiamata/attivazione di funzione viene indicata citando il nome della funzione.
Threads.
Sistemi ad elevate prestazioni Lezione 1
Costruzione di una semplice Agenda telefonica Elettronica Esercizio sull'uso delle principali system call Unix.
Ricerca sequenziale in un array di interi
Complessità di un algoritmo
Il Software Programmare direttamente la macchina hardware è molto difficile: l’utente dovrebbe conoscere l’organizzazione fisica del computer e il suo.
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A.
1 I segnali. 2 Prima un po’ di teoria…... 3 Stati dei processi in UNIX Idle Sleeping Zombified Runnable Running Fork iniziata waitpid Fork terminata.
I processi.
T. MottaGenerazione e terminazione processi1 Creazione e terminazione dei processi Tommaso Motta
#include void main() { int a,b,c,; float s, x,x1,x2,delta,alfa,beta; int num[3]; int i; printf("La forma classica dell'equazione di 2° grado è: a*x^2+b*x+c=0\n.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
1 Esercitazione finale per il corso di Sistemi Operativi (A.A. 2001/2002)
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
1 SC che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
Array (visita e ricerca) CORDA – Informatica A. Ferrari.
Programmazione di sistema e gestione dei processi in C.
Operatori di incremento e decremento
Gestione dei segnali I segnali sono interrupt software.I segnali –interrompono i processi qualunque cosa stiano essi facendo al momento della generazione.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
1 System Call che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
Informatica 4 La ricorsione. Definizione di ricorsione Ricorsione è la proprietà di quei programmi che, all’interno delle istruzioni che li compongono,
1 System Call che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
Stringhe In linguaggio C. Stringhe  Un insieme di caratteri in sequenza forma una stringa.  Alcuni linguaggi definiscono per le stringhe uno specifico.
Conio.h contiene la dichiarazione di funzioni usate per richiamare alcune routine DOS di gestione del video e della tastiera. NECESSARIA PER system(‘’cls’’)
© 2016 Giorgio Porcu - Aggiornamennto 18/03/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.
Transcript della presentazione:

Programmazione concorrente Linux

Programmazione concorrente La concorrenza è una caratteristica dei sistemi di elaborazione nei quali può verificarsi che un insieme di processi o sottoprocessi (thread) sia in esecuzione nello stesso istante. Un'importante classe di sistemi informatici nei quali gli aspetti di concorrenza sono fondamentali è quella dei sistemi operativi. Si può parlare di concorrenza nel caso di: parallelismo reale di esecuzione (nel caso di sistemi multiprocessore dove si possono eseguire parallelamente un numero di processi pari al numero di processori) parallelismo virtuale di esecuzione (come nel caso del pipelining). Wikipedia

Clonazione dei processi Linux ha ereditato da Unix la funzione API fork che permette di clonare il processo che la invoca. Viene creato un nuovo processo con un PID (Process Identifier) differente. Le pagine di memoria del codice sono condivise Le pagine di memoria dei dati sono duplicate

fork Per permettere di distinguere nel codice il Processo Padre dal Processo Figlio la funzione fork restituisce un valore intero: <0 condizione di errore 0 restituito al processo figlio >0 restituito al processo padre /è il PID del figlio) #include <unistd.h>

int pFiglio,pPadre,mioPID,s; pPadre = getpid(); //PID del processo padre printf(“PID padre %i”,pPadre); pFiglio = fork(); if (pFiglio<0) //errore return; if (pFiglio>0) { //processo padre … wait(&s); // attesa termine processo figlio return; } else { // processo figlio mioPID = getpid();

wait La funzione API wait attende la conclusione del processo figlio L’argomento passato ritorna lo stato del figlio al momento della terminazione. #include <sys/wait.h>

Evoluzione dei processi

Esercitazione Caricare un array molto grande con valori casuali poi visualizzare gli indici degli elementi con valore uguale a quello ricevuto in input Il processo padre clona un processo figlio che ricerca nella prima parte dell’array mentre il processo padre ricerca nella seconda parte L’output deve precedere il PID del processo e l’indice dell’elemento Seconda versione ogni processo a sua volta esegue una fork per suddividere la ricerca con un ulteriore processo figlio

Copy on write Per ottimizzare la gestione della memoria e la velocità nell’esecuzione di una fork (clonazione di un processo) le pagine della memoria non vengono inizialmente duplicate. La copia di ogni dato avviene solo quando uno dei due processi (padre o figlio) lo modifica e si rende quindi necessario differenziare la copia relativa al processo padre da quella relativa al figlio.