Process synchronization

Slides:



Advertisements
Presentazioni simili
Process synchronization
Advertisements

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 8 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Process synchronization
PROGRAMMAZIONE: linguaggi
Algoritmi e linguaggi di programmazione
Massimo Comun Divisore
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 13 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
Algoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Strutture di controllo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 22 Marzo 2016.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 15 Giugno.
Unità di apprendimento 6 Dal problema al programma.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1 Marco D. Santambrogio – Ver. aggiornata al 23 Settembre 2016.
INFORMATICA ALGORITMI, PROGRAMMI, E LINGUAGGI DI PROGRAMMAZIONE.
Process synchronization
Process synchronization
Coding unplugged e con il PC nella scuola primaria
Analisi del problema Realizzare la classifica dei primi tre può essere ricondotto al problema di calcolare il max di una sequenza di valori. Algoritmo:
Algoritmi e basi del C Struttura di un programma
Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 4/25/2018 Un’introduzione alla scienza e alle tecnologie dell’informazione.
MASSIMO COMUNE DENOMINATORE (M.C.D)
Process synchronization
IL CONCETTO DI ALGORITMO
Array n-dimensionali e tipi di dati strutturati
Array n-dimensionali e tipi di dati strutturati
Unità di apprendimento 7
Forme per rappresentare l’algoritmo:
Process synchronization
Recap su: array e puntatori
Process synchronization
PON Docente: Maura Roberta Orlando I.C. Zingarelli, Bari
PON Docente: Maura Roberta Orlando I.C. Zingarelli, Bari
Disegno con il piano cartesiano
IL CONCETTO DI ALGORITMO
Programmare.
START ALGORITMO PER L’ACCENSIONE DEL CELLULARE ACCENDI CELLULARE
Dall’analisi del problema alla definizione dell’algoritmo
Scrivere programmi corretti
Process synchronization
PROBLEMA: DATI DUE NUMERI, SCRIVERLI IN ORDINE CRESCENTE.
Process synchronization
Process synchronization
* 07/16/96 Sez. 2: Ordinamento La consultazione di banche dati è sempre più cruciale in tutte le applicazioni dell’Informatica. Se vogliamo consultare.
Process synchronization
Programmazione e Laboratorio di Programmazione
Process synchronization
Array n-dimensionali e tipi di dati strutturati
Programmazione e Laboratorio di Programmazione
Process synchronization
Criteri Metodologici di base 2
Process synchronization
Ricerca 01/08/2019 package.
Algoritmi.
Process synchronization
Process synchronization
Transcript della presentazione:

Process synchronization Operating System Algoritmi e basi del C Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 6 Marzo 2016 © 2005 William Fornaciari

Obiettivi Algoritmi Una prima introduzione al C Pseudocodice Diagramma di flusso Una prima introduzione al C Un primo programma Tipi di dato Strutture di controllo

Algoritmi

Algortimo e Programma Algoritmo Programma 07/09/2018 Algoritmo Descrizione della soluzione di problema scritta in modo da poter essere eseguita da un esecutore (eventualmente diverso dall’autore dell’algoritmo) Sequenza di istruzioni che operano su dati. Programma Algoritmo scritto in modo da poter essere eseguito da un calcolatore (esecutore automatico) 4 Introduzione ai sistemi informatici

Come realizzare un algoritmo Parte 0/4: La brutta notizia! how to solve it di Poyla G. - http://math.hawaii.edu/home/pdf/putnam/PolyaHowToSolveIt.pdf

Come realizzare un algoritmo Parte 1/4: Capire il problema Quale e’ il problema generale che si scerca di risolvere?

Come realizzare un algoritmo Parte 2/4: Fare/creare un piano Ci possono essere diverse strategie per risolvere lo stesso problema Ipotizzare e verificare Cercare dei pattern Risolvere problemi più piccoli Disegnare uno schema

Come realizzare un algoritmo Parte 3/4: Portare avanti il piano Mettere in azione il vostro piano! Rimanere sul piano deciso a meno che non vi siano evidenti motivi per credere che esso non funzionerà più La pazienza è il vostro miglior alleato

Come realizzare un algoritmo Parte 4/4: Ragionare e comprendere Comprendere quello che si è fatto e dove l’algoritmo individuato possa essere applicato al meglio La pratica è fondamentale!

Testare il proprio lavoro!!! Se vi è qualche cosa che non funziona nel vostro programma/algoritmo, gli utenti lo troveranno!

Acquisto DVD Novita’ Novita’ Azione Dove lo cerco? In quale settore? … Indicatori di settore Novita’ Novita’ Azione … Dove lo cerco? In quale settore? Trovato il settore, come trovo il mio DVD? Ordine alfabetico

Alogoritmo per l’acquisto DVD Acquisisci il nome del settore (s) del DVD (d) Vai al settore (s) Cerca (t) Prendi il DVD (d) Acquisisci e Cerca sono anche loro algoritmi

CERCA: contesto e problema Sei nel settore (s) corretto Nel settore sono presenti diversi DVD Il settore puo’ essere visto come un insieme di DVD: s={d0, d1, …, dn} Problema Devo trovare il DVD (dt) tra tutti i DVD presenti nel settore (s) Aiuto: il settore e’ ordinato I DVD sono ordinati alfabeticamente

Algoritmo CERCA Noti Ci sono DVD? s={d0, d1, …, dn}, ord. alfabeticamente DVD cercato = dt Ci sono DVD? Allora Leggo il titolo del primo DVD in s Se il titolo e’ il titolo cercato Allora concludo la ricerca con successo Altrimenti passo al DVD successivo Altrimenti concludo la ricerca con esito negativo

CERCA: osservazioni Cosa succede se il settore e’ vuoto? Come funziona la mia ricerca? Se in s vi sono 10000 DVD e io cerco Zorro? Scenario ancora peggiore Voglio cercare il numero del mio professore di IEIM (Santambrogio) nella rubrica telefonica di Milano.. Esistono diversi modi per risolvere un problema

CERCA… migliorata Noti Ci sono DVD? s={d0, d1, …, dn}, ord. alfabeticamente DVD cercato = dt Ci sono DVD? Allora Leggo il titolo del DVD (dx) nel mezzo di s Se il titolo di dx e’ il titolo cercato Allora concludo la ricerca con successo Altrimenti se dx < dt allora ricomincio da 1 considerando la meta’ superiore di s Altrimenti ricomincio da 1 considerando la meta’ inferiore di s Altrimenti concludo la ricerca con esito negativo

Graficamente: Noti dt s={d0, d1, …, d11} d0 d1 d2 d3 d4 d5 d6 d7 d8 d9

Leggo dx e lo confronto con dt = ? dx=d6 NO d6 dt <

Ricomincio sulla meta’ superiore d6 d7 d8 d9 d10 d11 dt dx=d9

Leggo dx e lo confronto con dt = ? dx=d9 Termino con successo la mia ricerca comprando d9 d9 SI

Come si specifica un algoritmo? Utilizzando dello pseudocodice Utilizzando dei diagrammi di flusso (aka schemi a blocchi) Se A > B allora B = A altrimenti A = B Inizio Fine Assegnamento Leggi Test Scrivi

Massimo Comune Divisore Definizione Dicesi Massimo Comune Divisore (M.C.D.) il piu’ grande tra i divisori comuni a due o piu’ numeri Esempi Dati A=12, B=15 Divisori comuni: 1, 3 - MCD=3 Dati A=10, B=30 e C=20 Divisori comuni: 1, 2, 5, 10 - MCD=10

MCD: pseudocodice Leggi A e B min= il minimo tra A e B tmp = 1 MCD = 1 Finche’ tmp < min tmp = tmp + 1 Se tmp divide A e B Allora MCD = tmp Stampa MCD

MCD: diagramma di flusso Leggi A e B Inizio min=minimo{A,B} tmp=1 MCD=1 no tmp<min? Stampa MCD si tmp = tmp + 1 Fine no tmp divide A e B si MCD = tmp

Fonti per lo studio + Credits how to solve it, Poyla G http://math.hawaii.edu/home/pdf/putnam/PolyaHowToSolveIt.pdf Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill Capitolo 3 Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill Capitolo 3, 4 The Art & Craft of Computing, S. Ceri, D. Mandrioli, L. Sbattella, Addison-Wesley