Implementazione di linguaggi 2. CUDA, query su GPU. Dott Stefano Ghio. Dott Michele Bozzano.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Implementazione di linguaggi 2. CUDA, query su GPU. Dott Stefano Ghio. Dott Michele Bozzano. michele.bozzano@gmail.com. otacorp@gmail."

Transcript

1 Implementazione di linguaggi 2 CUDA, query su GPU Dott Michele Bozzano michele.bozzano@gmail.com Dott Stefano Ghio otacorp@gmail.com

2 GPGPU General purpose processing on the GPU Come dice il nome (Graphics Processing Unit) è il microprocessore di una scheda video ed è stato inizialmente ideato per assolvere compiti specifici di computer grafica. Esso si è evoluto diventando estremamente flessibile e potente, tanto che ci si è chiesti se esistesse la possibilità di sfruttarlo per computazioni general-purpose.

3 Potenzialità del GPGPU La potenza e la flessibilità delle GPU le rende una interessante piataforma per computazioni general purpose. L obbiettivo è quello di mettere a disposizione dei programmatori le potenzialità inutilizzate delle GPU per poterle sfruttare come un co-processore ad alta velocità. Esempi di applicazioni Physical modeling Computational engineering Matrix algebra Convolution Sorting Database operations

4 CPU vs GPU Le GPU stanno diventando sempre più veloci: La crescita annuale di CPU e GPU è determinata dalla seguente legge: CPUs: 1.4 GPUs: 1.7 (pixels) to 2.3 (vertices)

5 GPU vs CPU: NVIDIA 280 vs Intel i multi-processors in a TPC = Thread Processing Cluster (24 cores)

6 GPU vs CPU Peak Performance Trends Le prestazioni massime delle GPU sono cresciute rapidamente L'hardware ha tenuto il passo della legge di Moore

7 CPU vs GPU La maggioranza delle operazioni eseguite su GPU è estremamente ripetiva e le condizioni per cui delle parti di codice vengono eseguite o meno sono molto rare. A grandi linee, infatti, possiamo dire che nelle CPU standard la maggior parte dei transistor è spesa per gestire il controllo (con le cache e la logica di salto), mentre nel caso delle GPU i core sono molto più semplici e veloci e quasi tutta l'area è spesa per implementarli.

8 Problematiche La progettazione delle GPU è guidata dal mercato dei videogiochi e da ciò ne risulta uno stile di programmazione inusuale, con simbolismi legati alla computer grafica e un ambiente di programmazione molto ristretto. Il perfezionamento di linguaggi di programmazione orientati alle GPU, quale CUDA, sta tentando di porre rimedio a questa difficolta di utilizzo.

9 CUDA Compute Unified Device Architecture modello architetturale Application Programming Interface (API) per sfruttare tale architettura una serie di estensioni (C for CUDA) al linguaggio C per descrivere un'applicazione parallela in grado di girare sulle GPU che adottano quel modello La API di CUDA è molto più facile da comprendere rispetto alle API grafiche.

10 CUDA Un'applicazione CUDA è composta da parti seriali, normalmente eseguite dalla CPU di sistema, o host, e da parti parallele, denominate kernel, che vengono invece eseguite dalla GPU, o meglio ancora nei termini usati da NVIDIA, dal device.

11 CUDA Programming Model La GPU è vista come una periferica di elaborazione che: È un coprocessore (slave) della CPU (host) Ha una propria memoria DRAM (device memory) Un kernel è una funzione richiamabile dalla CPU. Un thread è una istanza di un kernel. GPU manda in esecuzione molti threads in parallelo.

12 CUDA Programming Model Host (CPU) Device (GPU) Kernel PCIe Threads (instances of the kernel) Device Memory

13 Thread Batching: Grids and Blocks Un kernel è definito come una grid (griglia), e può a sua volta essere decomposto in blocchi, che vengono assegnati, sequenzialmente, ai vari multiprocessori, e rappresentano un parallelismo a grana grossa. All'interno dei blocchi, c'è l'unità di computazione fondamentale, il thread, ad una granularità di parallelismo molto fine. Un thread può appartenere ad un solo blocco, ed è identificato da un indice univoco per tutto il Host Kernel 1 Kernel 2 Block (1, 1) Threa d (0, 0) Threa d (0, 1) Threa d (0, 2) Device Threa d (1, 0) Threa d (1, 1) Threa d (1, 2) Grid 1 Block (0, 0) Block (0, 1) Grid 2 Threa d (2, 0) Threa d (2, 1) Threa d (2, 2) Block (1, 0) Block (1, 1) Threa d (3, 0) Threa d (3, 1) Threa d (3, 2) Threa d (4, 0) Threa d (4, 1) Threa d (4, 2) Block (2, 0) Block (2, 1)

14 Thread Batching: Grids and Blocks I kernel (le griglie) sono eseguite sequenzialmente tra loro. I blocchi e i thread, invece, sono eseguiti logicamente in parallelo. Il numero di thread fisici in esecuzione in parallelo dipende dalla loro organizzazione in blocchi e dalle loro richieste in termini di risorse rispetto alle risorse disponibili nel device. I blocchi sono pensati per garantire la scalabilità: supponendo di avere un'architettura con solo 2 multiprocessori e un'altra con 4, e un'applicazione decomposta in 8 blocchi, essa potrà essere eseguita su entrambe, ovviamente con tempi (e livelli di parallelismo) diversi. Nel caso si renda successivamente disponibile un'architettura con 8 multiprocessori, l'applicazione automaticamente si adatterà ad essa e potenzialmente scalerà ancora con le prestazioni.

15 Thread Batching: Grids and Blocks

16 Thread Batching: Grids and Blocks La caratteristica fondamentale di CUDA, che rende il modello di programmazione sostanzialmente differente da altri modelli paralleli, normalmente usati dalle CPU, è che per essere efficiente richiede migliaia di thread. Ciò è reso possibile dalla struttura tipica delle architetture grafiche, che impiegano thread molto leggeri e permettono di creare e cambiare i contesti di esecuzione in maniera molto rapida ed efficiente (nessun ciclo di clock).

17 Classi di applicazioni Si comprende abbastanza facilmente che il modello di CUDA si adatta a specifiche classi di applicazione. In particolare, le caratteristiche principali di queste applicazioni sono: presenza di molte operazioni matematiche (grande intensità aritmetica) elevato grado di parallelismo (le stesse operazioni vengono ripetute per una grande quantità di dati) elavata richiesta di banda di memoria condizioni di controllo molto limitate minima dipendenza tra data elements

18 Memory Hierarchy CPU and GPU Memory Hierarchy

19 CPU Memory Hierarchy In qualsiasi punto del programma è possibile Allocare/liberare la memoria locale e quella globale Accedere in maniera random alla memoria Registers Read/write Memory (RAM) Read/write Disk (HD) Read/write

20 GPU Memory Hierarchy Le modalità di accesso alla memoria sono più restrittive È possibile allocare/liberare la memoria solamente prima della computazione L'accesso alla memoria è limitato durante la computazione Registers Read/write Caches and video memory Read/write Memory (RAM) No access Disk access No access

21 CUDA Device Memory Allocation La GPU (o device) può accedere alla sua memoria privata, o global memory. L'host ha la possibilità di spostare i dati in questa memoria tramite le primitive. Ciascun multiprocessore può poi accedere alla propria shared memory, che invece non può in alcun modo essere gestita dall'host. I dati allocati in shared memory hanno una visibilità limitata al singolo blocco di thread CUDA. Host (Device) Grid Block (0, 0) Shared Memory Registers Thread (0, 0) Local Memor y Global Memory Register s Thread (1, 0) Local Memor y Block (1, 0) Shared Memory Register s Thread (0, 0) Local Memor y Register s Thread (1, 0) Local Memor y Constant Memory Texture Memory

22 CUDA Device Memory Allocation Read-write per-thread registers Read-write per-thread local memory Read-write per-block shared memory Read-write per-grid global memory Read-only per-grid constant memory Read-only per-grid texture memory (Device) Grid Block (0, 0) Shared Memory Registers Thread (0, 0) Local Memor y Register s Thread (1, 0) Local Memor y Block (1, 0) Shared Memory Register s Thread (0, 0) Local Memor y Register s Thread (1, 0) Local Memor y Host Global Memory Constant Memory Texture Memory

23 CUDA Device Memory Allocation cudamalloc Alloca gli oggetti nella Device Global Memory Richiede due parametri: L indirizzo di un puntatore all oggetto che si desidera allocare La dimensione dell oggetto da allocare cudafree Libera aree di memoria usate dalla Global Memory Bisogna specificare il puntatore all area di Host (Device) Grid Block (0, 0) Shared Memory Registers Thread (0, 0) Local Memor y Global Memory Constant Memory Texture Memory Register s Thread (1, 0) Local Memor y Block (1, 0) Local Memor y Shared Memory Register s Thread (0, 0) Register s Thread (1, 0) Local Memor y

24 CUDA Device Memory Allocation cudamemcpy() (Device) Grid esegue le operazioni di copia Block (0, 0) Block (1, 0) Richiede quattro parametri Un puntatore ad un area di memoria sorgente Shared Memory Registers Register s Shared Memory Register s Register s Un puntatore ad area di memoria destinazione Thread (0, 0) Thread (1, 0) Thread (0, 0) Thread (1, 0) Il numero di bytes da copiare La direzione dell operazione: Host to Device Device to Host Device to Device Host Local Memor y Global Memory Constant Memory Texture Memory Local Memor y Local Memor y Local Memor y

25 Programma di esempio // include di sistema #include <stdio.h> #include <assert.h> int main( int argc, char** argv) { //puntatore all'area di memoria sull'host float *h_a; //dimensioni di tale area di memoria int dima; //variabile contatore int n; // puntatori alle aree di memoria sul device float *d_a, *d_b; // allocazione ed inizializzazione della memoria sull'host // definizione delle dimensioni dima = 8; //esecuzione della malloc h_a = (float *) malloc(dima*sizeof(float)); //inizializzazione for (n=0; n<dima; n++) { h_a[n] = (float) n; } // Allocazione della memoria sul device size_t memsize = dima*sizeof(float); cudamalloc( (void**)&d_a, memsize ); cudamalloc( (void**)&d_b, memsize ); } // Memcopy dall'host al device cudamemcpy( d_a, h_a, memsize, cudamemcpyhosttodevice ); // Memcopy da device a device cudamemcpy( d_b, d_a, memsize, cudamemcpydevicetodevice ); // Cancellazione dei dati nell'area di memoria sull'host for (n=0; n<dima; n++) { h_a[n] = 0.f; } // Copia dal device all'host cudamemcpy( h_a, d_b, memsize, cudamemcpydevicetohost ); // verify the data on the host is correct for (n=0; n<dima; n++) { assert(h_a[n] == (float) n); } // Liberazione della memoria sul device cudafree( d_b ); cudafree( d_a ); // liberazione della memoria dell'host free(h_a); // Se il programma arriva fin qua, tutto corretto! printf("corretto!\n"); return 0;

26 Il costo di accesso alla memoria I registri sono estremamente veloci ma sono risorse limitate Anche le memorie cache tendono a essere di dimensioni ridotte Per grandi data sets, la memoria globale fornisce read/write access Gli accessi avvengono in circa cicli di clock Gli accessi non sono mantenuti in cache Per coprire la latenza di memoria, l'hardware fornisce veloci cambi di contesto quando la memoria è acceduta È necessario che ci sia una grande quantità di calcoli da eseguire per coprire l'alto costo di accesso alla memoria I programmi devono essere intelligenti I compilatori spesso non forniscono la necessaria ottimizzazione in fatto di velocità, ma piuttosto di dimensioni del codice Può essere a volte conveniente ricalcolare un risultato invece di accedere alla memoria.

27 Ottimizzare query SQL con CUDA L'alto grado di parallelismo che caratterizza le GPU le rende molto appetibili per implementare query SQL in modo efficace ed efficiente Prenderemo in considerazione alcune query d'esempio effettuate con SQLite

28 SQLite, perchè? Opensource Leggero e di piccole dimensioni Fornito come codice C, molto ottimizzabile direttamente dal compilatore del progetto

29 SQLite - funzionamento Per poter migliorare qualcosa bisogna prima capire come funziona SQLite trasforma ogni query SQL in una sequenza di opcode, simili a codice assembler Ad ogni opcode corrisponde un comando preciso eseguito all'interno del database

30 SQLite funzionamento (cont) Analizzando la sequenza di opcode ottenuti è possibile individuare punti critici sui quali ottimizzare Il programma scritto in opcode viene eseguito da una macchina virtuale che controlla l'esecuzione del codice tramite switch e jump.

31 Esperimento - descrizione Data set composto solo da numeri interi ed in virgola mobile con precisione singola e doppia Tutto il data set (1-5 milioni di tuple) risiede in memoria al momento di effettuare le query, che sono tutte di tipo SELECT

32 Esperimento - sistema Processore Intel Xeon X5550 (2,66GHz quadcore con supporto a 8 hardware thread e banda massima 32GB/s) Kernel Linux GB di memoria Nvidia TESLA C1060 (240 streaming multiprocessors, 4GB memoria e banda massima di 102GB/s)

33 Esperimento data set Generato con il generatore di numeri casuali della libreria scientifica GNU Una colonna per ogni tipo di dato ha una distribuzione uniforme nell'intervallo [-99.0,99.0], Una colonna ha una distribuzione normale con una sigma di 5 ed una ha distribuzione normale con sigma 20 5 milioni di tuple contenenti un id, tre interi e tre floating point. Indicheremo con uniformt e normaltn tali colonne dove T è i oppure f per indicare se si tratta di dato intero o floating point ed N è 5 o 20 a seconda della sigma.

34 Esperimento - query

35 Esperimento query (cont)

36 Esperimento da query a opcode

37 Esperimento da query a opcode (cont) Non tutti gli opcode sono rilevanti ai fini dell'esperimento e non saranno perciò implementati Il flusso del programma è regolato da jump, non tutti gli opcode sono eseguiti in sequenza Alcuni opcode sono eseguiti per ogni riga del data set e sono quindi parallelizzabili Si passa per un formato intermedio chiamato Sphyraena

38 Esperimento da query a opcode (cont) [ ] // find the first OP_Next for(i = 0; i < vdbe->nop && o[i].opcode!= OP_Next; i++); // set start to the destination of OP_Next when it jumps back // to start the next row int start = o[i].p2; [...]

39 Esperimento da query a opcode switch(op->opcode) { case OP_Int64 : // p4 normally stores a pointer to an int64, // dereference for the gpu op->p4.li = o[i].p4.pi64[0]; break; (cont) case OP_Real : // p4 normally stores a pointer to a double, // dereference for the gpu op->p4.d = o[i].p4.preal[0]; break; // SQLite stores the type of aggregate as a string, // translate it to an int case OP_AggStep : case OP_AggFinal : agg_name = o[i].p4.pfunc->zname; if(strcmp(agg_name, SPHYRAENA_AGG_STR_COUNT) == 0) { op->p4.i = SPHYRAENA_AGG_COUNT; } else if(strcmp(agg_name, SPHYRAENA_AGG_STR_MAX) == 0) { op->p4.i = SPHYRAENA_AGG_MAX; } else if(strcmp(agg_name, SPHYRAENA_AGG_STR_MIN) == 0) { op->p4.i = SPHYRAENA_AGG_MIN; } else if(strcmp(agg_name, SPHYRAENA_AGG_STR_SUM) == 0) { op->p4.i = SPHYRAENA_AGG_SUM; } else if(strcmp(agg_name, SPHYRAENA_AGG_STR_AVG) == 0) { op->p4.i = SPHYRAENA_AGG_AVG; } break; }

40 Esperimento - risultati

41 Bibliografia

GPGPU GPGPU. anni piu' recenti e' naturamente aumentata la versatilita' ed usabilita' delle GPU

GPGPU GPGPU. anni piu' recenti e' naturamente aumentata la versatilita' ed usabilita' delle GPU GPGPU GPGPU GPGPU Primi In (General Purpose computation using GPU): uso del processore delle schede grafice (GPU) per scopi differenti da quello tradizionale delle generazione di immagini 3D esperimenti

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM. Davide Barbieri Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM Davide Barbieri Panoramica Lezione Principali versioni dell'hardware CUDA Tesla Fermi Accesso veloce alla memoria globale Accesso veloce alla memoria condivisa

Dettagli

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

Architettura CUDA Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Architettura CUDA Corso di sviluppo Nvidia CUDATM. Davide Barbieri Architettura CUDA Corso di sviluppo Nvidia CUDATM Davide Barbieri Panoramica Lezione Modello Architetturale CUDA Modello di programmazione CUDA Hello World in CUDA Gestione degli errori Terminologia Host

Dettagli

Università degli Studi di Salerno

Università degli Studi di Salerno Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Algoritmi basati su formule di quadratura interpolatorie per GPU ABSTRACT

Dettagli

Informatica - A.A. 2010/11

Informatica - A.A. 2010/11 Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire

Dettagli

Più processori uguale più velocità?

Più processori uguale più velocità? Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

HARD COMPUTING APPLICATO A QUERY SQL

HARD COMPUTING APPLICATO A QUERY SQL HARD COMPUTING APPLICATO A QUERY SQL DOTT. STEFANO GHIO DISI DIPARTMENTO DI INFORMATICA E SCIENZE DELL'INFORMAZIONE, GENOVA RELAZIONE PER IMPLEMENTAZIONE DI LINGUAGGI DOCENTE PROF. MASSIMO ANCONA 1 Indice

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

Dettagli

Organizzazione della memoria principale Il bus

Organizzazione della memoria principale Il bus Corso di Alfabetizzazione Informatica 2001/2002 Organizzazione della memoria principale Il bus Organizzazione della memoria principale La memoria principale è organizzata come un insieme di registri di

Dettagli

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema La macchina di Von Neumann rchite(ura di un calcolatore us di sistema Collegamento Unità di Elaborazione (CPU) Memoria Centrale (MM) Esecuzione istruzioni Memoria di lavoro Interfaccia Periferica P 1 Interfaccia

Dettagli

Varie tipologie di memoria

Varie tipologie di memoria Varie tipologie di memoria velocita` capacita` registri CPU memoria cache memoria secondaria (Hard Disk) Gestione della memoria Una parte della viene riservata per il SO I programmi per poter essere eseguiti

Dettagli

Organizzazione della memoria

Organizzazione della memoria Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010

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

DATABASE. www.andreavai.it

DATABASE. www.andreavai.it Cos'è un database? Quando si usa? Differenze con i fogli elettronici Le tabelle: record, campi, tipi di dati Chiavi e indici Database relazionali (R-DBMS) Relazioni uno-a-uno Relazioni uno-a-molti Relazioni

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Scenario di Progettazione

Scenario di Progettazione Appunti del 3 Ottobre 2008 Prof. Mario Bochicchio SCENARIO DI PROGETTAZIONE Scenario di Progettazione Il Committente mette a disposizione delle risorse e propone dei documenti che solitamente rappresentano

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque? NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui

Dettagli

Speedup. Si definisce anche lo Speedup relativo in cui, invece di usare T 1 si usa T p (1).

Speedup. Si definisce anche lo Speedup relativo in cui, invece di usare T 1 si usa T p (1). Speedup Vediamo come e' possibile caratterizzare e studiare le performance di un algoritmo parallelo: S n = T 1 T p n Dove T 1 e' il tempo impegato dal miglior algoritmo seriale conosciuto, mentre T p

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

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

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1 La microarchitettura. anno accademico 2006 2007 pagina 1 Integer Java virtual machine Ogni microprocessore può avere una microarchitettura diversa, ma la modalità di funzionamento per certi aspetti è generale.

Dettagli

Informatica di base. Hardware: CPU SCHEDA MADRE. Informatica Hardware di un PC Prof. Corrado Lai

Informatica di base. Hardware: CPU SCHEDA MADRE. Informatica Hardware di un PC Prof. Corrado Lai Informatica di base Hardware: CPU SCHEDA MADRE HARDWARE DI UN PC 2 Hardware (parti fisiche) Sono le parti fisiche di un Personal Computer (processore, scheda madre, tastiera, mouse, monitor, memorie,..).

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare

Dettagli

Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM. Davide Barbieri Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM Davide Barbieri Contatti skype: davbar86 mail: davide.barbieri@ghostshark.it Panoramica corso Introduzione al mondo delle GPU Modello GPGPU Nvidia

Dettagli

Hardware di un Computer

Hardware di un Computer Hardware di un Computer Monitor Mouse Tastiera Printer Disk CPU Graphics Adapter USB Controller Parallel Port Disk Controller BUS Memoria RAM Memoria ROM (BIOS) DMA CPU esegue istruzioni, effettua calcoli,

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Linux nel calcolo distribuito

Linux nel calcolo distribuito openmosix Linux nel calcolo distribuito Dino Del Favero, Micky Del Favero dino@delfavero.it, micky@delfavero.it BLUG - Belluno Linux User Group Linux Day 2004 - Belluno 27 novembre openmosix p. 1 Cos è

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

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

Il microprocessore 8086

Il microprocessore 8086 1 Il microprocessore 8086 LA CPU 8086 Il microprocessore 8086 fa parte della famiglia 80xxx della INTEL. Il capostipite di questa famiglia è stato l 8080, un microprocessore ad 8 bit che ha riscosso un

Dettagli

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO Descrizione Nell ambito della rilevazione dei costi, Solari con l ambiente Start propone Time&Cost, una applicazione che contribuisce a fornire

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo Il Sistema Operativo Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo ... ma Cos'è un S.O.? un PROGRAMMA!... ma Cos'è un programma? PROGRAMMA: 1. algoritmo sequenza

Dettagli

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi 1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti

Dettagli

Linux lo installo a 32 o 64 bit? (teoria e pratica)

Linux lo installo a 32 o 64 bit? (teoria e pratica) Linux lo installo a 32 o 64 bit? (teoria e pratica) Roberto Metere 26 ottobre 2013 Accenni teorici E ad un certo punto... più bit Compatibilità e innovazione Sfida teorica Test pratici Sistema di riferimento

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Tecniche per il progetto di sistemi elettronici tolleranti ai guasti

Tecniche per il progetto di sistemi elettronici tolleranti ai guasti Tecniche per il progetto di sistemi elettronici tolleranti ai guasti Fulvio Corno, Maurizio Rebaudengo, Matteo Sonza Reorda Politecnico di Torino Dipartimento di Automatica e Informatica Le tecniche di

Dettagli

Ulteriore Parallelismo Corso di sviluppo Nvidia CUDA TM. Davide Barbieri

Ulteriore Parallelismo Corso di sviluppo Nvidia CUDA TM. Davide Barbieri Ulteriore Parallelismo Corso di sviluppo Nvidia CUDA TM Davide Barbieri Panoramica Lezione Soluzioni Multi-GPU Memoria Page-Locked Unified Virtual Address CUDA Stream Modalità Zero-Copy CUDA Multi-GPU

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

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

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante: Sommario Macchine a stati finiti M. Favalli Engineering Department in Ferrara 4 Sommario (ENDIF) Analisiesintesideicircuitidigitali / 35 (ENDIF) Analisiesintesideicircuitidigitali 2 / 35 4 Le macchine

Dettagli

Livello logico digitale. bus e memorie

Livello logico digitale. bus e memorie Livello logico digitale bus e memorie Principali tipi di memoria Memoria RAM Memorie ROM RAM (Random Access Memory) SRAM (Static RAM) Basata su FF (4 o 6 transistor MOS) Veloce, costosa, bassa densità

Dettagli

1.4a: Hardware (Processore)

1.4a: Hardware (Processore) 1.4a: Hardware (Processore) 2 23 nov 2011 Bibliografia Curtin, Foley, Sen, Morin Informatica di base, Mc Graw Hill Ediz. Fino alla III : cap. 3.8, 3.9 IV ediz.: cap. 2.6, 2.7 Questi lucidi 23 nov 2011

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Materiali per il modulo 1 ECDL. Autore: M. Lanino Materiali per il modulo 1 ECDL Autore: M. Lanino RAM, l'acronimo per "random access memory", ovvero "memoria ad acceso casuale", è la memoria in cui vengono caricati i dati che devono essere utilizzati

Dettagli

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

Dettagli

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 : Un Sistema Operativo è un insieme complesso di programmi che, interagendo tra loro, devono svolgere una serie di funzioni per gestire il comportamento del computer e per agire come intermediario consentendo

Dettagli

Introduzione a Dev-C++

Introduzione a Dev-C++ Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP

Dettagli

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

VMware. Gestione dello shutdown con UPS MetaSystem

VMware. Gestione dello shutdown con UPS MetaSystem VMware Gestione dello shutdown con UPS MetaSystem La struttura informatica di una azienda Se ad esempio consideriamo la struttura di una rete aziendale, i servizi offerti agli utenti possono essere numerosi:

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

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

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO 1 Domanda [1 punto] Dato il formato in virgola mobile su 32 bit così definito (precisione singola): o 1

Dettagli

Ambienti di calcolo a griglia Parte 2. Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job

Ambienti di calcolo a griglia Parte 2. Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job Ambienti di calcolo a griglia Parte 2 Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job Docente: Marcello CASTELLANO La vera rivoluzione non è più la capacità

Dettagli

Scienze della Comunicazione Università di Salerno. UD 3.2a: Introduzione alla Programmazione

Scienze della Comunicazione Università di Salerno. UD 3.2a: Introduzione alla Programmazione UD 3.2a: Introduzione alla Programmazione Bibliografia Curtin, (vecchie edizioni) 12.1 Curtin (IV edizione): 11.1 Questi lucidi Il concetto di programma memorizzato Gli elettrodomestici di uso quotidiano

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli