di i - Università degli studi di Pavia
Transcript
di i - Università degli studi di Pavia
Informatica • Scienza dell'elaborazione e della trasmissione automatica di informazioni mediante calcolatore elettronico. • Un sistema informatico è invece un insieme costituito da uno o più calcolatori e dai programmi di funzionamento e di applicazione. applicazione 5 L’informatica è ovunque • I calcolatori hanno applicazioni in moltissimi aspetti della vita ita quotidiana q otidiana e della società moderna. moderna Alcuni Alc ni esempi: la gestione della telefonia, il telefono cellulare, il motore di un’auto e qquello di un’aereoplano, p i ggiochi elettronici, il cinema (montaggio, effetti speciali), un forno a microonde, la produzione in serie, la simulazione (veicoli, processi), le banche dati dati, la gestione di documenti e immagini, immagini centrali elettriche ecc. p di computer p destinati a diversi tipi p di • Esistono diversi tipi applicazioni (dai supercomputer per il calcolo scientifico, sistemi multiprocessori, ai palmari, ai personal computer (PC) ai processori dedicati) (PC), dedicati). • Il primo PC è stato prodotto dalla IBM ed è apparso nel 1982, con un pprocessore Intel 8088. 6 Informatica biomedica • Informatica, intesa come scienza del trattamento delle informazioni, applicata all’ambito delle scienze biologiche e della medicina. • Afferiscono a questa famiglia di discipline settori specifici p qquali l’intelligenza g artificiale ed i sistemi esperti in campo medico/clinico, la telemedicina, le bioimmagini g e la loro classificazione e tutto ciò che ha a che fare con l’elaborazione di segnali biologici. g 7 Informatica (1) ( ) • Teoria delle procedure algoritmiche, teoria dei linguaggi di programmazione i formali f li per lo l sviluppo il di sistemi i i automatici per la soluzione di classi di problemi • Progettazione P tt i dell’architettura d ll’ hit tt dei d i calcolatori l l t i digitali di it li e dei d i sistemi operativi per ottimizzarne l’uso • Progettazione e realizzazione di sistemi per l’archiviazione, la classificazione ed il reperimento di informazioni in forma digitale. g • Progettazione di strumenti per l’acquisizione e la trasmissione di informazioni digitali, architettura delle reti per la comunicazione tra sistemi 8 Teoria dell dell'informazione informazione • Studia la rappresentazione, pp archiviazione e la trasmissione di informazioni da un punto di vista formale, tralasciando il contenuto • Informazione: ciò che consente acquisizione di conoscenza, riduzione dell’incertezza • Il sapere se un certo numero è pari o dispari consente di ridurre l’incertezza del 50% (due possibilità) ibili à) che h ho h a priori i i sull numero. • La teoria dell'informazione considera una misura t i che tecnica, h puòò essere associata i t alla ll sequenza di simboli di un messaggio 9 Teoria dell’informazione (1) ( ) • Dato un alfabeto composto di n simboli, il contenuto i f informativo i (I) ( ) di ognii simbolo i b l sarà I log 2 (n) • L'unità di misura della quantità di informazione è il bit. • Quindi nel caso dei numeri pari e dispari, la risposta pari e quella ll dispari di i hanno h ciascuna i un contenuto t t informativo i f ti pari a 1 bit • Aumentando le possibili risposte, risposte aumenta il contenuto informativo di ognuna di esse. Il sapere in quale stagione siamo fornisce 2 bit di informazione, essendovi 4 possibili risposte. 10 Teoria dell’informazione (2) ( ) • Se consideriamo i simboli decimali (0…9), il contenuto di i f informazione i di ognuno di loro l sarà di I log 2 (10) 3.3219 bit. • Analogamente A l t se utilizziamo tili i due d cifre if (100 simboli) i b li) avremo I 2 log 2 (10) 6.6439 bit • Una lettera dell dell’alfabeto alfabeto italiano ha un contenuto informativo pari a 4.39 bit ( I log 2 (21) 4.3923 ). Costituisce la soluzione di un pproblema in cui l’incertezza è legata ad una probabilità di indovinare la lettera pari al 4.76% (1/21) • NOTA: Nella teoria dell'informazione si considerano quantità di bit anche decimali. In una rappresentazione bi i possono essere considerati binaria id ti solo l numerii interi i t i di bit. bit 11 Teoria dell’informazione (3) ( ) • In termini frazionari la probabilità che occorra un simbolo in un alfabeto di n simboli è data da P=1/n. La probabilità percentuale sarà 100*P. • Il contenuto informativo di un simbolo che abbia una pprobabilità di occorrenza ppari a P sarà dunque q dato da I=log2(1/P). blu 5 rosse e 2 viola la probabilita • Con 3 palline blu, di occorrenza del viola è data da P=2/10=.2 • Il contenuto informativo di ‘viola’ viola è pari a log2(5)=2.3219 bit 12 Esercizi teoria informazione • Qual’ è il contenuto informativo dell’informazione “siamo nel mese di mar marzo” o” rispetto ai mesi dell’anno? I=log2(12)=3.58 bit • Qual Q l è il contenuto informativo i f i della d ll stessa informazione i f i considerando una qualsiasi data del 2002? • Il numero di date d possibili ibili nell 2002 è di 365 (non ( è un anno bisestile). Marzo ha 31 giorni, dunque la probabilità percentuale che una qualsiasi data cada nel mese di marzo è pari a P*100=31/365*100=8.49%. • Il co contenuto e u o informativo o vo di d una u specifica spec c data d dell’anno de o rispetto alla probabilità che cada nel mese marzo è dunque dato da I=log2(1/P)=3.56 bit 13 Sistemi di numerazione • Sistemi di numerazione posizionali: il valore di una cifra dipende dalla sua posizione all'interno del numero • La base del sistema posizionale determina il nome del sistema ((binario,, ottale,, decimale,, n z m b esadecimale). m= mantissa, mantissa bb=base base (2, (2 8,10,16), 8 10 16) nn=esponente esponente • m 14 Sistema Decimale • Sistema di numerazione decimale o in base10 ogni cifra da 0 a 9 viene moltiplicata per la potenza di 10 corrispondente alla propria posizione partendo da 100 per la cifra meno significativa. 103 2 102 0 101 4 100 5 • 2045=2*103+0*102+4*101+5*100 15 Sistema binario • Notazione binaria: ogni cifra 0 o 1 viene moltiplicata per la potenza di 2 corrispondente alla propria posizione partendo da 20 per la cifra meno significativa. 23 1 22 0 21 1 20 1 • 1011=1*23+0*22+1*21+1*20 • Q Quanti simboli distinti ppossono essere rappresentati con m bit? 2m simboli. Se m=8 allora 28=256 simboli distinti 16 Codifica binaria • Il numero decimale 89 corrisponde alla codifica binaria: 89/2=44 r=1 44/2=22 r=0 22/2=11 r=0 11/2=5 r=1 5/2=2 r=1 2/2=1 r=0 1/2=0 r=1 Il numero binario 1011001 17 Esercizi sistemi di numerazione • Calcolare il valore del numero 1010 in un sistema di numerazione binario N 1 23+1 N=1*2 +1*221=10 10 • Calcolare il valore del numero 775 in un sistema di numerazione ottale N=7*82+7*81+5*80=448+56+5=509 • In un sistema di numerazione esadecimale il numero 1010 vale invece? N=1*163+1*161=4096+16=4112 18 Numeri binari negativi g • Una soluzione è quella di utilizzare il bit più significativo i ifi i per indicare i di il segno. Un byte consente quindi la rappresentazione dei numerii tra –127 127 e +127 127 dove d -127=11111111 +127=01111111 • Un’altra soluzione è qquella di usare una numerazione in complemento a 2 in cui un numero negativo si ottiene complementando ogni bit e sommando d 1 all risultato. i l • (11) 01011 -> 10101 (-11) 19 Numeri razionali • Si considerano anche esponenti negativi: la prima cifra dopo la virgola ha peso 2–1, poi 2–2, ecc. pp • Esistono due rappresentazioni: – Virgola fissa: il numero di cifre (bit) prima e dopo la virgola g è predefinito e constante. 10101.10101=21.65625 1x24+1x22+1x20+1x2-1+1x2-3+1x2-5 – Virgola mobile: ogni numero e’ espresso nella forma N m be 20 Algebra g Booleana • Tratta di operazioni LOGICHE su operandi binari • Basata su un alfabeto di due soli simboli {0,1} o {{True,, False}. } Un alfabeto binario. • Variabili di questo tipo vengono dette variabili booleane • Variabili booleane possono essere elaborate da funzioni booleane che che, a loro volta restituiranno uno dei due valori 0 o 1. • Esistono Ei anche h costantii booleane, b l che h a loro l volta l possono valere 0 o 1 21 Operatori p logici g • Sono operatori p applicabili pp a variabili booleane: • OR, AND, NOT, XOR • Il NOT opera su di una sola variabile variabile. Il risultato è il complemento della variabile in ingresso. • Tavole T l di verità ià NOT 0 1 1 0 OR 0 1 XOR 0 1 0 0 1 0 0 1 1 1 1 AND 0 1 0 0 0 1 0 1 1 1 0 22 Algebra g booleana ((1)) • Qualsiasi funzione booleana puo’ essere costruita con l’uso di NOT, OR, AND, XOR • Un insieme di variabili e/o costanti booleane a cui siano applicati gli operatori logici si dice espressione p booleana o logica g • Una espressione logica rappresenta una funzione logica. logica F a b a b F 0 1 0 0 1 1 1 0 23 Calcolatori elettronici e bit • Un computer è un apparecchio elettronico che manipola due livelli di tensione elettrica, elettrica identificati come alto e basso. • Il livello alto viene considerato un 1 ed il livello basso uno 0. • I calcolatori elettronici utilizzano dunque una logica e un’aritmetica binaria e l’alfabeto impiegato p g dal calcolatore è dunque l’alfabeto binario, i cui simboli sono: {0, 1} • In un calcolatore, calcolatore manipolare (leggere, (leggere elaborare, elaborare scrivere) un livello di tensione vuol dire manipolare un bit di informazione. • Sia Si le l istruzioni i t i i che h i dati d ti in i un calcolatore l l t sono rappresentati in forma binaria 24 Bits and Bytes y • Un computer solitamente manipola in blocco degli insiemi di bit. • La memoria stessa è organizzata a blocchi per cui la minima quantità tità di ddati ti iindirizzabile di i bil è un insieme i i di bit • L’unità di base per la manipolazione di dati è il byte: un insieme di 8 bit • I multipli del byte sono: • Kb: 210 bytes (1 Kilobyte = 1024 byte = 8192 bit) • Mb: 220 bytes (1 Megabyte = 1.048.576 byte) • Gb: Gb 230 bytes b t (1 Gigabyte Gi b t = 1.073.741.824 1 073 741 824 byte) b t ) • Tb: 240 bytes (1 Terabyte = 1.099.511.627.776 byte) 25 Informazione, bit, codifica • • • • • Il calcolatore lavora su insiemi di bit che rappresentano informazioni disparate tra cui numeri, numeri caratteri, caratteri colori ecc. ecc Per poter rappresentare queste informazioni avendo a disposizione solo i bit (ad esempio per rappresentare i simboli dell’alfabeto latino mediante simboli dell’alfabeto dell alfabeto binario) è necessaria una regola di codifica. La codifica è una legge di rappresentazione che assegna in modo univoco ad ogni simbolo di un alfabeto un simbolo o una sequenza di simboli di un secondo alfabeto. Si dice cardinalità di un alfabeto il numero di elementi (simboli) che lo compongono. Ciascun simbolo di un alfabeto con cardinalità maggiore verrà codificato in una stringa di simboli dell’alfabeto con cardinalità minore. i 26 CODICE ASCII American Standard Code for Information Interchange 1 byte (8 bit) per codificare 256 simboli 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 [space] ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 @ A B C D E F G H I J K L M N O P Q R S T U V 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 ` a b c d e f g h i j k l m n o p q r s t u v 23 55 7 87 W 119 w 24 25 26 27 28 29 30 31 56 57 58 59 60 61 62 63 8 9 : ; < = > ? 88 89 90 91 92 93 94 95 X Y Z [ \ ] ^ _ 120 121 122 123 124 125 126 127 x y z { | } ~ ** ** ** ** 27 Calcolatore Hardware Software + E’ una macchina digitale che consente di eseguire delle sequenze di operazioni elementari. E’ una macchina in grado di eseguire programmi memorizzati 28 Hardware di un PC Scheda madre Dispositivi memorizzazione di massa (dischi, CD-ROM,...) Altri dispositivi di Input/Output (tastiera, mouse,monitor, ...) 29 Calcolatori elettronici • • Si tratta di una macchina digitale che esegue sequenze operazioni elementari su dei dati memorizzati. L macchina La hi di Von V Neumann N – Von Neumann (1945) propone un’architettura generale per una macchina digitale ad esecuzione sequenziale e programma memorizzato. – Programma: P sequenza di istruzioni i i i su un supporto di memoria. i – Cambiando il programma si cambia il funzionamento della macchina – Programma residente in memoria in forma binaria. Analogamente la memoria i contiene i i dati d i (gli ( li operandi di per il programma)) anch’essi h’ i in i forma binaria. – La CPU esegue le istruzioni del programma in modo sequenziale usando il Program Counter per sapere quale sia l’istruzione l istruzione successiva. successiva • L’architettura di un calcolatore moderno è molto complessa. La macchina di Von Neumann è un modello semplificato che consente la comprensione del funzionamento di un qualsiasi calcolatore calcolatore. 30 Calcolatore: componenti di base (Macchina di Von Neumann) • Unità centrale di elaborazione (CPU): il cervello del calcolatore Esegue calcolatore. Eseg e calcoli ed operazioni opera ioni e controlla gli altri componenti. Si tratta di un micropocessore che elabora dati in ingresso e produce dati (risultati) in uscita. • Memoria: una memoria è un dispositivo capace di immagazzinare e restituire informazioni, dati (dati e pprogrammi). g ) Esistono diversi tipi p di memoria: ROM,, RAM, cache e dispositivi di memorizzazione di massa. La memoria principale o memoria di sistema è la RAM. • Dispositvi di Input/Output: strumenti rispettivamente per l’inserimento di dati nel calcolatore e per la produzione di un’uscita da parte del calcolatore. • BUS: BUS consente t il trasferimento t f i t di informazioni i f i i binarie bi i (programmi, dati, istruzioni di controllo) tra i vari componenti del calcolatore. (Segnali digitali) 31 Macchina di Von Neumann • • • I diversi dispositivi sono tra g tramite BUS loro collegati sui quali vengono trasmessi dati e comandi. Il sistema è dotato di una memoria statica (ROM) dalla quale vengono letti i comandi necessari all’avvio del sistema. In un PC si chiama BIOS (Basic Input/Output System) Il clock gestisce la temporizzazione e la sincronizzazione. Clock I/O I/O CPU ROM RAM Bus I/O 32 La motherboard Porta parallela Porta seriale Controller floppy Banchi memoria Controller dischi rigidi Processore Connettori pper schede 33 Architettura di un calcolatore • Studiare l’architettura di un calcolatore significa studiarne i componenti hardware: – Conoscerne ogni componente – Conoscere il principi di funzionamento di ogni componente – Conoscere C le l modalità d lità di interazione i t i tra t i componenti ti • CPU: Instruction Registers, Address Registers, Data Registers. • BUS: BUS dei dati, BUS degli indirizzi e BUS di controllo. • Numero di processori e organizzazione delle memorie • Quando si parla di architettura a 16, 32, 64 bit si fa riferimento al numero di bit che il sistema è in grado di trattare in i blocco. bl E’ la l dimensione di i della d ll parola l (word) ( d) gestita dal bus dei dati. 34 Central Processing Unit (CPU) • Fisicamente è realizzata mediante un microprocessore, solitamente caratterizzato da: – linguaggio macchina (un set di istruzioni di base che consentono al software di interagire con la CPU) – Velocità (frequenza del clock) – Dimensione e tipo di memoria cache – Dimensione dei bus – Coprocessore • • • E’ costituita da un insieme di componenti elettronici digitali Elabora dati in forma binaria prelevandoli dai registri e riponendo in altri l i registri i i un risultato i l anch’esso h’ in i forma f binaria. bi i Nella forma più astratta la CPU non fa che: – Leggere gg informazioni (istruzioni ( e/o dati)) dalla memoria (FETCH) ( ) – Interpretare le istruzioni lette (DECODE) – Eseguire le istruzioni lette (EXECUTE) 35 Linguaggio macchina • Un microprocessore esegue istruzioni del proprio ling aggio macchina (assembly linguaggio (assembl language lang age o assembler) • In assembler sono implementati 3 tipi di istruzioni di base: – Aritmetico/logiche: mediante ll’ALU ALU il microprocessore è in grado di esegure operazioni aritmetiche (addizioni, sottrazioni, moltiplicazioni e divisioni) e operazioni logiche di confronto ((uguaglianza, g g , maggiore gg di,, minore di)) – Spostamento: il microprocessore è in grado di spostare dati da una locazione di memoria ad un’altra o tra i registri interni – Decisioni e salto: un microprocessore è in grado di prendere decisioni e di saltare ad un nuovo set di istruzioni basandosi su tale decisione. • Q Qualsiasi l i i operazione i complessa l puòò essere realizzata li t mediante sequenze di queste operazioni elementari. 36 Architettura di una CPU • Bus controllo CPU i n d i r i z z i • Read B U S PC Control unit Write MAR B U S d a t i IR PSW ALU MDR registri • • • • PC (Program Counter) indirizzo della cella di memoria che contiene la prossima istruzione da eseguire. IR (Instruction Register) istruzione che deve essere eseguita. MAR (Memory Address Register) indirizzo della cella a cui accedere (lettura/scrittura) MDR (Memory Data Register) dato letto dalla memoria o che deve essere scritto in memoria PSW (Processor Status Word) informazioni sull’esito sull esito dell dell’ultima ultima istruzione eseguita Registri per la memorizzazione di operandi e del risultato dell’operazione eseguita Esecuzione di una istruzione •La CPU legge dalla memoria l’istruzione puntata dal PC (FETCH) •Determina il tipo di istruzione che deve essere eseguito (DECODE) •Determina D t i indirizzo i di i di eventuali t li dati d ti in i memoria i •Carica gli eventuali dati nei registri •Esecuzione dell’istruzione (solitamente un insieme di passaggi che coinvolgono diversi p interni)) e incremento del PC (EXECUTE) ( ) componenti 37 Legge di Moore • Enunciata nel 1964/65 da Gordon Moore (cofondatore di Intel) si basava basa a ssull’osservazione ll’osser a ione che nei circuiti circ iti integrati il numero di transistor per unità di superficie di silicio raddoppiasse pp ogni g 12 mesi. • Nel corso degli anni il tasso di crescita è rallentato leggermente ma la densità dei transistor è andata raddoppiando dd i d circa i ognii 18 mesi. i Questa Q t è dunque d l’attuale l’ tt l formulazione della legge di Moore: “Il numero di transistor pper unità di superficie p di silicio raddoppia pp ogni g 18 mesi” • Non è una legge matematica strettamente parlando, solo una descrizione di una tendenza (trend) basata su osservazioni i i empiriche. ii h • Si ritiene che il trend possa proseguire fino al 2017 circa. 38 Modello 4004 8008 8080 8086 286 386™ processor 486™ DX processor Pentium® processor Pentium II processor Pentium III p processor Pentium 4 processor Anno Transistors 1971 2,250 1972 2,500 1974 5 000 5,000 1978 29,000 1982 120,000 1985 275,000 1989 1,180,000 1993 3,100,000 1997 7,500,000 1999 24,000,000 2000 42,000,000 Freq. Cloc 2 Mh Mhz 5 MHz 6 MHz 16 MHz 25 MHz 60 MHz 233 MHz 450 MHz 1.5 GHz Tratto da: http://www.intel.com/research/silicon/ mooreslaw.htm Bioingegneria Elettronica e Informatica 2010/2011 39 Memoria principale p p • La memoria principale è chiamata RAM (Random Access Memory: tempo di accesso indipendente dalla posizione del dato) • La CPU accede direttamente alla memoria pprincipale p per p leggere gg e scrivere dati e istruzioni. • Le istruzioni di un programma possono essere eseguite dalla CPU solo se sono presenti in RAM • I dati memorizzati vengono persi al momento dello spegnimento del calcolatore 40 Accesso alla memoria • Durante l’esecuzione del programma la CPU legge le istruzioni e scambia dati e altre informazioni con la memoria i principale i i l attraverso tt il bus b • La memoria principale è vista dalla CPU come un vettore elementi detti celle di memoria, memoria ognuna delle quali è in grado di memorizzare una parola di memoria. • Ogni cella di memoria è caratterizzata da – Un indirizzo ovvero l’indice, il numero, che identifica la cella – Un valore ovvero il contenuto, il dato binario memorizzato nella cella • L’accesso da parte della CPU all’informazione (istruzione o operando) residente nella i-esima cella avviene scrivendone i d l’indirizzo l’i di i sull bus b degli d l indirizzi d e leggendone l d il contenuto mediante il bus dei dati. 41 Memoria - indirizzamento • In un’architettura che impieghi n bit rappresentare un indirizzo, i di i il numero delle d ll celle ll indirizzabili i di i bili dalla CPU è 2n ed è detto spazio di indirizzamento. • L’indirizzo L’i di i di una cella ll in i uno spazio i di indirizzamento di 2n celle è una configurazione binaria di n bit; la dimensione dello spazio di indirizzamento di una CPU è uno dei parametri che ne caratterizza ll’architettura architettura • Ogni cella è solitamente composta da 8 bit (un byte); in questo caso si dice che la memoria è organizzata in byte; il byte è quindi la più piccola qquantità di memoria indirizzabile. 42 Memorie • In ogni sistema informatico esistono diversi tipi di memorie. i Si distinguono di i per – Capacità: quantità di dati che può memorizzare – Volatilità: V l ili à durata d della d ll memorizzazione. i i – Tempo di accesso • L Le memorie i volatili l tili perdono d l’informazione l’i f i all momento dello spegnimento della macchina, hanno una capacità minore. minore • Le memorie non volatili sono piu lente, hanno capacita maggiore e hanno un costo per unità di memorizzazione minore. 43 Memorie nel sistema • In tutto esistono 5 tipi di memorie: – REGISTRI Solo poche decine di byte, sono il tipo più rapido, interno alla CPU – ROM Read Only Memory. Contiene le informazioni di base per l’inizializzazione del sistema. – CACHE: CACHE IInterposta t t tra t CPU e RAM ha h capacità ità di alcune l centinaia ti i di Kb. Consente un accesso ai dati più rapido della RAM. – RAM memoria p principale, p di lavoro, alcuni ((1-4)) GB, tempo p di accesso indipendente dalla posizione del dato – Memorie di massa. Dischi, tape, CD-ROM, CD-RW. Memorie ad accesso sequenziale o comunque dipendente dalla posizione del dato dato. Diversi GB 44 Memorie: suddivisione funzionale • Memoria interna (registri e cache) – Memorizzano temporaneamente i dati e le istruzioni; – Tempi di accesso di alcuni ns • Memoria principale (RAM) – Memorizza dati e istruzioni per i programmi in esecuzione – La L CPU vii accede d direttamente; di tt t tempi t i di accesso di ~10 10 ns • Memoria secondaria (di massa) – memorie in linea (es (es. dischi magnetici); tempi di accesso di alcuni ms – memorie fuori linea (es. nastri magnetici); tempi di accesso di alcuni s 45 Disco Magnetico g Uno strato magnetizzabile ricopre entrambe i lati di una base in alluminio. U ttestina Una ti di lettura/scrittura sopra e sotto ogni faccia che si posiziona sul cilindro richiesto. 46 Dischi magnetici g • • • • • • • • • Ogni disco (piatto) ha due superfici (facce) Ogni faccia è suddivisa in tracce concentriche Ogni traccia è suddivisa in settori durante la formattazione Un cilindro è un insieme di tracce sui diversi piatti Un settore è l’unità logica di memorizzazione. Si può accedere (lettura o scrittura) solo ad un intero settore: trasferimento a blocchi Se la quantità di dati supera la capacità del blocco (settore, solitamente 512 bbyte), ) il file fil system deve d spezzare il file fil e tenere traccia i dei d i blocchi usati per poter concatenare il contenuto. Ogni settore ha un proprio indirizzo dato dalla terna cilindro, traccia, settore. tt Tempo medio di accesso ai dati <10 ms Velocità di rotazione: 1200-9600 rpm – Capacità C ità di memorizazione: i i 100 Gb Gbyte t - 2 Tbyte Tb t – Velocità di trasferimento: 10 Mbyte/s - 120 Mbyte/s 47 Nastri magnetici g • Il materiale magnetizzabile è disposto su un nastro in materiale plastico. Bobine, DAT ecc. • Memorizzazione a blocchi • Accesso sequenziale • Trovano impiego come dispositivi di backup o archiviazione 48 Struttura gerarchica g • La memoria deve essere progettata e gestita in modo d dda ottenere: – capacità di memorizzazione adeguata – prestazioni i i accettabili bili – costi ridotti • La L soluzione l i ottimale tti l comporta t la l – minimizzazione dei costi – massimizzazione i i i della d ll capacità ità di memoria i – minimizzazione dei tempi di accesso ai dati • Soluzione Sol ione approssimata: gerarchia 49 Gerarchia di memorie • Disponendo di due memorie (es: M1 e M2) con diverse tecnologie e costi per cui – Una (M1) è più rapida ma più cara e di dimensioni ridotte – L’altra (M2) è meno costosa e con maggiore capacità ma più lenta • Il sistema gestirà la memoria di modo che i dati utilizzati più raramente siano posti in memorie con tempi di accesso più elevato (M2), mentre i dati utilizzati più frequentemente in memorie con tempi di accesso più brevi (M1). 50 Gerarchia di memorie (1) ( ) CPU Cache L1 Cache L2 [KB] Memoria P i i l Principale (RAM) [MB] Memoria Secondaria (memoria di massa) [GB] 51 Dispositivi di memoria Tempo accesso Capacità Durata memoriz. Registri ns KB Volatile Cache ~10 ns 256 KB – 4 Mb Volatile Memoria principale (RAM) ~50 ns 2-4 GB Volatile Dischi magnetici ~10 ms 100 GB – 2TB Elevata Dischi ottici ~100 100 ms 100/1000 GB Elevata CD-RW 700 MB Elevata DVD 4.5-16 GB Elevata 52 Input/Output • Input: dispositivi che consentono di introdurre dei dati (anche programmi) nel calcolatore – tastiere, mouse, microfono, joystick, convertitore A/D, telecamera, CD-ROM • Output: dispositivi che consentono di produrre un risultato in uscita. – stampanti, p monitor, convertitore D/A, pplotter, altoparlanti • Input/Output: p p – dischi, CD-RW, InfraRosso (IR), RS-232 (Porta seriale) 53 Periferifche di I/O • A blocchi: lavorano su un blocco di byte alla volta. – Blocco da 512 byte a 64K – Ogni blocco può essere letto e scritto indipendentemente dagli altri. – Ogni blocco è identificato da un indirizzo – Dischi, nastri, CD-ROM e DVD • A carattere: operano su un carattere alla volta. – Un dispositivo p a carattere non è indirizzabile e non ha alcuna primitiva di posizionamento (seek) – Tastiera, mouse, porte seriali 54 Guida all’acquisto q • Complessivamente Complessivamente, sulla base di quali parametri valutare un calcolatore per, ad esempio, fare un acquisto? – SCHEDA MADRE: socket adatto al p processore scelto – PROCESSORE: Attualmente Core Duo – Six Core (da 1 GHz a 2.4 Ghz) da 128 Kb – 2 Mb di cache, processori multi-core – RAM: RAM capacità ità (da (d 256Mb – 4 Gb) e ffrequenza (133 (133-800MHz) 800MH ) – DISCHI: comunemente da 100 Gb a 2 Tb accesso da 9 a 11 ms – SCHEDA VIDEO: Tecnologia AGP (Accelerated Graphics Port), Memoria (4-32 Mb) e risoluzione - frequenza (1024x768x16.7M di colori a 85Hz) – CD-DVD CD DVD CD llettura tt dda 24 a 50 50x; DVD llettura tt dda 5 a 10 10x 55 Sistema Operativo p • Quel particolare programma che si pone come interfaccia tra utente e calcolatore • Quel software che rende l’hardware utilizzabile • Il sistema operativo p comanda e controlla tutte le risorse del calcolatore, gestisce la loro allocazione alle applicazioni • Fa quindi da tramite tra hardware ed il software applicativo. applicativo • Alcuni esempi di SO: MS-DOS, WINDOWS 95/98/NT/XP, UNIX, MAC OS NOTA N NOTA: Non tuttii i computer hhanno un sistema i operativo. i I microprocessori dedicati (quello che gestisce il forno a microonde o la temporizzazione di un motore a scoppio ad es.) eseguono sempre uno stesso programma e non necessitano di un sistema operativo. 56 Sistema Operativo p ((1)) • Il Sistema Operativo ha due funzioni principali: – gestisce le risorse hardware e software del sistema di elaborazione (CPU, memoria, periferiche, spazio su disco). – fornisce ai programmi applicativi gli strumenti per interagire con le risorse hardware del sistema. (Fornisce un sistema stabile e consistente, uniforme per interfacciare le applicazioni con i dispositivi, dispositivi anche nuovi, nuovi del sistema) – Gestisce la comunicazione tra i vari sottosistemi hardware • Uno stesso SO può essere implementato su sistemi di architettura diversa fornendo così la stessa interfaccia utente. – UNIX (su architetture Alpha, Sun, IBM…) – WINDOWS NT ((su architetture Intel e Alpha) p ) Applicazioni li i i Sistema Operativo Assembler Hardware 57 Sistema Operativo p ((2)) • Il SO presenta all’utente ed ai programmi applicativi delle risorse virtuali i t li che si presentano in modo uniforme, niforme indipendentemente dalle risorse reali a cui corrispondono. Il SO assicura la corrispondenza p tra le risorse reali e qquelle virtuali. • Utente e programmi applicativi non necessitano di conoscere il dettaglio d tt li delle d ll risorse i reali. li Essi E i sii interfacciano solo con le risorse virtuali, più semplici da usare. • I SO possono essere classificati in termini della modalità di gestione delle risorse in: – M Monoprogrammazione i – Multiprogrammazione (multitasking e time sharing) – Multielaborazione 58 Monoprogrammazione p g • Detti sistemi batch monoprogrammati, anni ’50 e ‘60 • Si tratta del modo più semplice di gestire le risorse del computer. Il SO MS-DOS è monoprogrammato. • Un solo programma alla volta è in esecuzione. Questo programma monopolizza la CPU fino al termine delle sue operazioni. operazioni • Le risorse del computer, in particolare la CPU, vengono allocate ai diversi programmi in modo sequenziale. sequenziale • Durante le operazioni di input/output (I/O) la CPU è inutilizzata • Le capacità dell’ hardware sono sotto impiegate. 59 Multiprogrammazione p g • Multitasking: Possono essere caricati in memoria più programmi contemporaneamente • Processo: programma in esecuzione (sequenza di istruzioni). • Quando un processo invoca funzioni di I/O la CPU esegue un altro processo. Un processo che non richiede I/O blocca la CPU. CPU • Time sharing: il tempo della CPU viene suddiviso in frazioni,, dette slices e ogni g slice viene allocata ad un processo. • Processi con priorità più elevata riceveranno una slice più f frequentemente d li altri. degli l i • Migliora la gestione delle risorse hardware della macchina. 60 Multielaborazione • Macchine multiprocessori p o più p macchine che cooperano nell’esecuzione dei programmi. • Il sistema operativo diviene estremamente complesso. • E E’ necessario gestire la parallelizzazione ovvero la suddivisione dei compiti tra le varie CPU. • Il S.O. S O ddeve iinoltre l determinare d i quali li partii del d l programma devono essere terminate prima che altre lt vadano d in i esecuzione. i • Sono lo stato dell'arte della tecnologia corrente 61 Il ggestore di memoria • In un SO multiprogrammato con time sharing (Windows): • Il Gestore di Memoria (parte del SO che gestisce la memoria) deve: – tenere traccia i di quali li partii di memoria i sono in i uso e quali li non lo l sono – allocare la memoria ai p processi che la necessitano e deallocarla – gestire lo swapping tra la memoria principale e il disco quando la memoria principale non ha una capacità sufficiente per mantenere tutti i processi (memoria virtuale) – Il compito complessivo è quello di cercare di sfruttare al meglio le diverse tipologie di memoria disponibili nel sistema al fine di minimizzare il tempo di esecuzione dei programmi (sfruttare la gerarchia di memoria). 62 Memoria virtuale • Il meccanismo di gestione della gerarchia di memoria i più iù comunemente impiegato i i è quello ll della Memoria Virtuale • La L memoria i virtuale: i l – rende il programma indipendente dalle dimensioni fisiche della memoria principale (RAM) della macchina – libera il programmatore dalla gestione dello spazio di memoria fisico • Criteri di funzionamento: – allocazione dinamica (la memoria viene attribuita ad un programma solo quando necessario) – spostamento automatico dei dati 63 Memoria virtuale (1) ( ) • Il gestore di memoria tiene nella memoria principale i i l solo l le l partii del d l programma in i uso e lascia il resto del programma sul disco fisso. • Quando Q d un programma ffa riferimento if i add una parte del programma che non è caricata, il gestore di memoria la carica dal disco alla memoria principale, scaricando se necessario altre parti dello stesso o di altri programmi • Esistono diversi meccanismi di gestione della MV (paginazione segmentazione (paginazione, segmentazione, segmentazione con paginazione) 64 File system • Il file system è quella parte di SO che fornisce servizi (alle applicazioni) pp ) pper l’accesso a dati archiviati su dispositivi p di memorizzazione di massa. • E’ l'insieme di algoritmi e strutture dati che realizzano la traduzione tra operazioni logiche sui file e le informazioni memorizzate sui dispositivi fisici (dischi, nastri) • Un file system rappresenta una astrazione unificata e coerente t dei d i dispositivi di iti i fisici. fi i i NTFS, NTFS FAT16, FAT16 FAT32 • Grazie al file system le applicazioni non devono interagire direttamente con i dispositivi p di memorizzazione ((dischi,, CD, DVD, nastri) • Da un punto di vista logico il file system è costituito da files e dalla struttura di directory • Dal punto di vista del software il file system necessita di device drivers, routine di gestione e chiamate di sistema. 65 Sicurezza informatica • In ambito informatico la sicurezza implica: – Segretezza: le informazioni devono poter essere lette solo da persone autorizzate. – Integrità: le informazioni non devono poter essere alterate se non dalle persone autorizzate – Accessibilità: le informazioni devono poter essere rese accessibili alle persone autorizzata – Autenticità: la provenienza delle informazioni deve essere garantita e verificabile • La sicurezza può quindi essere minacciata mediante alterazione, interruzione, intercettazione, distruzione e creazione di dati. 1 VIRUS • Parte indesiderata all’interno di un software • Ha la capacità di moltiplicarsi ed infettare altri programmi • Solitamente piccoli programmi che alterano il funzionamento regolare della macchina, di software o che danneggiano o cancellano files 2 VIRUS (1) • I programmi antivirus forniscono una buona protezione nei confronti del pericolo di infezione, ma solo nei confronti dei virus già conosciuti. • Macro virus: tipicamente nei documenti di Microsoft Word, si propaga ad altri documenti. Si attivano aprendo il documento, tipicamente con la macro autoexec. – Disattivare le macro • E-mail virus: sono contenuti negli allegati alla posta elettronica e vengono attivati aprendo l’allegato. Si propagano mediante la lista degli indirizzi del client di posta elettronica. – Non aprire allegati sospetti o ricevuti da sconosciuti 3 SPYWARE • Sono considerati il maggior rischio informatico per il 2005. • Si tratta di programmi che si installano sul computer e effettuano operazioni nascoste senza il consenso degli utenti. • Le attività tipiche sono il tenere traccia dei tasti premuti, il furto di password, il monitoraggio delle scelte e abitudini di navigazione, l’apertura di finestre pop-up indesiderate, comunicare il vostro indirizzo a server di spamming, ridirigere il browser verso pagine predefinite e trasmettere informazioni a server remoti. • Sono “parenti” dei virus che si installano a partire da siti internet che propongono di scaricare demo, mp3, software ecc. Operazioni che richiedono approvazione. EULA • Una volta in esecuzione sul computer locale spesso non appaiono nella lista dei processi (task manager) e non possono essere rimossi semplicemente con una disinstallazione. Necessitano di apposito software (antispyware) per la rimozione. 4 Algoritmi • Gli algoritmi sono le “ricette logiche” che costituiscono la base dei programmi per il computer. • Algoritmo: la specificazione di un processo di comportamento. Consiste in un numero finito di istruzioni che governano il comportamento passo per passo. • Un qualsiasi insieme di istruzioni che specifichi un procedimento in modo non ambiguo può essere considerato un algoritmo. 5 Ricetta besciamella • • • • • • • Ingredienti Scaldare olio o burro a fuoco lento Aggiungere la farina mescolando cucchiaio legno Aggiungere lentamente il latte caldo, sul fuoco Mescolare fino a che sobbolle Fare cuocere un quarto d’ora mescolando Aggiungere sale e noce moscata 6 Algoritmi informatici • Una caratteristica costante degli algoritmi informatici è che questi coinvolgono inevitabilmente la manipolazione di dati. • Ogni algoritmo informatico riceve dei dati in ingresso, elabora tali dati seguendo l’insieme di istruzioni che specificano il procedimento, e produce un’uscita. Dati in ingresso Elaborazione Dati in uscita 7 Proprietà di un algoritmo • Precisione, semplicità e livelli di astrazione. • Un algoritmo deve essere preciso, non può consentire dubbi di interpretazione • Ogni passo di un algoritmo deve essere semplice, elementare • Il concetto di semplicità è un concetto vago e deve essere considerato relativamente al livello di astrazione appropriato 8 Livello di astrazione • Il livello di dettaglio con cui devono essere formulate le istruzioni dell’algoritmo avrà dunque un livello di astrazione dipendente dalle conoscenze dell’esecutore dell’algoritmo stesso. • Un algoritmo ben progettato sarà organizzato in termini di diversi livelli di astrazione: le istruzioni elementari che costituiscono l’algoritmo per l’esecuzione dei singoli passi sono nascoste in moduli (funzioni o procedure). • Ogni modulo sarà a sua volta un algoritmo. • I moduli consentono di lavorare ad alto livello, ignorando i dettagli ma organizzandoli in moduli cui si possa fare riferimento per nome 9 Altre proprietà • finitezza: composto da un numero finito di passi elementari; le operazioni sono eseguite un numero finito di volte (evitare cicli infiniti) • non ambiguità: i risultati non variano in funzione dell’esecutore dell’algoritmo (deterministico) • realizzabilità: deve essere eseguibile con le risorse a disposizione 10 Rappresentazione algoritmi • La rappresentazione spesso considerata più efficace è quella mediante diagrammi di flusso o flow chart • Consente la rappresentazione grafica dei passi elementari e fornisce una visione complessiva del procedimento • Considera quattro operazioni di base: – – – – Input/output Elaborazione Decisione Start/stop 11 Simboli convenzionali dei flow chart ingresso/uscita inizializzazione documento elaborazione inizio/fine input manuale elab. predefinita connessioni disco decisione mem. sequenziale 12 Controllo di flusso • If-then-else I • While-do I O O 13 Algoritmi e computer • Se desideriamo che un computer possa eseguire un algoritmo, è necessario che l’algoritmo sia espresso in termini binari. • Le persone ragionano in termini di idee e significati, come oltrepassare la distanza tra il livello al quale si esprimono gli uomini ed il livello al quale funzionano i computer? • Per facilitare l’uso e la programmazione dei computer sono stati introdotti diversi “livelli di astrazione” cui corrispondono diversi livelli di dettaglio riguardo al come viene realizzato un determinato compito. 14 Livelli di astrazione nel computer • Utente: l’utente interagisce con un software applicativo, non è interessato a conoscere il funzionamento dell’algoritmo sottostante. • Algoritmico: l’implementazione di un algoritmo in un certo linguaggio di programmazione; è il codice del programma. • Traduzione: l’azione di un particolare software detto compilatore o interprete che traduce il codice del programmatore in una forma comprensibile dal computer • Hardware: manipola le informazioni binarie per produrre un’uscita sulla base degli ingressi forniti. 15 Algoritmi e programmi • L’algoritmo è dunque l’insieme di passaggi logici, indipendentemente dall’espressione in un qualsiasi linguaggio di programmazione. • Un programma è invece una espressione di un algoritmo in un particolare linguaggio di programmazione • Ad un algoritmo possono dunque corrispondere più programmi in linguaggi differenti o che adottano diverse istruzioni per espletare il compito espresso da uno stesso algoritmo. 16 Algoritmi e dati • Il concetto di dati è indissolubilmente legato a quello di algoritmo • Un computer non fa altro che manipolare dati in forma binaria un algoritmo informatico non potrà fare altro che manipolare dati • All’interno di un computer ogni informazione è rappresentata sotto forma di dati. • L’informazione rappresenta direttamente la conoscenza, i dati sono una rappresentazione specifica di un’informazione 17 Flow chart pari/dispari Begin Dato un numero (N) in ingresso, determinare se è pari o dispari N Si N mod 2=0? N è pari No N è dispari End 18 Flow chart divisori Begin Dato un numero N, trovare l’insieme dei suoi divisori interi N i=1; Div=[] i<=N No Si N mod i=0? Si Aggiungi i a Div No i=i+1 End 19 Flow chart numeri primi Begin Dato un numero N in ingresso, determinare se N e’ un numero primo N i=2 No i<N No i=i+1 Si N mod i=0? N primo Si N non primo End 20 Il minimo di un vettore Begin vett Richiedo un vettore in ingresso Inizializzo il contatore i=2 e la variabile minimo al primo elemento del vettore i=2; min=vett(1) i<=lun(vett) No min Dato un vettore di numeri trovarne l’elemento più piccolo Si vett(i) < min ? Si min=vett(i) No i=i+1 End 21 Segnali • Il termine segnale fa riferimento ad una grandezza che contiene informazione riguardo ad un sistema fisico. • Indipendentemente dalla natura e dalla rappresentazione del segnale l’informazione è contenuta nelle variazioni della grandezza rappresentata, rispetto ad un dominio appropriato (tipicamente spazio o tempo) 22 Segnali biologici • La definizione di un segnale biologico recita: un segnale biologico è una registrazione temporale o spaziale di un evento biologico. (Un battito cardiaco o la contrazione di un muscolo). • L’attività elettrica, chimica e meccanica che ha luogo durante l’evento spesso produce segnali che possono essere registrati, misurati ed analizzati fornendo così informazioni sui meccanismi fisiologici che hanno dato origine all’evento osservato. 23 Segnali di natura elettrica • Cellule nervose e muscolari generano segnali di tipo elettrico come risultato di cambiamenti elettrochimici inter- e intra- cellulari. • Quando un nervo o un muscolo vengono eccitati da uno stimolo di ampiezza sufficiente ad oltrepassare una certa soglia, la cellula produce un potenziale di azione: un flusso di ioni attraverso la membrana cellulare. • Il potenziale d’azione di una cellula eccitata può trasmettersi alle cellule adiacenti. 24 Potenziali d’azione • L’insieme di potenziali d’azione prodotti dalle cellule eccitate da luogo ad un campo elettrico, che si propaga attraverso il tessuto biologico. • Le differenze di potenziale nel campo generato possono essere misurate con elettrodi di superficie all’esterno dell’organo o dell’organismo. • L’elettrocardiogramma (ECG), elettroencefalogramma (EEG) e l’elettromiografia (EMG) sono esempi di segnali biologici che sfruttano questi principi. 25 Mondo reale • Nel mondo reale, la maggior parte di segnali sono definiti per ogni istante di tempo, qualsiasi sia il livello di dettaglio richiesto è sempre possibile attribuire un valore alla quantità osservata. Si tratta di una quantità CONTINUA nel tempo. (Una tensione, un flusso, una posizione). • Il segnale continuo y=f(t) è dunque definito per - <t< • Allo stesso modo, se consideriamo l’insieme dei valori assunti da una grandezza continua, una tensione elettrica ad esempio mentre varia tra due valori (-1V ed 1V), si tratta di un insieme di cardinalità infinita. Una tensione sinusoidale che oscilla tra -1 ed 1 V assume tutti i valori compresi nell’intervallo [-1,1]: un numero infinito di valori. 26 Rappresentazione • Volendo rappresentare una grandezza del mondo reale (la ns tensione tra –1 e 1 v) su un calcolatore, siamo obbligati a passare dal mondo delle grandezze continue a quello delle grandezze discrete: il calcolatore consente un livello di dettaglio limitato, finito. • La precisione della rappresentazione numerica su di un calcolatore è solitamente di 16/18 cifre decimali. Non è possibile avere ulteriore dettaglio: la cifra 0.0000000000000000012 è identica alla cifra 0.0000000000000000014, entrambe sono rappresentate con 0.000000000000000001 27 Discreto • Il calcolatore è dunque un sistema discreto: un sistema che consente la rappresentazione di una grandezza fino ad un certo livello di dettaglio. • La registrazione e la memorizzazione di un segnale continuo può avvenire solo in modo discreto se viene realizzata attraverso un calcolatore. • Un segnale discreto è un segnale definito solo in punti discreti del tempo o dello spazio. • Un segnale y=s(n) è definito n o n N 28 Campionamento • Il campionamento corrisponde al processo di discretizzazione di una variabile continua e si basa sull’idea di rappresentare l’andamento temporale di una grandezza attraverso la rappresentazione dei valori assunti da tale grandezza ad intervalli fissi di tempo. • Effettuando un numero elevato di misure, ovvero riducendo il tempo che intercorre tra due misure successive, è possibile ottenere una rappresentazione del segnale originale con un sufficiente livello di dettaglio. 29 Dal continuo al discreto • Dalla funzione continua y=f(t) con t R e y R • Ad una sua rappresentazione discreta: – v sarà la successione temporale dei valori istantanei assunti da y in corrispondenza degli istanti di campionamento. Tc è l’intervallo tra due istanti di campionamento: il periodo di campionamento. v=f(nTc) con n Z e v R • fc=1/Tc è detta frequenza di campionamento 30 Teorema del campionamento • Definisce quale debba essere la frequenza con cui si realizzano le misure del segnale di partenza affinché sia possibile ricostruirlo senza perdita di informazione. • Questa scelta viene fatta sulla base delle caratteristiche del segnale che si vuole rappresentare. In particolare è necessario conoscere quale sia il contenuto in frequenza del segnale per poter determinare la frequenza di campionamento minima da impiegarsi. • Se la massima frequenza del segnale di partenza è fMAX allora la frequenza di campionamento dovrà essere fc≥ 2fMAX 31 Campionamento di un segnale y=sin(t) T= 2* f=1/(2* )Hz fC=5Hz 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 2 4 6 8 10 12 14 32 Quantizzazione • Se il segnale campionato deve essere rappresentato da un calcolatore, non solo il domino (tempo, spazio) ma anche il codominio (valori) del segnale non potrà essere un insieme continuo. • Sarà necessario quantizzare il segnale definendo i possibili valori che può assumere ed approssimando i campioni aventi valori non previsti mediante arrotondamento. • Dato un segnale per il quale si voglia avere una rappresentazione con una certa precisione (un numero di cifre decimali) bisogna determinare il numero di bit da impiegare nel processo di digitalizzazione del segnale. 33 Quantizzazione • • • Dato un segnale che varia tra due valori minimo (m) e massimo (M) per il quale sia richiesta una precisione P (es: P= 0,02) allora N=log2[(Mm)/P]. Il risultato sarà un numero intero N arrotondato sempre per eccesso. Sinusoide tra –1 e +1 con precisione di due cifre decimali (P=0.01) necessiterà di N=log2((1+1)/10-2)=8 bit 34 Acquisizione del segnale Sensore RC A/D C memo / video SP Parametro osservato • Un sensore (trasduttore) converte la quantità misurata in una grandezza elettrica. • La rete di condizionamento (RC) amplifica e solitamente filtra la grandezza elettrica (continua). • Il convertitore analogico/digitale campiona il segnale ad una determinata frequenza e lo quantizza rappresentandolo con un certo numero di bit. In un computer questo viene realizzato da una scheda di acquisizione. 35 Acquisizione EOG • Determinare il numero di bit da impiegare nel processo di digitalizzazione di un segnale compreso tra –5 e +5 V per ottenere una rappresentazione con un livello di precisione pari ad almeno 0.001 V (1 mV) • Log210/.001=13.28 • Devo dunque impiegare per lo meno 14 bit 36 Sistema Informativo • Componente (sottosistema) di una organizzazione che gestisce (acquisisce, elabora, conserva, produce) le informazioni di interesse. • il sistema informativo esegue/gestisce processi informativi (cioè i processi che coinvolgono informazioni) • Funzioni di un sistema informativo: – raccolta, acquisizione delle informazioni – archiviazione, conservazione delle informazioni – elaborazione delle informazioni – distribuzione, scambio di informazioni 37 Gestione delle informazioni • Nelle attività umane le informazioni vengono gestite (registrate e scambiate) in diverse forme: – idee informali – linguaggio naturale (scritto o parlato, formale o colloquiale, in una lingua o in un’altra) – disegni, grafici, schemi – numeri – codici (anche segreti) • e su vari supporti, dalla memoria umana alla carta 38 Informazione e dati • All’interno di un computer ogni informazione è rappresentata sotto forma di dati. – INFORMAZIONE: elemento che consente di avere conoscenza di fatti, situazioni ecc.; notizia, ragguaglio – DATO: ciò che è conosciuto o accertato; (inform.) elementi di informazione costituiti da simboli che debbono essere elaborati. • I dati sono dunque i fatti elementari, che devono essere interpretati per fornire conoscenza • I dati sono anche direttamente rappresentabili, informazione e conoscenza no. 39 Base di dati (accezione generica) • collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di una organizzazione. (accezione specifica) • collezione di dati gestita da un DBMS 40 Gestione su files • La gestione di insiemi di dati grandi e persistenti è possibile anche attraverso sistemi più semplici — gli ordinari file system dei sistemi operativi • Anche la gestione mediante file system, nei sistemi operativi che lo consentono (UNIX, NT), permette di realizzare rudimentali forme di condivisione. • I file system prevedono forme di condivisione e di gestione della sicurezza permettendo accessi contemporanei in lettura ed esclusivi in scrittura: se è in corso un’operazione di scrittura su un file, altri non possono accedere al file, neanche in lettura. 41 DBMS:Database Management System Sistema (software applicativo) in grado di gestire collezioni di dati che siano (anche): – grandi (di dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati) – persistenti (con un periodo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano) – condivise (utilizzate da diverse applicazioni) garantendo affidabilità (resistenza a malfunzionamenti hardware e software) e privatezza (gestione della sicurezza dei dati). Come ogni applicativo, un DBMS deve essere efficiente (ottimizzare l‘uso delle risorse del sistema) ed efficace (incrementare la produttività dei suoi utilizzatori). 42 DBMS vs FILE SYSTEM • I DBMS estendono le funzionalità dei file system, fornendo più servizi ed in maniera integrata (sono più efficaci). • Nei DBMS, c’è maggiore flessibilità nella la gestione della sicurezza dei dati: più utenti possono accedere contemporaneamente a record diversi di uno stesso file o addirittura allo stesso record (in lettura). • Nei DBMS, esiste una porzione della base di dati (il catalogo o dizionario) che contiene una descrizione centralizzata dei dati, che può essere utilizzata dai vari programmi. 43 Banche dati • Una banca dati permette la memorizzazione compatta ed ordinata di dati ed offre strumenti per accedere ai dati archiviati. • Un database è composto dalla base di dati vera e propria e da un programma per la sua gestione (database manager) • Una base di dati è costituita da più files (o tabelle) che contengono dati affini per argomento ordinati secondo un certo criterio • Ogni tabella è costituita da più record di dati 44 Record ed attributi • Un record rappresenta una voce dell’archivio • A sua volta questa voce sarà costituita da un insieme di attributi o campi • Es.: ogni persona rappresenterà un record della tabella ANAGRAFICA. • Gli attributi della persona possono essere “Nome”, “Cognome”, “Codice fiscale”, “Indirizzo” ecc. 45 Il Modello dei Dati • Il modello fornisce le regole per la costruzione e la manipolazione della rappresentazione • La rappresentazione è un insieme di simboli posti in corrispondenza con la realtà di interesse. • La realtà di interesse è quella parte del mondo reale che si vuole descrivere, così come è percepita da chi costruisce la rappresentazione. • Una componente fondamentale del modello è il meccanismo di strutturazione ovvero ciò che consente la definizione dei legami tra i dati rappresentati e delle regole di coerenza che i dati devono soddisfare. 46 Modello Entità - Relazione • Entità – Sono ciò di cui interessa rappresentare alcuni “fatti”. E’ una classe che rappresenta un insieme di oggetti di cui si individuano proprietà comuni. →TABELLE • Attributi/Domini – Sono i “fatti”, le caratteristiche che si devono descrivere. E’ una corrispondenza tra una entità ed un dominio, che rappresenta un insieme di oggetti rappresentabili tramite un valore. Un attributo assegna una proprietà alla classe (entità o relazione) a cui è associato. →COLONNE • Relazioni – Sono i “fatti” che correlano le Entità. Rappresentano le connessioni logiche tra più Entità →LEGAMI PERSONA (1,N) AUTORE (N,1) ARTICOLO Ogni persona può essere autore di uno o più articoli e ogni articolo ha almeno un autore. 47 RELAZIONI • Il collegamento logico tra le tabelle che rappresentano le entità viene stabilito attraverso le relazioni. • Vengono realizzate mediante tabelle in cui si riporta un attributo identificativo di ogni entità collegata. 48 Sistema Relazionale • Il vantaggio del modello relazionale è dato dalla sua fondamentale semplicità per l’utente. La difficoltà si trasferisce dall’utente all’implementatore che deve prendere la maggior parte delle decisioni in fase di creazione della base di dati. • Un sistema per la gestione di una dase di dati relazionale è detto RDBMS (Relational Data Base Management System). Ogni RDBMS commerciale (Access, Oracle, Sybase, Informix…) impiega un linguaggio per la gestione della base di dati. 49 Elementi di SQL • Creazione di una tabella con campi COGNOME, NOME, NUMERO DI TELEFONO: CREATE TABLE PERSONA (COGNOME CHAR(20), NOME CHAR(20), NUMERO_TELEFONO CHAR(15)); 50 Elementi di SQL • Ricerca di PERSONA: ROSSI MARIO nella tabella SELECT * FROM PERSONA WHERE COGNOME=’ROSSI’ AND NOME=’MARIO’; • Inserimento di BIANCHI PAOLO nella tabella PERSONA: INSERT INTO PERSONA VALUES (‘BIANCHI’, ’PAOLO’, ’0382/548677’); 51 Elementi di SQL • Oppure, tralasciando il numero di telefono INSERT INTO PERSONA (COGNOME, NOME) VALUES (‘BIANCHI’, ’PAOLO’); • Inserire in una tabella NOMINATIVI il nome ed il cognome dell’insieme delle persone registrate nella tabella PERSONA INSERT INTO NOMINATIVI (COGNOME, NOME) SELECT COGNOME, NOME FROM PERSONA; 52 Elementi di SQL • Modificare i dati inseriti cambiando BIANCHI in BANCHI: UPDATE PERSONA SET COGNOME=‘BANCHI’ WHERE COGNOME=‘BIANCHI’ 53 INTERNET • INTERconnected NETworks • Nasce all’inizio degli anni settanta una rete di collegamento tra centri militari e centri di ricerca chiamata ARPANET basata su un criterio di trasmissione di dati detto TCP/IP (Transmission Control Protocol/Internet Protocol). • I segnali trasmessi attraverso la rete sono digitali, a differenza di quanto avviene nella trasmissione telefonica. • La struttura di Internet è quella di una rete con collegamenti di tipo molti a molti. • Un insieme globale di reti collegate tra loro in molti modi diversi a formare un’unica entità complessiva: INTERNET • I computer collegati ad Internet possono essere suddivisi in server (computer che forniscono un servizio: web server, server di posta ecc.) e client (computer che richiedono un servizio: il PC di un utente) 54 MINISTERO DELLE FINANZE ARCHITETTURA DEL SISTEMA UFFICI DEL TERRITORIO Catasto Conservatorie Demanio Commissioni Tributarie UFFICI DELLE ENTRATE Imposte Dirette IVA Registro INTERNET GUARDIA DI FINANZA RETE TRASMISSIONE DATI CENTRI DI SERVIZIO PUBBLICHE AMMINISTRAZIONI ED ENTI ESTERNI VIDEOTEL CENTRI DOGANALI S. Ramat SELF SERVICE Bioingegneria Elettronica e SISTEMI CENTRALI ROMA Informatica 2010/2011 FISCO ON LINE 55 colombo/AIPA 5.10.95 pag. 2 Trasmissione di dati • Internet è costituita da un gran numero di sotto-reti tra loro collegate attraverso gateways e routers. • Per raggiungere il computer di destinazione, i dati trasmessi devono frequentemente attraversare una dozzina di reti distinte. • Questo processo è del tutto trasparente per l’utente che, per poter trasmettere dei dati ad un altro computer, deve semplicemente conoscere l’indirizzo (IP address) del computer di destinazione • Ogni computer su internet può comunicare con qualsiasi altro computer. • La comunicazione è possibile perchè i computer usano tutti uno stesso linguaggio (un protocollo per scambiare informazioni: un insieme di regole predefinite). 56 TCP/IP • Il TCP/IP è un insieme di protocolli che consentono a computer collegati in rete di comunicare e condividere risorse. • Possiamo considerare il TCP/IP come una libreria di procedure che possono essere sfruttate da applicazioni che necessitano una comunicazione affidabile tra computer connessi in rete. • I protocolli di comunicazione su Internet sfruttano la tecnica del layering (stratificazione). I protocolli sfruttati dalle specifiche applicazioni si appoggiano infatti su protocolli di base quali il TCP, che a sua volta sfrutta l’IP. 57 TCP • Si occupa della suddivisione del messaggio in pacchetti (datagrammi) che verranno spediti come un singolo messaggio e instradati attraverso la rete individualmente. • Il TCP inoltre è responsabile di riassemblare i pacchetti presso il computer ricevente, rispedire i pacchetti eventualmente smarriti e riordinarli correttamente. • Protocolli applicativi, come il protocollo della posta elettronica (mail), sfruttano il TCP per la trasmissione dei dati. 58 IP • Il TCP non si preoccupa del percorso che seguiranno i datagrammi attraverso la rete per raggiungere il computer di destinazione. • Questo compito, detto routing, è delegato all’Internet Protocol (IP). • Il TCP passa i pacchetti all’IP assieme ad un indirizzo. IP non sa se ed in qual modo il datagramma che sta trasmettendo sia collegato ad altri precedenti o successivi. • Ogni datagramma viene dunque instradato indipendentemente e può quindi seguire percorsi diversi per raggiungere una medesima destinazione 59 Indirizzi • Ogni computer su Internet ha un indirizzo che lo identifica univocamente. • Un IP address è un numero a 32 bit che viene solitamente scritto come un gruppo di 4 numeri decimali (i.e.: 193.204.34.27) ognuno dei quali rappresenta 8 bit dell’indirizzo. Un computer userebbe la forma binaria: 11000001.11001100.00100010.00011011 • La struttura dell’indirizzo solitamente fornisce indicazioni sull’ubicazione del computer. – Tutti i computer dell’Università di Pavia hanno un indirizzo che incomincia con 193.204. – I computer nell’ala uffici della “nave” hanno un indirizzo che incomincia con 193.204.34. 60 DNS • Onde facilitare la memorizzazione da parte degli utenti degli indirizzi dei computer su Internet ogni computer ha solitamente un nome testuale. • Nel caso di aziende, l’indirizzo ha solitamente la forma: computer.sito.divisione.compagnia.com Dominio di primo livello • Per poter correttamente instradare messaggi e/o richieste è necessaria la traduzione del nome in un indirizzo. • Di tale compito si fanno carico i Domain Name Server (DNS, University of Wisconsin, 1983) ovvero computer che mantengono una base di dati contenente tutte le corrispondenze nome-indirizzo della rete cui appartengono: – Per unipv il DNS è 193.204.35.27. A questa macchina chiedo l’indirizzo IP di www.unipv.it e ottengo 193.204.35.29 • Un computer in una sottorete inoltra una richiesta di IP address al DNS della propria rete. Se l’indirizzo richiesto non appartiene alla stessa sottorete il DNS può richiederlo ad altri DNS iniziando dal livello più elevato: il DNS del dominio di primo livello (.com, .edu, .it ecc) • Un aspetto fondamentale per il funzionamento di questo sistema è la ridondanza dei DNS: in caso di guasto rispondono altri DNS 61 Banda passante • La connessione tra i diversi computer e le diverse reti avviene mediante cavi: ottici, coassiali, doppini telefonici. • Ogni tipo di cavo ha una banda passante (massimo numero di bit trasmissibili in un secondo) legata alla struttura fisica del cavo stesso ed al suo stato di conservazione. • La fibra ottica ha banda superiore al coassiale che a sua volta ha banda superiore al doppino telefonico (56.7 Kbps max). Le fibre ottiche più veloci (es: OC-48) raggiungono i 2488Mbps. 62 Connessioni - Polo Cravino S. Ramat 63 Wireless Internet • Internet senza connessioni via cavo, possibile? Telefoni cellulari e PDA abilitati alla posta elettronica sfruttano la comunicazione digitale a radiofrequenze. • WAP (Wireless Application Protocol) è il protocollo di comunicazione concordato da Nokia, Motorola, Ericsson e Phone.com nel 1997 per standardizzare la comunicazione internet senza fili. Limite attuale la velocità di 14.4 Kbps • Il WAP sfrutta un linguaggio (Wireless Markup Language) che aggiunge all’informazione trasmessa altra informazione relativa alla natura del messaggio e al cosa fare del messaggio ricevuto. Consente lo sviluppo di nuovi descrittori (come XML). Stessa famiglia dell’HTML 64 Wireless Networking (Wi-Fi) • • • • Alternativa alla comunicazione via cavo per la creazione di una rete locale attraverso l’uso di frequenze radio. La trasmissione è di tipo digitale (binario) e avviene secondo standard specifici (IEEE 802.11b, 802.11a). I due standard specificano diverse radiofrequenze di trasmissione (2.4GHz e 5 GHz) e di codifica dell’informazione, che comportano diverse velocità di trasmissione dei dati (max 11 e max 54 Mbits/s). Accesso mediante un wireless access point (o hotspot) collegato alla rete via cavo (ethernet, ADSL) in grado di gestire decine di comunicazioni separate suddividendo la banda di frequenze disponibili in canali e spostandosi di canale in canale (frequency hopping) a frequenze elevate. • 802.11b Il primo protocollo sviluppato è il più lento e meno costoso. Trasmette a 2.4 GHz e ha una banda fino a 11 mbps. • 802.11a lavora a 5 GHz e gestisce fino a 54 mbps. • 802.11g opera a 2.4Ghz (abbasssando i prezzi come la 802.11b) ma trasmette fino a 54 mbps come la 802.11a. • 802.11n maggiore distanza e banda passante elevata. 65 Wireless device communication • La comunicazione senza fili può avvenire codificando l’informazione attraverso fasci di luce nello spettro dell’infrarosso oppure attraverso l’uso di radiofrequenze. • La comunicazione nell’infrarosso è di tipo digitale pulsando la luce per trasmettere informazione. Ha due limiti: i dispositivi in comunicazione devono “vedersi” e la comunicazione è di tipo uno ad uno. • L’alternativa più recente ed efficace per la comunicazione tra dispositivi elettronici a corto raggio (ca. 10 m) è il bluetooth. Questa tecnologia è basata su radiofrequenze (portante a 2.45 GHz). I problemi di interferenza con altri dispositivi vengono risolti con la tecnica del frequency hopping. • Due dispositivi si accordano per individuare 79 “canali” in un certo spettro di frequenze e comunicheranno passando di canale in canale con una frequenza di 1600 Hz minimizzando la probabilità che due dispositivi parlino sullo stesso canale allo stesso istante. Personal area network o piconet. La comunicazione raggiunge 1Mbps (-20% header) 66 Collegarsi a Internet • Il collegamento a Internet per un privato o una piccola azienda avviene solitamente tramite un Internet Service Provider (ISP) ed una normale linea telefonica. • Un ISP è una società che possiede un collegamento diretto a Internet (è fisicamente raggiunta da uno spezzone di Internet) e un insieme di modem e linee telefoniche. • Un privato, mediante un PC dotato di modem, chiama il numero dell’ISP, fornisce nome utente e password per accedere al servizio e viene collegato ad Internet. • Al computer viene attribuito un indirizzo appartenente alla rete dell’ISP. Sulla linea telefonica viene attivato un protocollo (SLIP o PPP) per la trasmissione/ricezione dati. 67 Privati con connessione via modem Provider Internet 68 Posta elettronica • Rivoluziona la comunicazione da individuo a individuo consentendo l’invio di messaggi di testo e di allegarvi files di qualsiasi tipo. • Sfrutta un apposito protocollo (SMTP: simple mail transfer protocol) che a sua volta si appoggia su TCP e IP. • Gli indirizzi di posta elettronica hanno solitamente la struttura: [email protected] • La macchina identificata da computer.dominio.stato è frequentemente un server del provider che ha fornito l’accesso. Server sempre acceso: non perdiamo messaggi. • Questo server contiene una “cassetta” di posta (una directory su un disco del server) per ogni utente registrato. 69 Client di posta elettronica • Microsoft Outlook Express - Netscape Messenger Mailbox - Eudora – Thunderbird sono i client più diffusi. • Per il loro funzionamento è necessario definire quali siano il server della posta in uscita (SMTP) ed il server dalla posta in ingresso (POP3, IMAP). • Si tratta spesso, in realtà, della stessa macchina ma i protocolli sono differenti • I messaggi vengono inviati in formato ASCII, tutti i files in formato binario possono essere allegati (attachment). Gli allegati si definiscono in genere MIME (Multimedia Internet Mail Extension) attachments. • Outlook e Messenger consentono la lettura di messaggi scritti in HTML 70 World Wide Web • E’ un sistema di server su Internet che supportano la trasmissione di ipertesti consentendo di usufruire di diversi protocolli attraverso un’unica interfaccia. • Nasce nel 1989 al CERN di Ginevra per la condivisione di ipertesti tra sedi distanti. • Mediante le interfacce Web si può accedere ai seguenti protocolli: – – – – E-mail FTP Telnet HTTP 71 Browser • Il browser è il nome generico dei programmi che consentono la navigazione su Internet (Microsoft Internet Explorer, Netscape Navigator ecc.) • Consentono la visualizzazione degli ipertesti che costituiscono le pagine unitamente ai componenti multimediali (immagini, audio e video) eventualmente inclusi. • La navigazione si realizza: – digitando un URL (Uniform Resource Locator) valido nella barra dell’Indirizzo – cliccando con il mouse su un link valido • Sono interpreti del linguaggio HTML 72 HTML • HTML: Hyper Text Markup Language – E’ il linguaggio per la descrizione e costruzione delle pagine visualizzate attraverso un browser internet. – I documenti sono documenti di testo con dei tags (delimitatori) che specificano al browser quale aspetto deve avere il testo o la pagina in generale. • I tag sono identificati dai caratteri < e > ed hanno solitamente la forma <tag> stringa di testo </tag> Il tag finale contiene il carattere “/” e specifica fino a quale punto adottare il formato specificato dal tag di inizio • Si differenzia dall’XML che è invece un meta-linguaggio che consente di definire nuovi “tag” o identificatori. 73 Head, Body, Title • Nella sezione di documento delimitata da <head> e </head> si digitano informazioni che non compariranno nel documento • Tutto ciò che appare nel documento è all’interno della sezione body: <body> documento </body> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>Informatica Web</title> </head> <!-- Esempio di pagina HTML --> <body>Prima lezione di linguaggio HTML </body> </html> • Il tag <Title> viene inserito nell’ambito dell’intestazione e verrà visualizzato nella barra del titolo del browser quando si apre la pagina 74 PROGRAMMAZIONE • Linguaggio di Programmazione: un insieme di comandi ed operatori che consentono la traduzione di un algoritmo in un programma che potrà essere interpretato o compilato ed eseguito da un calcolatore. • La maggior parte dei linguaggi di programmazione sfrutta un compilatore che traduce l’insieme di istruzioni del programma in un programma eseguibile (in MS-DOS un eseguibile ha estensione .exe) • Altri programmi sfruttano invece un interprete che esegue le istruzioni una ad una in tempo reale. L’interprete dispone di una interfaccia nella quale è possibile digitare direttamente il programma. (es. MATLAB) 75 Linguaggi • Merita un occhio di riguardo il linguaggio JAVA. • JAVA è un linguaggio di programmazione a oggetti sviluppato da Sun Microsystems. • Java è un linguaggio sia interpretato che compilato. Il suo codice sorgente è compilato in una forma di pseudo codice (bytecode) universale interpretabile da una macchina virtuale implementata sulla maggior parte delle comuni piattaforme hardware. • Un programma redatto in Java è dunque indipendente dall’architettura e può essere eseguito su qualunque sistema per il quale esista un “Java Virtual Machine” • JAVA è particolarmente utile per applicazioni WEB (che hanno come interfaccia pagine HTML) grazie alla sua portabilità sui diversi SO 76 Variabili • Variabile ¶ s. f. (mat.) grandezza che può assumere tutti i valori appartenenti a un determinato insieme: variabile dipendente, indipendente, a seconda che i valori a essa assegnati siano o non siano funzioni di altri valori | in logica matematica, ogni simbolo che non abbia un preciso referente, ma che stia per un qualsiasi elemento di un insieme specificabile | variabile casuale o aleatoria, (stat.) variabile appartenente all'insieme dei possibili risultati di un esperimento casuale (può essere discreta o continua) | variabile autogena, esogena, nei modelli econometrici, le variabili determinate come soluzioni del modello o indipendenti da questo 77 Tipi di dati • Nella maggior parte dei linguaggi di programmazione le variabili che conterranno i dati devono essere dichiarate prima di poter essere referenziate. • La dichiarazione di una variabile implica la definizione del nome della variabile unitamente al tipo di dati che sarà in grado di contenere. • La definizione del tipo di dati serve al compilatore affinché possa essere allocata una quantità di memoria appropriata al dato che verrà memorizzato. • Tipicamente un linguaggio prevede dati di tipo integer, single, double, char, boolean 78