Sistemi Operativi II. Programmazione Concorrente: Concetti di Base
|
|
|
- Enrichetta Fedele
- 8 anni fa
- Просмотров:
Транскрипт
1 Sistemi Operativi II Programmazione Concorrente: Concetti di Base
2 Programmi e Processi Programma: descrizione statica, ovvero che non cambia nel tempo, di un processo Processo: concetto dinamico, ovvero che evolve nel tempo un processo scaturisce con l esecuzione di un programma da parte di un esecutore ad un medesimo programma possono corrispondere molteplici processi Un processo per poter avanzare necessita di risorse, prima tra tutte, l esecutore
3 Risorse Servono per l avanzamento dei processi L esecutore è una di queste risorse, ma ne esistono di molti altri tipi Consideriamo, per concretezza, esempi di risorse hardware, ma ragionamenti analoghi si possono fare anche con altri tipi di risorse, ad esempio risorse software
4 Prerilasciabilità delle Risorse Prerilasciabili si possono sottrarre al processo che le sta usando senza causare il fallimento dell esecuzione in atto risorsa non seriale: molteplicità della risorsa > 1 es. memoria virtuale, processore virtuale Non Prerilasciabili se sottratte al processo che le sta usando, l esecuzione fallisce risorse seriali; molteplicità = 1 es. stampante, masterizzatore Molteplicità di una risorsa: numero massimo di processi che la possono usare concorrentemente
5 Risorse di Molteplicità Finita Per le risorse di molteplicità finita, affinché l utilizzo risulti costruttivo, è necessario che gli accessi alla risorsa siano controllati Si prevede Un gestore della Risorsa Un protocollo di accesso alla Risorsa richiesta ed ottenimento della risorsa utilizzo della risorsa rilascio della risorsa
6 Programmazione Sequenziale La programmazione è di solito insegnata con riferimento ad un esecutore sequenziale Un esecutore sequenziale svolge una sola azione alla volta sulla base di un programma sequenziale L esecuzione di un programma sequenziale origina un processo sequenziale che conferisce un ordinamento totale alle azioni eseguite La programmazione di un esecutore concorrente, ovvero in grado di eseguire più istruzioni contemporaneamente, sebbene più difficile di quella tradizionale, ha forti motivazioni didattiche e pratiche
7 Programmazione Concorrente: Motivazioni Migliorare la comprensione di un SO che regola diverse attività parallele Sfruttare le prestazioni ottenibili da architetture multi-processor un programma sequenziale non giova di una architettura parallela Migliorare la reattività delle applicazioni all input dell utente durante lunghe operazioni di I/O o di elaborazione La maggiore naturalezza con la quale si possono scrivere alcune tipologie di applicazioni (server, robotica, giochi, simulazioni di attività concorrenti)
8 Utilizzo dei Processori: Applicazione mono-thread
9 Utilizzo dei Processori: Applicazione multi-thread
10 Istruzione ed Area Memoria Per ragionare a vari livelli di granularità, consideriamo astrattamente i due concetti di istruzione ed area di memoria Istruzione; alcune possibili esemplificazioni: istruzione macchina istruzione firmware uno statement java un metodo di una classe java un intero programma una stored-procedure di un DBMS la scrittura di un blocco del gestore della concorrenza di un DBMS Area di Memoria; alcune possibili esemplificazioni: un bit, un byte, una parola macchina un campo di una struttura dati, una struttura dati intera un attributo, una tupla, una tabella, un intero db un blocco di un dispositivo di memoria secondaria
11 Processi Paralleli o Concorrenti Un processo sequenziale definisce un ordinamento totale sulle istruzioni Un processo parallelo definisce un ordinamento parziale sulle istruzioni su alcune istruzioni l esecutore è libero di scegliere quali iniziare prima e/o di eseguirle contemporaneamente Esempio: consideriamo un banale programma per calcolare e stampare le prime quattro potenze di un valore X. Si supponga di disporre di tre sole tipologie di istruzione: leggi <variabile> scrivi <variabile> <variabile> <variabile> * <variabile>
12 Diagramma delle Precedenze Algoritmo sequenziale begin 1. leggi X; 2. scrivi X; 3. X2 X * X; 4. scrivi X2; 5. X3 X2 * X; 6. scrivi X3; 7. X4 X2 * X2; 8. scrivi X4; end scrivi X leggi X X 2 X*X scrivi X 2 X 3 X 2 *X scrivi X 3 scrivi X 4 Algoritmo parallelo X 4 X 2 *X 2
13 Esercizi Esercizio: costruire un diagramma delle precedenze che esprima il massimo grado di parallelismo nel calcolo delle seguenti espressioni sullo stile dell esempio appena visto: a) (A+B)*(C+D) b) A*X^4+B*X^3+C*X^2+D*X+E c) ( -B-SQRT(B^2-4*A*C) )/(2*A)
14 Esecuzioni Sequenziale e Parallele Sia i una generica istruzione, in generale può essere divisibile in istruzioni più elementari Siano I i e F i gli eventi di inizio e fine esecuzione Date due istruzioni a e b consideriamo i 6 possibili ordinamenti in cui occorrono i quattro eventi I a,f a, I b, F b I a I b F a F b I a F a I b F b I b F b I a F a esecuzioni sequenziali I a I b F b F a I b I a F a F b I b I a F b F a esecuzioni parallele
15 Sequenze di Esecuzione Ammissibili Una sequenza di esecuzione ammissibile è una sequenza di questi eventi che rispetta i vincoli espressi dal diagramma delle precedenze Ad un certo diagramma delle precedenze corrispondono molteplici sequenze di esecuzione ammissibili Ad es., con riferimento al precedente diagramma: Ii 1 Fi 1 Ii 2 Ii 3 Fi 2 Fi 3 Ii 4 Ii 7 Ii 5 Fi 5 Fi 7 Fi 4 Ii 6 Fi 6 Ii 8 Fi 8
16 Sequenze di Interleaving Un caso speciale ma rilevante di sequenza di esecuzione ammissibile; consideriamo: un solo esecutore fisico istruzioni indivisibili due processi sequenziali A e B con istruzioni a 1 a 2 a 3 a 4 b 1 b 2 b 3 b 4 Diciamo sequenza di interleaving la sequenza scelta dall esecutore, ad esempio: a 1 b 1 b 2 a 2 b 3 a 3 a 4 b 4 Analogamente per tre o più processi
17 Processori Virtuali Nei sistemi operativi moderni, molteplici esecutori virtuali possono essere implementati con uno o più processori fisici attraverso tecniche di contextswitching In base al numero di processori fisici disponibili ed al numero di processi esistenti, risultano possibili varie situazioni per far avanzare concorrentemente i processi interleaving overlapping una combinazione di queste due
18 Overlapping ed Interleaving L esecutore può eseguire più istruzioni concorrentemente mediante overlapping P a P b CPU 0 CPU 1 t t interleaving CPU 0 CPU 0 P 0 0 a P b CPU 0 CPU 0 t t combinazione P a P b CPU 0 CPU 1 CPU 1 CPU 0 t t
19 Fork & Join Per esprimere attività concorrenti si possono usare diversi costrutti. Nella forma più semplice, bastano: process_id = fork <programma_id> crea un processo figlio di quello attuale mediante l attivazione del programma specificato. Restituisce l identificatore del processo figlio appena creato. Padre e figlio continuano indipendentemente il loro avanzamento. join process_id il processo corrente rimane bloccato sino a quando non termina il processo specificato In genere ciascun processo è dotato di proprie aree di memoria dati (record di attivazione) mentre il codice può essere condiviso. In questo caso si parla di programmi o procedure rientranti
20 Traduzione di un Diagramma delle Precedenze con fork & join P 1 P 3 P 2 P 4 concurrent Procedure P 1 begin <corpo di P 1 >; end concurrent Procedure P 2 begin <corpo di P 2 >; end begin P 1 ; fork P 2 ; fork P 3 ; join P 2 ; join P 3 ; P 4 ; end
21 Esercizi Esercizio: tradurre con fork e join il diagramma delle precedenze per il calcolo e la stampa delle prime quattro potenze di un dato numero. Esercizio: disegnare il diagramma delle precedenze per il calcolo e la stampa progressiva delle prime N potenze di un dato numero; tradurre con fork e join il diagramma delle precedenze trovato. Ragionare sulla presenza del ciclo di iterazione, come esprimerlo ed interpretarlo in un diagramma delle precedenze. Esercizio: disegnare il diagramma delle precedenze per il calcolo del prodotto di due matrici interi; tradurre con fork e join il diagramma delle precedenze trovato.
22 Esercizi Esercizio: tradurre con fork e join i diagrammi delle precedenze mostrati accanto. P 1 P 2 P 3 P 1 P 4 P 5 P 3 P 2 P 6 P 4
23 Fork & Join: Espressività Queste due primitive sono sufficienti a tradurre un qualsiasi diagramma delle precedenze Vantaggi: flessibilità espressività Svantaggi: basso livello di astrazione non impongono alcuna particolare struttura al programma concorrente
24 Altri Costrutti per Esprimere Programmi Concorrenti cobegin P 1 P 2 P n coend Esegue n istruzioni concorrentemente Non sono sufficientemente espressive da esprimere qualsiasi diagramma delle precedenze Risulteranno comode per esprimerne alcuni P 1 P 2 P n
25 Quando Eseguire Concorrentemente? Dato un programma sequenziale, non è difficile costruire un equivalente diagramma delle precedenze Tuttavia è opportuno stabilire un criterio generale per capire se due istruzioni possono essere eseguite concorrentemente o meno: per ottenere diagrammi delle precedenze che esprimono il massimo grado di parallelismo possibile per automatizzare il calcolo dei vincoli che esprimono Quando è lecito eseguire concorrentemente due istruzioni i a e i b?
26 Dominio e Rango Indichiamo con A, B, X, Y, un area di memoria Una istruzione i dipende da una o più aree di memoria che denotiamo domain(i), ovvero dominio di i altera il contenuto di una o più aree di memoria che denotiamo range(i) di i, ovvero rango di i Ad es. per la procedura P procedure P begin X A + X; Y A * B; end domain(p) = {A, B, X} range(p) = {X, Y}
27 Condizioni di Bernstein Quando è lecito eseguire concorrentemente due istruzioni i a e i b? se valgono le seguenti condizioni, dette Condizioni di Bernstein: 1. range(i a ) range(i b ) = Ø 2. range(i a ) domain(i b ) = Ø 3. domain(i a ) range(i b ) = Ø
28 Condizioni di Bernstein (2) Si osservi che non si impone alcuna condizione su domain(i a ) domain(i b ) Sono banalmente estendibili al caso di tre o più istruzioni Esempi di violazione per le due istruzioni: X Y + 1; X Y 1; (violano la 1.) X Y + 1; Y X - 1 ; (violano la 2. e la 3.) scrivi X; X X + Y; (violano la 3.)
29 Effetti delle Violazioni Quando un insieme di istruzioni soddisfa le condizioni di Bernstein, il loro esito complessivo sarà sempre lo stesso indipendentemente dall ordine e dalle velocità relative con cui vengono eseguite in altre parole, indipendentemente dalla particolare sequenza di esecuzione seguita dai processori ovvero, sarà sempre equivalente ad una loro esecuzione seriale Al contrario, in caso di violazione, gli errori dipendono dall ordine e dalle velocità relative generando il fenomeno dell interferenza
30 Esempio di Interferenza (1) La disponibilità di un volo di una compagnia aerea è memorizzata in POSTI=1. Due signori nel medesimo istante ma da due postazioni distinte, chiedono rispettivamente di prenotare l ultimo posto e di disdire la prenotazione già effettuata Le due richieste vengono tradotte in queste sequenze di istruzioni elementari indivisibili: procedure Prenota begin R a POSTI - 1; POSTI R a ; end procedure Disdici begin R b POSTI + 1; POSTI R b ; end
31 Esempio di Interferenza (2) L esecuzione concorrente da luogo ad una qualsiasi delle possibili sequenze di interleaving. Consideriamo un campione di tre sequenze: R a POSTI - 1; R b POSTI + 1; POSTI R b ; POSTI R a ; (POSTI=0) R a POSTI - 1; POSTI R a ; R b POSTI + 1; POSTI R b ; (POSTI=1) R b POSTI + 1; R a POSTI - 1; POSTI R a ; POSTI R b ; (POSTI=2) esecuzione sequenziale
32 Interferenza Si ha interferenza in presenza di due o più flussi di esecuzione almeno un flusso di esecuzione eseguente scritture Perché un flusso esegue un cambio di stato dell area di memoria in maniera non atomica gli stati transienti che intercorrono tra quello iniziale a quello finale sono visibili a flussi di esecuzione diversi da quello che li sta producendo
33 Origine dei Fenomeni di Interferenza stato consistente iniziale flusso di esecuzione stato transiente stato transiente stato transiente stato consistente finale flusso di esecuzione scrittore
34 Errori Dipendenti dal Tempo L interferenza causa errori particolarmente temibili perché dipendenti dalla sequenza di interleaving effettivamente eseguita Questi errori sono particolarmente temibili perché ciascuna sequenza di esecuzione può produrre effetti diversi la scelta della particolare sequenza adottata è (dal punto di vista del programmatore) casuale
35 Caratteristiche degli Errori Dipendenti dal Tempo irriproducibili: possono verificarsi con alcune sequenze e non con altre indeterminati: esito ed effetti dipendono dalla sequenza latenti: possono presentarsi solo con sequenze rare difficili da verificare, e testare: perché le tecniche di verifica e testing si basano sulla riproducibilità del comportamento
36 Il Programmatore e gli Errori Dipendenti dal Tempo Il programmatore non può fare alcuna assunzione: sulla particolare sequenza di interleaving eseguita, ovvero sulle velocità relative dei vari processori virtuali su un qualsiasi altro tipo di sincronismo legato alla specifica implementazione dei processori virtuali Un programma che implicitamente od esplicitamente basa la propria correttezza su ipotesi circa la velocità relativa dei vari processori, è scorretto Esiste una sola assunzione che possono fare i programmatori sulla velocità dei processori virtuali
37 Assunzione di Progresso Finito Tutti i processori virtuali hanno una velocità finita non nulla Questa assunzione è l unica che si può fare sui processori virtuali e sulle loro velocità relative
38 Starvation & Deadlock Esistono due diverse situazioni che possono invalidare l assunzione di progresso finito starvation: quando un processo rimane in attesa di un evento che pure si verifica infinite volte un sistema di processi che garantisce contro questa evenienza si dice che gode della proprietà di fainess deadlock (o stallo): quando due o più processi rimangono in attesa di eventi che non potranno mai verificarsi a causa di condizioni cicliche nel possesso e nella richiesta di risorse esempio classico: un processo P a possiede una risorsa R 1 e richiede una risorsa R 2 già posseduta da un altro processo P b ; quest ultimo a sua volta richiede l uso di R 1
39 Interazione tra Processi Concorrenti Due processi possono essere: disgiunti interagenti competizione: due o più processi chiedono l uso di una risorsa comune riusabile e di molteplicità finita cooperazione: due o più processi cooperano per raggiungere un obiettivo comune
40 Competizione La competizione occorre ogni qualvolta che c è una risorsa riusabile condivisa e di molteplicità finita (spesso seriale) incrocio stradale sportellista alle poste stampante dipartimentale rete ethernet In presenza di competizione è necessario gestire i possibili fenomeni di interferenza
41 Caratteristiche Rilevanti dell Esecutore Quale strategia risulta più opportuna per gestire l interferenza dipende largamente dalla tollerabilità degli effetti dalla rilevabilità dei fenomeni di interferenza dalla recuperabilità degli effetti eventualmente cancellando, ripetendo e disfacendo alcune operazioni Ad esempio i DBMS moderni possiedono interi sotto-sistemi unicamente dedicati alla gestione della concorrenza con diverse politiche
42 Strategie per Gestire l Interferenza Conseguenze inaccettabili ad es. incrocio stradale trascurabili applicazioni non critiche rilevabili e controllabili ad es. iteratori rilevabili e recuperabili ad es. rete ethernet Strategie... evitare qls interferenza conservatrici ignorare rilevare ed evitare fail-fast rilevare e ripetere ottimistiche
43 Metodi per la Gestione dell Interferenza immutabilità delle aree di memoria confinamento degli aggiornamenti per flusso di esecuzione per aree di memoria esclusione delle sequenze di interleaving politiche basate sullo stato ottimistiche; try-and-see conservative; check-and-act
44 Programmazione Concorrente ed Architetture degli Elaboratori Architetture più diffuse SMP data-flow, per il calcolo vettoriale cluster Scenario più comune: processi sequenziali debolmente connessi
PROCESSI 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
Modelli di programmazione parallela
Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura [email protected] 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
ACSO Programmazione di Sistema e Concorrente
ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
Principles of Concurrent Programming
Principles of Giuseppe Anastasi [email protected] Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi
Sviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
Formalismi per la descrizione di algoritmi
Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano
ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
I THREAD O PROCESSI LEGGERI Generalità
I THREAD O PROCESSI LEGGERI Generalità Thread: segmento di codice (funzione) Ogni processo ha un proprio SPAZIO DI INDIRIZZAMENTO (area di memoria) Tutti i thread genereti dallo stesso processo condividono
Il linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani ([email protected])
Corso di Informatica di Base
Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere
Linguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)
INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell
Diagrammi a blocchi 1
Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi. Analisi strutturata. Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi. Attraverso
Linguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
Il Software programmabili programma algoritmo
Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia
Introduzione 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
Algoritmi e Linguaggi
Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e
Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie
Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica2014/2015 Algoritmie Diagrammidiflusso Gennaio 2015 - Sergio Marin Vargas Problemi e soluzioni
Sistema Operativo. (hardware e software) della della macchina
Sistema Operativo Senza Sistema Operativo (SO) un computer è solo un macchinario inutile... Il SO rende possibile la gestione, elaborazione e immagazinamento dell informazione. Il Il SO SO è il il software
Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)
Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica
Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A
Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare
Architettura dei Sistemi Operativi Centro Multimediale Montiferru GRAFI DI PRECEDENZE. Cobegin-Coend e Fork-Join
GRAFI DI PRECEDENZE Cobegin-Coend e Fork-Join Un grafo di precedenza è un grafo diretto che non contiene cicli. E composto da un certo numero di nodi, dove ogni nodo rappresenta una attività, per esempio
DISPENSE DI PROGRAMMAZIONE
DISPENSE DI PROGRAMMAZIONE Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte II) I Linguaggi di descrizione degli algoritmi - Notazioni grafiche (parte 1) Il linguaggio dei
L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:
Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti
AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori
AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli
1 Esercizi in pseudocodice
Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semiformale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
Linguaggi di Programmazione
Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni
Università 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
Lez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Sistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli
Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi
Lezione 8 Introduzione agli algoritmi Lezione tratta dal libro: D. Sciuto, G. Buonanno, W. Fornaciari, L. Mari Introduzione ai sistemi informatici Seconda Edizione, McGraw-Hill Capitolo 2: La formalizzazione
LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C
LINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada
in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
COSA SONO I FLOW CHART
COSA SONO LOW CHART flow chart sono schemi che descrivono visivamente come procede l esecuzione di un programma. Essi non sono legati ad uno specifico linguaggio: dato un flow chart, il programmatore può
Le 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
Prof. Rossella Cancelliere
Laboratorio di Informatica e Statistica Chimica Industriale a.a 2004/05 Prof. Rossella Cancelliere Dip. Informatica Univ.Torino C.so Svizzera 185,Torino email:[email protected] tel: 011/670 67 77 Obiettivi
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
INTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
Scrivere 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
Programmazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato [email protected] www.cs.unicam.it/massimo.callisto LEZIONE
Architettura di Von Neumann
Architettura di Von Neumann L architettura è ancora quella classica sviluppata da Von Neumann nel 1947. L architettura di Von Neumann riflette le funzionalità richieste da un elaboratore: memorizzare i
La mutua esclusione (dai sistemi concorrenti ai sistemi distribuiti) mutua esclusione
La (dai sistemi concorrenti ai sistemi distribuiti) Mutua esclusione e sistemi concorrenti La nasce nei sistemi concorrenti abbiamo n processi che vogliono accedere ad una risorsa condivisa ogni processo
Introduzione al Multithreading
Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui
Diagrammi a blocchi 1
Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi." Analisi strutturata." Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi." Attraverso
Modelli 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
DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione
DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di
Algoritmi. Pagina 1 di 5
Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale
LA METAFORA DELL UFFICIO
LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome
Sistemi 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
PROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema
Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina
Concetti Introduttivi. Il Computer
Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta
Il calcolatore. Architettura di un calcolatore (Hardware)
Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti
I 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
INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione
Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione elaborazione
Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire efficientemente l'elaboratore e le sue periferiche,
Correttezza (prima parte)
Fondamenti di informatica Oggetti e Java (prima parte) Capitolo 16 ottobre 2015 1 Contenuti Introduzione alla correttezza dei programmi specifica di un programma correttezza di un programma verifica di
1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione
1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione su un sistema con una sola CPU? 2. Qual è la differenza tra un interruzione e una trap? Si faccia qualche esempio. 1.
A.A sull insegnamento Architettura degli Elaboratori e Sistemi Operativi (B)
Principali informazioni A.A. 2017-2018 sull insegnamento Titolo insegnamento Architettura degli Elaboratori e Sistemi Operativi (B) Corso di studio Informatica Crediti formativi 9 (7 + 2) Denominazione
Algoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati
TEORIA DEI SISTEMI OPERATIVI Sistemi monoprogrammatie multiprogrammati 1 STRUTTURA DEL SISTEMA OPERATIVO UTENTE La struttura di un sistema operativo è di tipo gerarchico: i programmi che lo compongono
