La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Process synchronization

Presentazioni simili


Presentazione sul tema: "Process synchronization"— Transcript della presentazione:

1 Process synchronization
Operating System Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 4 Ottobre 2013 © 2005 William Fornaciari

2 What it’s all about!

3 What it’s all about!

4 What it’s all about!

5 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

6 Algoritmi

7 Algortimo e Programma Algoritmo Programma
27/03/2017 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) 7 Introduzione ai sistemi informatici

8 Come realizzare un algoritmo
Parte 0/4: La brutta notizia! how to solve it di Poyla G. -

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

10 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

11 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

12 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!

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

14 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

15 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

16 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

17 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

18 CERCA: osservazioni Cosa succede se il settore e’ vuoto?
Come funziona la mia ricerca? Se in s vi sono 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

19 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

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

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

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

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

24 Pausa… 5’

25 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

26 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

27 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

28 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

29 Benvenuti nel fantastico mondo del C

30 Il primo programma: ciao mondo

31 Ciao Mondo: stdio.h Come prima cosa, dobbiamo includere le librerie necessarie al funzionamento del nostro programma. La libreria stdio.h Standard Input Output Permette di utilizzare I comandi necessari per richiedere dati o visualizzare dei messaggi.

32 Ciao Mondo: main Tutti i programmi in C contengono un elemento principale: Il main main contiene le istruzioni che verranno eseguite all’avvio del nostro programma

33 Ciao Mondo: main La sequenza di istruzioni che caratterizzano il main sono racchiuse tra parentesi graffe Tale blocco di istruzioni e’ anche noto come corpo Ogni istruzione deve essere seguita da un punto e virgola

34 Ciao Mondo: printf

35 Ciao Mondo: printf Stampa a video il mesaggio “Ciao Mondo!”
printf e’ contenuta in stdio.h Il messaggio da stampare e’ contenuto tra “”

36 Ciao Mondo: printf return e' un comando che ci permette di comunicare con il sistema ospite In questo caso viene utilizzato per comunicare lo stato di terminazione del programma 0 indica una terminazione corretta del nostro programma

37 Problemi di fine giornata…
Scrivere un programma che, letti due numeri, individua quello maggiore Rappresentare in pseudocodice l’agoritmo che, letti 3 numeri, ne calcola il minimo comune multiplo

38 Fonti per lo studio + Credits
how to solve it, Poyla G 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


Scaricare ppt "Process synchronization"

Presentazioni simili


Annunci Google