X Prefazione dei paradigmi della programmazione concorrente. Successivamente, l evoluzione delle tecnologie hardware, che hanno consentito lo sviluppo
|
|
- Agostino Mori
- 7 anni fa
- Visualizzazioni
Transcript
1 Prefazione La concorrenza, intesa come contemporaneità di esecuzione di parti diverse di uno stesso programma, rappresenta una caratteristica di primaria importanza nello sviluppo del software, sia nel caso del software di sistema, e in particolare del Sistema Operativo, sia nel caso del software applicativo, soprattutto con riferimento a specifici ambiti come, per esempio, quello relativo al software real-time o al software di rete. In tutti questi casi, la concorrenza fornisce un ausilio fondamentale per raggiungere gli obiettivi che il sistema software si prefigge sollevando, per contro, una serie di problematiche alla soluzione delle quali è dedicato il presente volume. Quando si parla di concorrenza si tende poi a distinguere il caso in cui la contemporaneità di esecuzione sia relativa a parti diverse di uno stesso programma residente su una sola macchina, sia essa monoelaboratore o multielaboratore, rispetto al caso in cui le parti di programma in contemporanea esecuzione risiedano su macchine diverse collegate tra loro tramite una rete di comunicazione. In quest ultimo caso è più spesso usato il termine programmazione distribuita. Il tema della programmazione concorrente può essere visto da due diverse angolazioni: la prima, strettamente correlata al più generale tema della programmazione, vede la concorrenza come un nuovo approccio alla specifica, al progetto, alla realizzazione e alla validazione di un programma, tendente a liberare il programmatore dai vincoli e dalle limitazioni imposte dalle tradizionali tecniche proprie della programmazione sequenziale. Da questo punto di vista sono parte integrante di questa tematica, oltre agli aspetti legati ai linguaggi di programmazione, le metodologie, i paradigmi e le tecniche per la produzione di programmi, ovviamente per tutto ciò che concerne l introduzione della concorrenza. la seconda, relativa al tema dei sistemi operativi, vede la concorrenza come uno strumento concettuale di fondamentale importanza per il progetto e la realizzazione di un sistema operativo. In effetti, tutte le problematiche connesse con la concorrenza sono nate agli inizi degli anni sessanta in connessione con lo sviluppo dei primi sistemi operativi multiprogrammati. La multiprogrammazione, intesa come tecnica per consentire a un sistema operativo di controllare l esecuzione concorrente di più programmi sequenziali, pur in presenza di una macchina fisica monoelaboratore, rappresenta il primo e più semplice esempio di applicazione
2 X Prefazione dei paradigmi della programmazione concorrente. Successivamente, l evoluzione delle tecnologie hardware, che hanno consentito lo sviluppo di architetture multielaboratore prima e delle reti di elaboratori poi, ha ulteriormente contribuito ad accrescere l importanza delle tecniche di programmazione concorrente e di programmazione distribuita nello sviluppo dei moderni sistemi operativi. Questi due diverse modalità di affrontare il tema della programmazione concorrente e distribuita sono contemporaneamente presenti in questo volume. L obiettivo del testo è infatti quello di presentare le problematiche, dovute all introduzione della concorrenza, che deve affrontare chi si appresta a progettare e realizzare un sistema software, riservando un attenzione particolare a quei casi in cui tale sistema coincida con un Sistema Operativo. Il libro è stato infatti concepito anche come testo per un corso avanzato sui sistemi operativi. Per questo motivo, nei paragrafi conclusivi di molti capitoli vengono illustrate le possibili tecniche con cui, all interno di un sistema operativo, possono essere realizzati i meccanismi primitivi che sono necessari per fornire il supporto alla concorrenza in un contesto sia locale sia distribuito. Contenuti Il libro si articola in tre parti distinte. La prima, costituita dai primi tre capitoli, è dedicata a introdurre i principali concetti che stanno alla base della programmazione concorrente e distribuita: vengono presentati come estensione di analoghi concetti propri della tradizionale programmazione sequenziale. Vengono inoltre presentate le principali problematiche introdotte dalla concorrenza, alla soluzione delle quali sono dedicati i successivi capitoli. Nell introdurre i principali strumenti linguistici necessari per la specifica della concorrenza, vengono anche descritti i meccanismi offerti dal nucleo del Sistema Operativo necessari per fornire loro il supporto. La seconda parte del libro, anch essa costituita da tre capitoli, è dedicata alla programmazione concorrente in senso stretto, cioè alla concorrenza all interno di un architettura non distribuita. La terza parte infine, costituita dagli ultimi quattro capitoli, è invece dedicata alla programmazione distribuita, cioè al caso in cui la concorrenza riguardi parti di uno stesso programma distribuite nell ambito di un architettura composta da macchine interconnesse tramite una rete di comunicazione. Capitolo 1 - Concetti fondamentali In questo capitolo vengono richiamati alcuni dei principali concetti propri della programmazione sequenziale che, una volta estesi al più ampio ambito della programmazione concorrente, costituiranno le fondamenta su cui si basano tutti i successivi argomenti presentati nel libro. Fra tali concetti, primo fra tutti è quello di processo. Viene inoltre messa in evidenza la differenza tra test e prova di un programma, differenza che nel contesto della programmazione concorrente acquista ancora più importanza rispetto al caso della programmazione sequenziale. Per questo motivo le proprietà disafety e liveness, proprie di un programma sequenziale, vengono estese al caso in cui esso sia concorrente. Infine, richiamando i meccanismi di astrazione, viene definito il concetto di macchina concorrente che, astraendo dai dettagli implementativi, fornisce il supporto alla concorrenza richiamando quindi gli stretti legami fra questa e il Sistema Operativo.
3 Prefazione XI Capitolo 2 - Programmazione concorrente e distribuita Il capitolo si propone di approfondire il tema della programmazione concorrente intesa come l insieme delle tecniche, delle metodologie e degli strumenti necessari per fornire il supporto all esecuzione di un applicazione software come un insieme di attività svolte simultaneamente. Oggi la programmazione concorrente, pur continuando a essere il supporto indispensabile al progetto e alla realizzazione dei Sistemi Operativi, è largamente utilizzata anche nel progetto e nella realizzazione di varie tipologie di sistemi applicativi. Vengono introdotti i possibili tipi di interazione tra i processi: la cooperazione, la competizione e l interferenza. Con l aiuto di alcuni esempi, sono poi discusse le proprietà fondamentali di ciascuna forma di interazione. Capitolo 3 - Costrutti linguistici per la specifica della concorrenza Come indicato nel titolo, questo capitolo ha il compito di introdurre i meccanismi linguistici necessari, in un linguaggio di programmazione, per la specifica della concorrenza. Tali meccanismi sono comuni ai due tipi di architetture di macchine e di linguaggi concorrenti ad alto livello che sono oggetto di approfondita analisi nei capitoli successivi. Come esemplificazione di quanto presentato in generale, vengono illustrati come casi particolari la libreria pthread e la realizzazione dei thread nel linguaggio Java. Come anticipato, alla fine del capitolo viene mostrata la realizzazione del meccanismo di multiprogrammazione offerto dal nucleo di un sistema operativo a supporto della concorrenza. Capitolo 4 - Modello a memoria comune Obiettivo di questo capitolo è quello di introdurrre le principali caratteristiche del modello architetturale di macchina concorrente a memoria comune. Da queste derivano le modalità utilizzate dai processi, in esecuzione su tali architetture virtuali, per interagire tra di loro sia per competere sull uso di risorse comuni sia per cooperare. Per chiarire meglio le varie tecniche utilizzate per consentire le interazioni tra processi, vengono introdotte le varie tipologie di gestione delle risorse e il concetto di gestore di una risorsa. Inoltre, viene presentato il costrutto delle regioni critiche condizionali, il principale strumento utilizzato nei successivi capitoli per la specifica delle condizioni di sincronizzazione che devono essere verificate durante gli accessi a risorse condivise. Infine, viene introdotto il concetto di virtualizzazione di una risorsa, generalizzando le tipologie di allocazione delle risorse viste precedentemente. Capitolo 5 - Semafori In questo capitolo viene illustrato il meccanismo di sincronizzazione di gran lunga più usato come meccanismo primitivo in sistemi che seguono il modello a memoria comune, generalmemte offerto dal nucleo di un Sistema Operativo. Vengono descritte, in maniera precisa, la semantica, le proprietà e le modalità di uso dei semafori nel risovere i vari problemi di interazione e sincronizzazione tra processi. Una volta definita la specifica del meccanismo, vengono presentati diversi paradigmi di uso dei semafori, ciascuno dei quali adatto a risolvere particolari categorie di problemi, illustrando ciascun paradigma mediante alcuni esempi. I singoli paradigmi vengono identificati con nomi specifici che ne richiamano le proprietà: semafori binari di mutua esclusione, semafori evento, semafori binari composti, semafori condizione, semafori risorsa, semafori privati. Alla fine, vengono illustrate le tecniche di implementazione del meccanismo semaforico al-
4 XII Prefazione l interno del nucleo di un Sistema Operativo, sia per una classica architettura fisica monoelaboratore, sia nel caso più generale di architetture multielaboratore. Capitolo 6 - Monitor In questo capitolo viene presentato il meccanismo dei monitor, sicuramente il meccanismo linguistico di alto livello più usato per programmare interazioni tra processi in un sistema organizzato secondo il modello a memoria comune. In particolare viene evidenziato come tale meccanismo consenta al programmatore di ovviare a molti degli inconvenienti che potrebbero nascere in seguito a un uso non corretto di un meccanismo primitivo come quello dei semafori. La capacità espressiva del monitor viene illustrata presentando alcuni esempi di come tale strumento consenta di risolvere alcuni classici problemi di gestione delle risorse. Particolare attenzione è posta nella definizione delle diverse semantiche della primitiva signal, che viene utilizzata nell ambito di un monitor per riattivare un processo sospeso in attesa di una condizione di sincronizzazione. Per ciascuna semantica viene anche illustrata una possibile realizzazione del monitor in termini di semafori. Infine viene affrontato il problema della simulazione del comportamento del monitor utilizzando le primitive di sincronizzazione proprie della libreria Pthread e del linguaggio Java. Capitolo 7 - Modello a scambio di messaggi In questo capitolo vengono introdotte e illustrate le principali caratteristiche di un modello architetturale di macchina concorrente del tutto diverso rispetto a quello cui è stato fatto riferimento nei precedenti tre capitoli. Questo modello architetturale, noto come modello a scambio di messaggi, è quello a cui viene fatto riferimento quando si parla di programmazione distribuita. Viene definito il concetto di canale come principale strumento da utilizzare per consentire le interazioni tra processi in architetture organizzate secondo questo modello. Del canale vengono illustrate le varie tipologie in base ai seguenti parametri: la direzione del flusso dei dati che un canale può trasferire (canali mono e bidirezionali), la designazione del canale e dei processi sorgente e destinatario di ogni comunicazione (canali simmetrici e asimmetrici), il tipo di sincronizzazione fra i processi comunicanti (canali asincroni, sincroni e con sincronizzazione estesa). Infine vengono introdotte le varie tipologie di primitive di comunicazione che sono utilizzate, di volta in volta, nei successivi tre capitoli del libro, ivi incluse le istruzioni relative ai comandi con guardie. Capitolo 8 - Primitive di comunicazione asincrone Scopo di questo capitolo è illustrare il primo, e più primitivo, dei tre meccanismi di comunicazione che vengono presi in considerazione nel libro con riferimento al modello a scambio di messaggi: si tratta di quello che prevede che l operazione di invio di un messaggio sia asincrona. Per prima cosa viene mostrato come, con tale meccanismo, sia possibile scrivere processi servitori che simulano le stesse funzionalità che, nel modello a memoria comune, sono proprie di una risorsa condivisa. Viene messo in evidenza come, adottando un diverso paradigma di programmazione, sia possibile risolvere gli stessi problemi di allocazione di risorse visti nell altro modello, arrivando anche a una tabella di corrispondenza tra le soluzioni previste nell ambito dei due modelli. Per chiarire questi concetti vengono illustrate le soluzioni ad alcuni problemi di allocazione di risorse precedentemente visti anche nel modello a memoria comune, ivi
5 Prefazione XIII incluse le tecniche per la specifica di strategie di priorità. Alla fine, vengono mostrate possibili implementazioni delle funzioni di comunicazione tramite le primitive nel nucleo di un Sistema Operativo adatto per architetture sia monoelaboratore o multielaboratore sia distribuite. Capitolo 9 - Primitive di comunicazione sincrone In questo capitolo viene introdotto il meccanismo per la comunicazione sincrona. In particolare, vengono messe in evidenza le principali differenze fra questo meccanismo e quello asincrono illustrato nel precedente capitolo. Tali differenze riguardano sia l implementazione del meccanismo sia l efficienza delle soluzioni ai vari problemi di interazione tra processi. Per illustrare più in dettaglio quest ultimo aspetto, vengono rivisti alcuni esempi già sviluppati nel precedente capitolo, con lo scopo di mettere meglio in evidenza le possibili soluzioni che possono essere realizzate con i due diversi meccanismi di comunicazione. Relativamente alla realizzazione del meccanismo, vengono illustrate tre diverse tecniche: innanzi tutto, viene mostrato come sia possibile simulare un meccansimo di comunicazione sincrona in un sistema organizzato secondo il modello a memoria comune e, in particolare, utilizzando il meccanismo semaforico. Successivamente viene mostrato come un meccanismo di comunicazione sincrono possa essere facilmente realizzato mediante un meccanismo primitivo di tipo asincrono. Infine, viene illustrata la soluzione che prevede di realizzare lo stesso meccanismo sincrono come meccanismo primitivo offerto direttamente dal nucleo del Sistema Operativo. Capitolo 10 - Chiamate di procedura remota e rendez-vous Il capitolo introduce due meccanismi di comunicazione tra processi di alto livello, utilizzati prevalentemente in ambiente distribuito: la chiamata di procedura remota (RPC) e il rendez-vous. Entrambi vengono utilizzati da un processo client per chiedere, lato server, l esecuzione di un determinato servizio e in entrambi i casi il client rimane in attesa del completamento del servizio e dell arrivo dei risultati. Una volta precisata la differenza tra i due meccanismi, vengono presi in considerazione due linguaggi, ADA e Java, e viene discussa la soluzione in essi contenuta relativamente ai due meccanismi. In particolare, con riferimento al linguaggio ADA viene discusso il meccanismo rendez-vous e ne vengono illustrate le proprietà tramite alcuni esempi. Le proprietà del secondo meccanismo, la chiamata di procedura remota, vengono discusse facendo riferimento alla sua realizzazione nel linguaggio Java dove prende il nome di RMI (Remote Method Invocation). Esercizi di riepilogo Vengono infine proposti alcuni esercizi sull utilizzo degli strumenti di sincronizzazione presentati nel testo e relativi alla realizzazione di politiche di gestione delle risorse sia in ambiente a memoria comune sia in ambiente a scambio di messaggi. Le soluzioni agli esercizi sono reperibili sul sito Per gli argomenti trattati, il libro è particolarmente adatto non solo come testo per un corso di Programmazione concorrente e distribuita, ma anche come testo per un corso approfondito di Sistemi Operativi così come è normalmente previsto nell ambito di corsi di laurea magistrale sia in ingegneria informatica sia in informatica.
6 XIV Prefazione Nel libro si presume la conoscenza degli argomenti relativi alla struttura e ai principi di funzionamento di un Sistema Operativo, argomenti che fanno normalmente parte di un corso di base sui Sistemi Operativi e che sono trattati nel volume Sistemi operativi, edito da McGraw-Hill e di cui il presente testo si pone come logica continuazione. Pur presentando nel libro molte esemplificazioni dei concetti introdotti mediante opportuni richiami a specifici linguaggi (per esempio Java) o a librerie standard (come la libreria Pthread), nella presentazione dei singoli argomenti si è adottata la scelta di non fare riferimento a uno specifico linguaggio, utilizzando viceversa una generica sintassi C-like. Ringraziamenti Gli autori desiderano ringraziare due colleghi, la Prof.ssa Anna Ciampolini e il Prof. Giuseppe Lipari che, in base alla loro esperienza sui temi trattati nel libro, hanno contribuito con idee, discussioni e suggerimenti alla stesura finale del testo. Desiderano inoltre ringraziare la Prof.ssa Rebecca Montanari e l Ing. Daniela Tibaldi per il fondamentale contributo alla preparazione e verifica degli esercizi riportati nel testo.
Modello a scambio di messaggi
Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente
DettagliIl Modello a scambio di messaggi
Il Modello a scambio di messaggi 1 Interazione nel modello a scambio di messaggi Se la macchina concorrente e` organizzata secondo il modello a scambio di messaggi: PROCESSO=PROCESSO PESANTE non vi è memoria
DettagliUniversita` di Bologna Corso di Laurea Magistrale in Ing. Informatica A.A Sistemi Operativi M. Prof. Anna Ciampolini
Universita` di Bologna Corso di Laurea Magistrale in Ing. Informatica A.A. 2013-2014 Sistemi Operativi M Prof. Anna Ciampolini http://www.lia.deis.unibo.it/courses/som1314 Obiettivi del Corso Completamento
DettagliIntroduzione alla Programmazione Concorrente
Introduzione alla Programmazione Concorrente 1 Algoritmo, programma, processo Algoritmo: Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma: Descrizione di un
DettagliCORSO DI Principi di Sistemi Operativi (1? anno Corso di Laurea Specialistica in Ingegneria Informatica) ANNO ACCADEMICO
CORSO DI Principi di Sistemi Operativi (1? anno Corso di Laurea Specialistica in Ingegneria Informatica) ANNO ACCADEMICO 2008-2009 Prof. Letizia Leonardi OBIETTIVI FORMATIVI: L'obiettivo del corso è di
DettagliModelli di interazione tra processi
Modelli di interazione tra processi Modelli di interazione Modello a memoria comune (ambiente globale) Modello a scambio di messaggi (ambiente locale, message passing) Modello a memoria comune Il sistema
DettagliSistemi Operativi L-S
Universita` di Bologna Corso di Laurea Specialistica in Ing. Informatica A. A. 2007-2008 Sistemi Operativi L-S Prof. Anna Ciampolini [L-Z] http://www.lia.deis.unibo.it/courses/sistopls0708 Obiettivi del
DettagliModelli di interazione tra processi
Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema
DettagliModelli di interazione tra processi
Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema
DettagliPROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un
DettagliChiamata di procedura remota
Con gli strumenti gia` visti, si puo` realizzare come segue: lato chiamante: send asincrona immediatamente seguita da una receive lato chiamato: una receive seguita, al termine dell azione richiesta, da
DettagliIl Modello a scambio di messaggi
Il Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto typedef struct{ origine; destinazione; contenuto;
DettagliProgrammi e Oggetti Software
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 06 Programmi e Oggetti Software Marzo 2010 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il
DettagliProgrammi e Oggetti Software
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Programmi e Oggetti Software Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Programmi e Oggetti Software
DettagliLinguaggi di programmazione e astrazione
Linguaggi di programmazione e astrazione i linguaggi di programmazione ad alto livello moderni sono il più potente strumento di astrazione messo a disposizione dei programmatori che possono, con un solo
DettagliModello a scambio di messaggi
Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto type messaggio = record origine:. ; destinazione:. ;
DettagliSistemi in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15
Sistemi in tempo reale: applicazioni alla robotica Sistemi in tempo reale: applicazioni alla robotica p.1/15 Sistemi operativi Hardware Firmware Kernel Driver Applicazioni Interfacce Sistemi in tempo reale:
DettagliCorso di Laurea Ingegneria Civile
Corso di Laurea Ingegneria Civile Presentazione del corso di Fondamenti di Informatica Dm. 270 6 cfu Carla Limongelli Marzo 2010 1 Benvenuti!!! 2 Docenti del corso Prof. Carla Limongelli limongel@dia.uniroma3.it
DettagliSistemi Operativi: Concetti Introduttivi
Sistemi Operativi: Concetti Introduttivi 1.1 Principali funzioni di un Sistema Operativo 1.2 Cenni Storici 1.3 Classificazione dei Sistemi Operativi 1.4 Struttura dei Sistemi Operativi 1.5 Processi e gestione
DettagliCorso di Laurea Ingegneria Informatica
Corso di Laurea Ingegneria Informatica Presentazione del corso di Fondamenti di Informatica 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Presentazione Corso 1 Contenuti Corso di
DettagliUniversità degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
DettagliCorso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni
DettagliPrinciples of Concurrent Programming
Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi
DettagliCorso di. Fondamenti di Informatica T
Università degli Studi di Bologna Facoltà di Ingegneria Corso di http://lia.deis.unibo.it/courses/fondt-1011-elt Corso di Laurea in Ingegneria Elettrica Prof. Rebecca Montanari Anno accademico 2010/2011
DettagliIn passato, occuparsi di informatica era sinonimo di programmare computer
Programmare =? In passato, occuparsi di informatica era sinonimo di programmare computer attività poco stimolante, atto finale di un processo dove le fasi creative - analisi e progetto - sono già avvenute
DettagliIl Sistema Operativo
Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche
DettagliIndice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
DettagliCorso Programmazione Java Standard
Corso Programmazione Java Standard Codice: ITJS0113 Durata: 40 ore Descrizione corso Questo corso fornisce una panoramica sulle varie sfaccettature della sintassi del linguaggio Java, integrata con mirate
DettagliIntroduzione ORGANIZZAZIONE DEL LIBRO. Il libro è composto da 12 capitoli organizzati nelle tre parti seguenti:
Introduzione Questo libro, espressamente rivolto ai programmatori esperti in Java, tratta gli elementi essenziali della piattaforma Java 2 Enterprise Edition (J2EE) e analizza in modo particolare le nuove
DettagliProgramma Master Programmatore Java
Programma Master Programmatore Java PCAcademy Via Capodistria 12 Tel.: 06.97.84.22.16 06.85.34.44.76 Cell. 393.93.64.122 - Fax: 06.91.65.92.92 www.pcacademy.it info@pcacademy.it Informazioni generali La
DettagliOBIETTIVI. Conoscere i concetti di base dell Informatica. Conoscere i principi e gli strumenti di base della programmazione
Università degli Studi di Bologna Facoltà di Ingegneria Corso di http://lia.deis.unibo.it/courses/fondt-0910-elt Corso di Laurea in Ingegneria Elettrica Prof. Rebecca Montanari Anno accademico 2009/2010
DettagliSCD. Sistemi distribuiti: introduzione. Sistemi distribuiti: introduzione. Sistemi distribuiti: introduzione
Anno accademico 2004/5 Corso di Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Definizione Un sistema distribuito è un insieme di elaboratori indipendenti capaci
DettagliPrefazione. Contenuti
Questo libro offre un introduzione allo studio di algoritmi e di strutture dati orientato alla realizzazione di programmi efficienti in Java. Il testo affronta con rigore metodologico aspetti di progettazione,
DettagliStruttura Logica del S.O:
Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è
DettagliInformatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione
Informatica 3 Informatica 3 LEZIONE 1: Introduzione Lezione 1- Modulo 1 Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Introduzione al corso Politecnico di Milano - Prof. Sara Comai
DettagliFondamenti di Informatica (lettere A-I) A
Fondamenti Informatica (lettere A-I) A Prof. Roberto Basili (Primo Modulo) Prof. Vincenzo Grassi(Secondo Modulo) Fondamenti Informatica Corso 10 CFU Nasce dalla fusione dei corsi Fondamenti Informatica
DettagliIndice generale Introduzione...vii Parte I Concetti e costrutti fondamentali... 1 Capitolo 1 Introduzione al linguaggio... 3
Introduzione...vii Organizzazione del libro... viii Struttura del libro e convenzioni... ix Codice sorgente e progetti... x Compilare ed eseguire direttamente i listati e gli snippet di codice... x Compilare
DettagliCORSO DI FONDAMENTI DI INFORMATICA
Università degli Studi di Bologna Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA Ing. Civile/Edile Anno Accademico 1999/2000 http://www-lia.deis.unibo.it/courses/fondcived Prof. Paola Mello Tel.
DettagliLinee di programmazione
Ministero dell Istruzione, dell Università e della Ricerca Ufficio Scolastico regionale per il Lazio Istituto Tecnico Industriale A. Pacinotti ISTITUTO TECNICO TECNOLOGICO - LICEO SCIENTIFICO DELLE SCIENZE
DettagliIntroduzione. Sommario. Il software. Definizione di Ingegneria del software
Sommario Introduzione Leggere Cap. 1 Ghezzi et al. Definizione Nascita dell ingegneria del software Ruolo Relazione con altre discipline Introduzione 2 Il software Il software e` definito come: i programmi,
DettagliLABORATORIO di Reti di Calcolatori
LABORATORIO di Reti di Calcolatori Architetture client-server 1 of 12 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server, Pearson Ed.,
DettagliCorso di Linguaggi di Programmazione + Laboratorio
Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un
DettagliLe risorse. Alcune definizioni
Le risorse Dicesi risorsa un qualunque oggetto, fisico o logico, di cui un processo necessita per portare a termine la sua evoluzione. Poiché un processo evolve eseguendo istruzioni (procedure), una risorsa
DettagliInformatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione
Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3
DettagliLABORATORI DI CULTURA DIGITALE: INFORMATICA, INTERNET E ROBOTICA
Dipartimento di Ingegneria Informatica Automatica e Gestionale Università di Roma La Sapienza Via Ariosto 25, Roma Corso di formazione INPS Valore P.A. 2016/17 LABORATORI DI CULTURA DIGITALE: DIRETTORE
DettagliI SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.
I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non
DettagliPROGRAMMA PER LA PROVA DI ACCERTAMENTO
PROGRAMMA PER LA PROVA DI ACCERTAMENTO PARTE 1 Fondamenti di informatica Questa sezione ha lo scopo di presentare i principali argomenti teorici che stanno alla base del funzionamento di un elaboratore
DettagliInterazione tra Processi. Sistemi Operativi T AA
Interazione tra Processi Sistemi Operativi T AA 2012-13 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono interagenti se l esecuzione di un processo è in alcun
DettagliArchitettura di rete. Modelli di Riferimento: TCP/IP e OSI. Modello di riferimento OSI. Modelli di riferimento. architettura di rete
I semestre 02/03 Modelli di Riferimento: TCP/IP e OSI Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Architettura di rete architettura di rete insieme delle specifiche funzionali
DettagliCONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI
CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di
DettagliSommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10
SISS SUITE Sommario 1 Introduzione... 3 2 progetto... 3 3 Soluzione... 3 4 Integrazione... 10 5 Conclusioni... 10 2 1 INTRODUZIONE L OMNICOM SISS Suite è una libreria DLL espressamente concepita per facilitare
DettagliPIANO DI LAVORO ANNO SCOLASTICO 2016/2017. I.I.S.S. C. E. GADDA Sede di Langhirano MATERIA DI INSEGNAMENTO TECNOLOGIE E PROGETTAZIONE DI
PIANO DI LAVORO ANNO SCOLASTICO 2016/2017 I.I.S.S. C. E. GADDA Sede di Langhirano MATERIA DI INSEGNAMENTO TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI PROF. MAURIZIO MERCURI
DettagliCapitolo 6 Le infrastrutture SoftWare
Capitolo 6 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: garantire la correttezza e la precisione nell elaborazione
DettagliISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) DIPARTIMENTO: Informatica
SETTEMBRE Seconda Liceo SA PROGRAMMAZIONE DI DIPARTIMENTO COORDINATA TEMPORALMENTE DISCIPLINA: Monte ore annuo 66 Libro di Testo E-book dal sito www.matematicamente.it. Pettarin ECDL Appunti forniti dal
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 04 Programmi e Oggetti Software Alfonso Miola Ottobre 2012 http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software
DettagliMANIFESTO DEGLI STUDI DEL CORSO DI LAUREA IN INFORMATICA (CREMA)
MANIFESTO DEGLI STUDI DEL CORSO DI LAUREA IN INFORMATICA (CREMA) Nell anno accademico 2004/05, sono attivati il 1, il 2 e il 3 anno del Corso di Laurea triennale in Informatica presso il Polo Didattico
DettagliLinguaggi di programmazione
Parte 2 Linguaggi di programmazione Livello di Astrazione per la Codifica di un Algoritmo Si può risolvere un problema senza prima fissare un insieme di azioni, di mosse elementari possibili per l elaboratore?
DettagliSISTEMI DI ELABORAZIONE
SISTEMI DI ELABORAZIONE CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA SPECIFICHE DI PROGETTO A.A. 2011/2012 Il progetto consiste nello sviluppo di un applicazione client/server. Client e server
DettagliIntroduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
DettagliSyllabus A042 Insegnamenti disciplinari
Syllabus A042 Insegnamenti disciplinari Università di Verona TFA A.A. 2014/15 Obiettivi e competenze generali per gli insegnamenti disciplinari Come richiesto dalla normativa di riferimento gli abilitandi
DettagliElena Baralis 2007 Politecnico di Torino 1
Introduzione Sistemi informativi 2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 4 6 2007 Politecnico di Torino 1 7 8 9 10 Sistema informatico Nei sistemi informatici,
DettagliModulo 2 Architetture dei SD Lezione 1
Modulo 2 Architetture dei SD Lezione 1 Corso Sistemi Distribuiti (6 CFU) Docente: Prof. Marcello Castellano Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano Table of Contents
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliFONDAMENTI DI INFORMATICA II
Università degli Studi di Ferrara Facoltà di Ingegneria APPUNTI DEL CORSO DI FONDAMENTI DI INFORMATICA II Obiettivi del corso: Approfondire l uso del linguaggio C rispetto a quanto noto dal corso di Fondamenti
DettagliBasi di Dati Ingegneria Informatica e delle Telecomunicazioni
Basi di Dati Ingegneria Informatica e delle Telecomunicazioni A.A. 2014/2015 Ing. Claudio Marrocco c.marrocco@unicas.it Obiettivi del corso Il corso mira ad introdurre agli studenti modelli e metodi per
DettagliARCHITETTURA DEI CALCOLATORI
A09 139/3 Graziano Frosini Giuseppe Lettieri ARCHITETTURA DEI CALCOLATORI VOLUME III ASPETTI ARCHITETTURALI AVANZATI E NUCLEO DI SISTEMA OPERATIVO Con riferimento al Personal Computer all ambiente di
DettagliInterazione tra Processi. Sistemi Operativi T AA
Interazione tra Processi Sistemi Operativi T AA 2009-2010 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono interagenti se l esecuzione di un processo è in alcun
DettagliIl PROCESSO UNIFICATO
Corsi di laurea triennale in Ingegneria Informatica Corso di Ingegneria del software Il PROCESSO UNIFICATO Modellazione ed Implementazione di un Sistema Software per la gestione informatizzata di un ristorante
DettagliApplicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1
Applicazioni distribuite e sistemi ad oggetti distribuiti RPC RMI - Web Services 1 Complessità delle applicazioni distribuite La scrittura di applicazioni distribuite basate sull utilizzo di protocolli
DettagliReti logiche A All. Informatici (M-Z) Fabrizio Ferrandi a.a
Reti logiche A All. Informatici (M-Z) Fabrizio Ferrandi a.a. 2003-2004 Contenuti - Progetto logico di sistemi digitali Metodologie di progetto per la realizzazione dei dispositivi di elaborazione costruire
DettagliSQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:
SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i
DettagliCORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1
CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì
DettagliLinguaggi di programmazione
Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE-M
FONDAMENTI DI INTELLIGENZA ARTIFICIALE-M A.A. 2010/2011 Docente: Prof. Paola Mello e-mail: paola.mello@unibo.it Tel: 051 2093818 Server web del modulo: http://www.lia.deis.unibo.it/courses/ai/fundamentalsai2010-11/
DettagliCorso di Laurea Ingegneria Informatica Laboratorio di Informatica
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente
DettagliSistemi Operativi A. Prof. Alberto Broggi. Dip. di Ingegneria dell Informazione Università di Parma
Sistemi Operativi A Prof. Alberto Broggi Dip. di Ingegneria dell Informazione Università di Parma Crediti Il corso offre 5 crediti (46 ore) Lezioni (circa 36 ore) Esercitazioni (circa 10 ore) Prova in
DettagliUniversità di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per
DettagliISO- OSI e architetture Client-Server
LEZIONE 9 ISO- OSI e architetture Client-Server Proff. Giorgio Valle Raffaella Folgieri giorgio.valle@unimi.it folgieri@dico.unimi.it Lez 10 modello ISO-OSI e architettura client-server 1 Nelle scorse
DettagliLe reti rete La telematica telematica tele matica Aspetti evolutivi delle reti Modello con mainframe terminali Definizione di rete di computer rete
Reti e comunicazione Le reti Con il termine rete si fa riferimento, in generale ai servizi che si ottengono dall integrazione tra tecnologie delle telecomunicazioni e le tecnologie dell informatica. La
DettagliBasi di dati Basi di dati per bioinformatica
Basi di dati Basi di dati per bioinformatica DOCENTI PROF. ALBERTO BELUSSI PROF CARLO COMBI Anno accademico 2013/14 Organizzazione degli insegnamenti 3 Basi di dati Basi di dati per Bioinformatica Teoria
DettagliINFORMATICA PER LE SCIENZE UMANE a.a. 2016/2017
INFORMATICA PER LE SCIENZE UMANE a.a. 2016/2017 Francesca Levi Dipartimento di Informatica E-mail: francesca.levi@unipi.it levifran@di.unipi.it Francesca Levi Dipartimento di Informatica Informatica per
DettagliSalvatore Cuomo Prolusione
Salvatore Cuomo Prolusione 1 Lezione n. Parole chiave: Algoritmo, Esecutore Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio Email Docente: salvatore.cuomo@unina. it
DettagliSincronizzazione Le sezioni scritiche
Sincronizzazione Le sezioni scritiche Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Ambiente di sviluppo Concorrenza e sincronizzazione Programmazione concorrente (tramite
DettagliSistemi Operativi. Prof. Alberto Broggi. Dip. di Ingegneria dell Informazione Università di Parma
Sistemi Operativi Prof. Alberto Broggi Dip. di Ingegneria dell Informazione Università di Parma Crediti Il corso offre 6 crediti (48 ore) Lezioni (circa 36 ore) Esercitazioni (circa 10 ore) Prova in itinere
DettagliCorso di Architettura degli Elaboratori
Corso di Architettura degli Elaboratori Introduzione: linguaggi, livelli e macchine virtuali Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it
DettagliINFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016
INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016 Francesca Levi Dipartimento di Informatica E-mail: francesca.levi@unipi.it levifran@di.unipi.it Francesca Levi Dipartimento di Informatica Informatica per
DettagliCALCOLATORI ELETTRONICI
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria elettronica Anno accademico 2017/2018-3 anno CALCOLATORI ELETTRONICI 9 CFU - 2 semestre Docente titolare dell'insegnamento
DettagliUniversità degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Sede di Modena. Esame di Stato 2004
Esame di Stato 2004 Il documento contiene 6 temi complessivi: 3 della prima sessione e 3 della seconda sessione 2004 relativi alle prove degli Ingegneri - Nuovo Ordinamento. Le prove si riferiscono esclusivamente
DettagliIstruzioni Condizionali
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali
DettagliSISTEMI OPERATIVI, RETI, INTERNET
Competenze e Unità didattica formativa capitalizzabile 4.1 SISTEMI OPERATIVI, RETI, INTERNET Comprendere il significato dell'evoluzione dei sistemi operativi. Comprendere che cosa fa un sistema operativo
DettagliANNO ACCADEMICO 2017/2018 LAUREA TRIENNALE 3 ANNI. Informatica
ANNO ACCADEMICO 2017/2018 LAUREA TRIENNALE 3 ANNI Informatica IL CORSO IN BREVE Il Corso di laurea triennale in Informatica forma professionisti in grado di progettare, sviluppare e gestire sistemi informatici
DettagliPrinciples of Concurrent Programming
Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi
DettagliAnalisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.
tesi di laurea Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit. Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Luca Anniciello candidato Gianluca
DettagliGestione dello sviluppo software Modelli Base
Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione GESTIONE DEI SISTEMI ICT Paolo Salvaneschi A4_1 V1.0 Gestione dello sviluppo software Modelli Base Il contenuto
DettagliCorso di Laurea Ingegneria Informatica
Corso di Laurea Ingegneria Informatica Presentazione del corso di Fondamenti di Informatica 2 C. Limongelli - A. Miola Febbraio 2007 http://www.dia.uniroma3.it/~java/fondinf2/ Presentazione Corso 1 Contenuti
DettagliI sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas
I sistemi operativi (prima parte) Le esigenze dell informatica moderna Computer facili da usare Gestione di grandi archivi di dati Esecuzione di più programmi sulla stessa macchina Collegamento in rete
DettagliOpen Database Connectivity (ODBC)
Open Database Connectivity (ODBC) Open Database Connectivity (ODBC), proposto dalla Microsoft nel 1991, fornisce un interfaccia applicativa standard che permette ad una generica applicazione di accedere
DettagliGerarchia fisica di memoria 1. Gerarchia fisica di memoria 2. Gerarchia fisica di memoria 3. Ricapitolazione di concetti base
Gerarchia fisica di memoria 1 Tempo di accesso Capacità tipica Ricapitolazione di concetti base Sistemi Operativi - T. Vardanega Pagina 92/113 Gerarchia fisica di memoria 2 La cache è suddivisa in blocchi
DettagliScrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano
DettagliServizi di interscambio dati e cooperazione applicativa Guida alla gestione dei servizi web Mipaaf
Servizi di interscambio dati e cooperazione applicativa Indice 1 Introduzione... 3 2 Accesso ai servizi... 4 2.1 La richiesta di convenzione... 4 2.2 Le credenziali di accesso al sistema... 5 2.3 Impostazione
Dettagli