1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti, 2 stanza 346 DE Tel o per posta elettronica Pagina web del corso: /
2 Come si avvia un computer... Dove è contenuto il SO ? Come si attiva?
3 Al momento dellaccensione …. La RAM è vuota (è volatile!) Il processore è capace di eseguire solo programmi contenuti nella RAM Il sistema operativo è memorizzato su disco ….????????????……. –Chi inizia lesecuzione del SO e carica in RAM il primo programma da eseguire? –Chi visualizza messaggi sullo schermo?
4 BIOS (Basic Input Output System) Risiede in una memoria speciale, non volatile in sola lettura (ROM) –è scritto al momento della costruzione del computer e non modificabile È un programma che permette di –identificare le caratteristiche dellhw della macchina (processore, memoria, periferiche) –identificare la parte di disco dove si trova lSO –caricare in RAM le parti essenziali del sistema operativo e mandarlo in esecuzione
5 Le reti di calcolatori
6 Cosè una rete di calcolatori ? Rete : È un insieme di calcolatori e dispositivi collegati fra loro in modo tale da permettere lo scambio di dati –es: la rete del vostro centro di calcolo, Internet Ogni calcolatore o dispositivo viene detto nodo ed è identificato da un indirizzo univoco allinterno della rete –es: un PC, una stampante, etc...
7 A che serve una rete di calcolatori ? Alcuni esempi di applicazioni che usano la rete : –posta elettronica (scambio di corrispondenza fra utenti di sistemi collegati in rete) –trasferimento di file (copia di file fra due computer collegati) –terminali virtuali (ci si può collegare e lavorare interattivamente con un computer remoto) –condivisione di risorse (stampanti, file system…) –World Wide Web (ipertesti distribuiti)
8 Come ci si collega alla rete ? RAM (memoria centrale) Processore bus Linee dati, indirizzi e controllo Interfaccia di I/O Interfaccia di I/O Scheda ethernet modem LAN Rete Telefonica
9 La connessione dei dispositivi di I/0 (periferiche) (3) Interfaccia I/O Registro dati Registro stato Unità di controllo Bus dati Bus indirizzi Bus controllo Periferica porta Sottoprogramma per realizzare loperazione richiesta Operazione / esiti Dati da/per la periferica
10 Come ci si collega alla rete (2) Modem (modulatore / demodulatore) –permette di trasferire dati da un calcolatore allaltro usando la linea telefonica tradizionale –effettua la modulazione del segnale in uscita (dalla rappresentazione elettrica interna alle memorie a suoni analogici lungo il filo telefonico) –effettua la demodulazione (il passo di codifica inverso) allarrivo –velocità tipica 56 K al secondo (in bit /sec)
11 Le reti di calcolatori Sono classificate per estensione –reti locali LAN (Local Area Network) consentono di collegare fra loro dispositivi nello stesso edificio o in edifici adiacenti es : le rete del vostro centro di calcolo –reti metropolitane MAN (Metropolitan AN) consentono il collegamento di dispositivi nella stessa area urbana es : la rete civica pisana, la rete privata dellUniversità
12 Le reti di calcolatori (2) Estensione (segue) –reti geografiche WAN (Wide AN) collegano dispositivi diffusi su unampia area geografica es : in genere tutte le reti che devono attraversare suolo pubblico (due sedi distanti della stessa ditta) –reti di reti (internetworking) collegano fra loro più reti diverse (in termini sia di hardware che di software) mediante opportuni elementi di interfaccia es: Internet
13 Struttura delle reti di calcolatori Ci sono reti di molti tipi che utilizzano hardware e software diversi –es : cavo telefonico (modem), reti ethernet (scheda di rete), infrarossi (IR), onde radio Perché la comunicazione possa avvenire correttamente ci deve essere un accordo sulle regole da seguire durante lo scambio (protocollo) Si usa una gerarchia di protocolli –ogni protocollo disciplina un aspetto della comunicazione
14 Struttura delle reti di calcolatori (2) Linsieme dei protocolli usati da una rete costituisce larchitettura della rete –esistono architetture standard ufficiali (es. ISO/OSI) –larchitettura di Internet costituisce uno standard di fatto (Internet Protocol Suite) –Non si possono collegare assieme direttamente due reti con architetture diverse (serve un nodo collegatore, il gateway)
15 LInternet Protocol Suite In cosa consiste lInternet Protocol Suite Collegamento fisico Livello network (IP) Livello trasporto (TCP/UDP) E il protocollo hw/sw che si occupa di trasmettere correttamente un singolo gruppo di bit (frame) fra due nodi collegati fisicamente in una rete omogenea. IPSIPS Livello applicazione
16 LInternet Protocol Suite (2) Collegamento fisico Livello network (IP) Livello trasporto (TCP/UDP) Gestisce linstradamento dei messaggi fra due nodi non collegati sulla stessa rete omogenea. È analogo a decidere che rotta fare seguire ad un treno merci in viaggio da Reggio Calabria a Milano… IPSIPS Livello applicazione
17 LInternet Protocol Suite (3) Collegamento fisico Livello network (IP) Livello trasporto (TCP/UDP) Controlla il trasferimento dei dati al nodo destinazione. Se il messaggio è troppo grosso lo spezza in più messaggi piccoli (pacchetti). TCP controlla anche che ogni pacchetto sia stato trasmesso correttamente ed ricostruisce il messaggio a destinazione. UDP e TCP permettono a più utenti di usare la rete contemporaneamente IPSIPS Livello applicazione
18 LInternet Protocol Suite (4) Collegamento fisico Livello network (IP) Livello trasporto (TCP/UDP) Insieme di protocolli che definisce come interagiscono le applicazioni. I protocolli più comuni sono FTP (file transfer protocol) per il trasferimento file TELNET (connessione a terminale remoto) SNMP (per la posta elettronica) e HTTP (per il World Wide Web) IPSIPS Livello applicazione
19 LInternet Protocol Suite (5) Internet Protocol (IP) gestisce 3 aspetti : –Fornisce uno schema di indirizzamento per tutti i computer collegati dalla rete di reti (indirizzo IP) –Decide il formato dei pacchetti che vengono trasmessi le reti collegate hanno tecnologia diversa e quindi in generale formato e dimensione dei pacchetti diversa –Decide come instradare i vari pacchetti fino al nodo destinazione la decisione viene presa in base ad una tabella di routing che spiega come comportarsi per i vari indirizzi
20 LInternet Protocol Suite (5) Internet Protocol (IP) : indirizzi IP –ogni computer connesso alla rete ha un indirizzo univoco (lindirizzo IP, intero positivo a 32 bit) –es è lindirizzo IP della mia macchina –la notazione con 4 numeri viene usata per leggibilità –IP V6, nuovo protocollo che usa 128 bit (per evitare la saturazione) bit
21 LInternet Protocol Suite (6) Internet Protocol (IP) : IP address –gli indirizzi IP vengono assegnati a gruppi (un gruppo è detto dominio) da una autorità centralizzata con ramificazioni in tutto il mondo –ogni nodo ha un nome simbolico es. ely.di.unipi.it è il nome simbolico della mia macchina –un insieme di processi attivi su particolari nodi della rete si occupa di tradurre questi nomi simbolici nel corrispondente indirizzo IP numerico (DNS, Domain Name System)
22 Il World Wide Web (WWW) Insieme di server distribuito sulla rete, che permette di accedere a file memorizzati in particolari directory su tutte le macchine collegate Per richiedere informazioni ai server Web si usano solitamente dei programmi detti Web client (i normali navigatori) –i navigatori si preoccupano di interagire con i server seguendo opportuni protocolli generalmente http ( hypertext trabsfer protocol ) ma anche ftp etc.
23 Il World Wide Web (2) Vediamo cosa accade richiedendo laccesso a una certa pagina del web es: – è lindirizzo IP formato simbolico del server web dove si trova linformazione cercata –il navigatore traduce questa richiesta cioè la trasforma in un messaggio al server con tutti i dettagli necessari e secondo le regole del protocollo specificato ( http ) susi/IG02/text.htm viene inviato al server per individuare il file cercato ( text.htm ) allinterno delle directory susi e IG02 (il server sa come trovarle)
24 Il World Wide Web (3) Vediamo cosa accade richiedendo laccesso a una certa pagina del web (cont.) es: –il server risponde alla richiesta inviando il testo della pagina cercata (se la trova) e la descrizione del tipo MIME della pagina stessa –il navigatore visualizza il contenuto della pagina usando una opportuna applicazione in base al tipo MIME –tipico formato è HTML (Hypertext Markup Language) HTML permette di incapsulare nel testo le informazioni relative alla sua formattazione e diversi oggetti di tipo multimediale (immagini, suoni,etc)
25 Il World Wide Web (4) Vediamo cosa accade richiedendo laccesso a una certa pagina del web (cont.) es: –// è detto URL (Uniform Resource Locator) e permette di localizzare in maniera univoca tutti i file pubblicati sulla rete
26 I problemi risolubili dal computer Complessità Problemi intrattabili Problemi indecidibili
27 La complessità degli algoritmi Nella prima parte del corso –abbiamo visto alcuni esempi di algoritmi –abbiamo visto come alcuni algoritmi sono più veloci di altri Adesso : –vogliamo approfondire introducendo misure quantitative della velocità di un algoritmo (la complessità) per confrontare due algoritmi fra di loro per stabilire se un certo problema si può risolvere in tempo ragionevole o no
28 La complessità degli algoritmi (2) Un esempio: ricerca di un Autore in schede ordinate: algoritmo stupido : cerco tutte le schede dalla prima algoritmo lettera iniziale : troviamo la prima scheda relativa alla lettera iniziale del campo Autore e da quella procediamo in sequenza algoritmo del dizionario : dividiamo ripetutamente le schede a metà eliminando ogni volta la metà che sicuramente non contiene la scheda cercata –la valutazione di complessità associa ad ogni algoritmo una espressione numerica che descrive il numero di operazioni effettuate (in media)
29 La ricerca stupida 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 4. Se sono uguali, allora la ricerca è terminata, altrimenti prendi la scheda successiva e vai al passo 3 5. Se le schede sono esaurite, allora il libro cercato non esiste.
30 La ricerca stupida (2) Complessità 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 4. Se sono uguali, allora la ricerca è terminata, altrimenti prendi la scheda successiva e vai al passo 3 5. Se le schede sono esaurite, allora il libro cercato non esiste. 1 Numero operazioni elementari richieste 1 1 (lettura) (confronto) 2 (lettura e confronto) 1 (confronto)
31 La ricerca stupida (3) Complessità 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 4. Se sono uguali, allora la ricerca è terminata, altrimenti prendi la scheda successiva e vai al passo 3 5. Se le schede sono esaurite, allora il libro cercato non esiste. 1 Numero operazioni elementari richieste 1 1 (lettura) (confronto) 2 (lettura e confronto) 1 (confronto) ? Quante volte sono ripetuti ?
32 La ricerca stupida (4) schedario Situazione iniziale 1 N Numero complessivo delle schede
33 La ricerca stupida (5) schedario Situazione dopo aver esaminato K schede 1 2 ………. K N
34 La ricerca stupida (6) schedario Situazione dopo aver esaminato K schede 1 2 ………. K I passi vengono ripetuti finché non trovo la scheda. Supponendo che le schede vengano tutte cercate con la stessa frequenza ho : mediamente N/2 volte N
35 La ricerca stupida (7) Complessità totale 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 4. Se sono uguali, allora la ricerca è terminata, altrimenti prendi la scheda successiva e vai al passo 3 5. Se le schede sono esaurite, allora il libro cercato non esiste. 1 Numero operazioni elementari richieste 1 1 (lettura) (confronto) 2 (lettura e confronto) 1 (confronto) (Tl + Tc )*N/2 Tl - tempo di lettura Tc - tempo di confronto
36 La ricerca stupida (8) Costo complessivo : –facciamo un conto numerico (Tl = 0.01ms, Tc = 10ns, N= ) (Tl + Tc )*N/2 (0.01 )* = 2000 ms = 2 secondi
37 La ricerca stile dizionario 1. Apri il classificatore 2. Prendi la scheda X al centro dello schedario 3. Confronta il campo autore e titolo di X con quelli cercati 4. Se sono uguali, allora termina, altrimenti prosegui 5. Se il campo autore di X è minore di quello cercato allora prosegui la ricerca sulla metà inferiore delle schede altrimenti considera la metà superiore 6. Se la metà selezionata al passo 5 è vuota allora termina (lo schedario non contiene il libro cercato) altrimenti scegli come X la scheda al centro della metà scelta e vai al passo 3
38 La ricerca stile dizionario (2) schedario Situazione iniziale
39 La ricerca stile dizionario (3) Ogni volta elimino la metà delle schede, oppure mi fermo perché ho trovato la scheda cercata Ogni volta divido il numero N delle schede per 2, mi fermo quando N è diventato 1 o 0 Al più eseguo x passi dove x è il logaritmo in base 2 di N (log 2 N) Scheda cercata!
40 La ricerca stile dizionario (4) 1. Apri il classificatore 2. Prendi la scheda X al centro dello schedario 3. Confronta il campo autore e titolo di X con quelli cercati 4. Se sono uguali, allora termina, altrimenti prosegui 5. Se il campo autore di X è minore di quello cercato allora prosegui la ricerca sulla metà inferiore delle schede altrimenti considera la metà superiore 6. Se la metà selezionata al passo 5 è vuota allora termina (lo schedario non contiene il libro cercato) altrimenti scegli come X la scheda al centro della metà scelta e vai al passo (lettura e confronto) (confronto)
41 La ricerca stile dizionario (5) I passi 3-6 sono effettuati log 2 N volte. Quindi la complessità in questo caso è : che valutato con (Tl = 0.01ms, Tc = 10ns, N= ) da (Tl + Tc) * log 2 N ( ) * log = ( ) * 19 = 0.19 ms = sec
42 Complessità : considerazioni È importante stabilire la complessità (velocità) di un algoritmo per capire se un problema è o meno risolubile in tempi ragionevoli dal calcolatore Esistono problemi per cui non esiste un algoritmo di risoluzione che termina in tempi ragionevoli !
43 Complessità : considerazioni (2) Problemi indecidibili : quelli per i quali non può esistere un algoritmo di soluzione che termina sempre (in tempo finito) per qualsiasi insieme dei dati in ingresso –es : problema del barbiere che fa la barba solo a tutti coloro che non se la fanno da soli (paradosso di Russel) : esiste un algoritmo che dato X umano risponde SI se X si fa la barba da solo e NO altrimenti?
44 Complessità : considerazioni (3) Il barbiere che fa la barba solo a tutti coloro che non se la fanno da soli (cont.) –la risposta è NO, perché un tale algoritmo A porterebbe ad una contraddizione se applico A al barbiere stesso (X = barbiere) infatti se A(barbiere) risponde SI significa che il barbiere si rade da solo …
45 Complessità : considerazioni (3a) Il barbiere che fa la barba a tutti coloro che non se la fanno da soli (cont.) –la risposta è NO, perché un tale algoritmo A porterebbe ad una contraddizione se applico A al barbiere stesso (X = barbiere) infatti se A(barbiere) risponde SI significa che il barbiere si rade da solo …contro la sua caratteristica di radere solo chi non si rade da solo analogamente per la risposta NO
46 Complessità : considerazioni (4) Altro esempio : trovare un algoritmo che decide se un programma P termina dato un certo insieme dei dati in ingresso D (problema di Turing o della terminazione) –primo tentativo: applicare P a D ed aspettare il risultato … – …. E se P(D) non termina ? –Turing ha dimostrato che lesistenza di un simile algoritmo provocherebbe un paradosso
47 Complessità : considerazioni (5) Quindi esistono problemi intrinsecamente insolubili (problemi indecidibili) –per fortuna sono pochi Esistono però anche problemi risolubili ma solo con algoritmi di complessità molto elevata (problemi intrattabili) – che sono purtroppo molto frequenti …
48 Complessità : considerazioni (5) Problemi intrattabili –Sono problemi che richiedono di esplorare tutte le possibili combinazioni di un insieme di dati in ingresso –La loro complessità ha fattori come 2 N (N numero dei dato in ingresso) –Con fattori esponenziali nella formula di complessità i tempi di risposta dellalgoritmo crescono rapidamente con il numero N dei dati in ingresso (es. anni) nel nostro esempio (ricerca) con N=40, avremo sec cioè circa 127 giorni (4 mesi e mezzo)
49 Complessità : considerazioni (6) Problema dei ponti di Königsberg (Eulero) problema : stabilire se esiste un itinerario attraverso la città che traversi ciascun ponte una sola volta Fiume Pregel Isola Kneiphof ponti A B C D a b c d e f g
50 Complessità : considerazioni (7) Problemi dei ponti di Königsberg (Eulero) grafo di Königsberg : un nodo per ogni pezzo di terra e un arco per ogni ponte nodo arco A B C D a b c d e f g
51 Complessità : considerazioni (8) Problemi dei ponti di Königsberg (Eulero) grafo di Königsberg : un nodo per ogni pezzo di terra e un arco per ogni ponte A B C D a b c d e f g
52 Complessità : considerazioni (9) Problemi dei ponti di Königsberg (Eulero) –nel grafo di Königsberg non esiste un itinerario con le caratteristiche cercate –Eulero risolse il problema per un grafo qualsiasi mostrando che condizione necessaria e sufficiente è la presenza di nodi da cui si dipartono solo numeri pari di archi –Quindi il problema si risolve esaminando una sola volta tutti i nodi
53 Complessità : considerazioni (10) Problema del commesso viaggiatore trovare una cammino che tocchi tutti i nodi una e una sola volta (nodi = città, archi = collegamenti) A B C D a b c d e f g
54 Complessità : considerazioni (11) Problema del commesso viaggiatore una soluzione per il grafo di Königsberg A B C D a b c d e f g
55 Complessità : considerazioni (12) Simile al problema dei ponti Però il TSP è intrattabile (NP-completo): per grafi generali TSP non può essere risolto senza considerare tutte le possibili combinazioni di cammini Morale : –parecchi problemi pratici sono intrattabili –spesso problemi simili hanno caratteristiche computazionali diverse –per problemi intrattabili bisogna abbandonare lidea di algoritmo esatto per passare agli algoritmi approssimati C