








Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una introduzione alla teoria degli algoritmi e al trattamento automatico dei dati, spiegando come le informazioni vengano codificate in sequenze di bit e memorizzate in calcolatori. Viene inoltre discusso il concetto di algoritmi, dai singoli valori alla programmazione, e la struttura di un sistema operativo (SO), inclusi i suoi componenti principali come il kernel, la memoria virtuale e la gestione della rete. Inoltre, vengono presentati i concetti di licenza d’uso, software libero e open source, e i problemi associati alla gestione di dati come il collo di bottiglia di Von Neumann e la codifica dei dati.
Tipologia: Appunti
1 / 14
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!









Informatica della comunicazione Un motore di ricerca quando cerca va a cercare nei propri archivi. L’informatica è ovunque, ogni tipo di lavoro richiede conoscenze informatiche di base. Introduzione all’informatica: dato e informazione trattamento automatico dei dati Alan Turing (padre dell’informatica) L’intelligenza artificiale Il software e l’hardware: algoritmi, dall’algoritmo al programma, i diagrammi di flusso e l’architettura del calcolatore. La rappresentazione dei dati: la codifica dell’info, la sicurezza info e le normative italiane sulla privacy. Internet e il web: internet e i suoi servizi, il Web ed il Web 2.0. L’identità digitale: concetto di identità e web, la sicurezza e la crittografia (no analisi da terzi), analisi dei dati e privacy. Le relazioni: online dating e la comunicazione tramite web La creatività: informatica e arte, computer art, interattività ed evoluzione tech Che cosa è l’informatica? “L’informatica non riguarda i computer più di quanto l’astronomia riguardi i L’informatica non riguarda i computer più di quanto l’astronomia riguardi i telescopi” -Dijikstra Informatica è lo studio teorico dell’informazione, della computazione e degli strumenti di elaborazione automatica. Benefici e dati degli elaborati automatici di info: riduzione tempi maggiore affidabilità automazione del lavoro diffusione di metodo di elaborazione che richiedono competenze specifiche Informatica o computer science: il calcolatore o elaboratore permette di trattare l’info L’informatica viene chiamata anche tecnologia dell’informazione. Con l’avvento delle reti e delle telecomunicazioni è nata una nuova disciplina Information & communication technology (ICT). Dat, informazione e conoscenza Dato: insieme di simboli di un alfabeto. (es. 39,5 è composto da simboli “L’informatica non riguarda i computer più di quanto l’astronomia riguardi i 3”, “L’informatica non riguarda i computer più di quanto l’astronomia riguardi i 9” “L’informatica non riguarda i computer più di quanto l’astronomia riguardi i ,” “L’informatica non riguarda i computer più di quanto l’astronomia riguardi i 5”) L’info si ottiene relazionando dati con proprietà. (es. la temperatura corporea °C) L’elaborazione necessita un ulteriore livello quello della conoscenza. Solo allora posso trattare in maniera automatica l’informazione. Esistono regole che vanno a consolidare una conoscenza. Da qui il calcolatore può e sa gestire l’informazione. Quando dobbiamo specificare dati, proprietà e conoscenza non possiamo utilizzare il nostro linguaggio. Il nostro linguaggio naturale è ambiguo. Necessitiamo di un linguaggio formale. Anche quando abbiamo conoscenza del contesto dobbiamo prestare attenzione all’ordine delle frasi. I linguaggi formali sono stati introdotti per evitare ambiguità. Sono composti da alfabeto finiti di simboli, grammatica formale Esistono semantiche formali, metodi che attribuiscono significato alle frasi di linguaggio formale. Nei calcolatori le info sono codificate in sequenze di bit (binary digit). È la cifra binaria (valore 0 o 1). Solo due cifre per codificare tutte le info. I dispositivi bistabili sono quelli sui quali è possibile rappresentare il valore dei bit. Come realizzo la codifica dell’info? Un bit può assumere i valori 0 e 1 quindi solo due tipi di info? Per rappresentare piu dati posso creare sequenze distinte: 2 bit: 4 (2^2 ) 00, 01, 11, 10 3 bit: 8 (2^3 ) sequenze possibili 8 bit: 256 (2^8 ) n bit: 2n^ sequenze possibili 8 bit= 1 Byte
Molti metodi diversi per memorizzare le info, inizialmente buchi su fogli, memorie magnetiche come i floppy disk, gli hard disk. Oggi utilizziamo memorie non basate su parti meccaniche o in movimento (es chiavetta USB). La memoria del calcolatore contiene sequenze di bit che codificano l’info. La sua capacità è misurata in bit, byte (o i loro multipli) Prefisso Sistema binario SI Kilo 210 =1024 103 = Mega 220 = 1024*1024 106 = 1000000 Giga 230 Tera 240 Peta 250 Attenzionekilobit=2^10 Kb Gigabyte GB 2^30 byte La macchina di Turing Macchina enigma che permette di criptare i messaggi. Il governo inglese assume una squadra per tentare di decodificare questi messaggi. Ogni giorno però la chiave cambiava, turing costruisce una macchina che fa questo lavoro al posto degli umani. Una macchina che decifra un codice. È un dispositivo astratto per l’elaborazione dell’informazione. Permette di analizzare le proprietà dell’elaborazione automatica dell’informazione, degli algoritmi e della complessità. È costituita da:
Combinando i diversi blocchi posso codificare qualsiasi algoritmo. Esistono diversi tipi di variabili che mi permettono di differenziare i dati. Vengono inserite nella memoria del calcolatore e permettono la codifica di un singolo valore. Altre variabili sono i vettori ossia più celle di memoria (si inizia a contare dallo 0 solitamente) Poi abbiamo le matrici, che combinano valori Nel momento in cui utilizziamo queste diverse variabili posso codificare algoritmi complessi. 01-03- Esercizi svolti insieme. Posso mettere all’interno di un blocco di input una variabile. Questo mi permette di avere schemi più compatte. 02-03- Un linguaggio di programmazione è un linguaggio formale usato per descrivere algoritmi, un programma è un algoritmo espresso in un linguaggio di programmazione. (dall’algoritmo al programma linguaggio di programmazione) Diversi livelli di astrazione:
organizer, project management, applicazioni legate a internet e il web. Se in particolare facciamo riferimento a dei calcolatori (PC) facciamo riferimento a Word o alle app ad esempio. A noi interessa maggiormente il Sistema Operativo. I più comuni sono: Unix, Linux, Microsoft Windows CE, Mac OS, iphone OS, Android SO. Come funziona in termini di gestione del calcolatore? È un software di base che permette l’interazione tra utente e calcolatore tramite una serie di programmi. Le componenti principali di un SO sono: nucleo (kernel) gestore della memoria gestore dei dispositivi input/output file system gestore della rete interprete di comandi Il Kernel è una sorta di cervello del SO. Dalla monoprogrammazione alla multiprogrammazione. A me utente sembra che abbia diversi software a disposizione e che funzionino in parallelo ma in realtà è il So che sa gestire i programmi in maniera così efficiente da farmi credere ni un parallelismo. Cosa indicano i termini timesharing e multitasking? Indicano la possibilità di avere un parallelismo virtuale. Diversi processi vengono gestiti dalla CPU in modo tale che l’utente creda che la loro esecuzione sia parallela. La CPU gestisce i processi in esecuzione che si possono trovare in 3 diversi stati: Pronto, in esecuzione e in attesa. Operazione di context swapping. Il SO da dove prende le istruzioni e i dati che fornisce al processore? La multiprogrammazione richiede la presenza di un gestore della memoria in grado di: Controllare la RAM che si interfaccia al processore Gestire lo spazio necessario a ciascun processo Proteggere lo spazio di ogni processo Gestire lo spazio comune tra i processi (usato per lo scambio di messaggi) Per tale ragione sono stato introdotti i concetti di: memoria virtuale pagine (blocchi di memoria) divido in blocchi la memoria per memory management unit (dispositivo hardware) swapping (area di swap) Il SO si occupa anche di periferiche virtuali (mouse, casse, tastiera…). ES apro youtube, posso aprire un an altro video e sento due audio sovrapposto. Alla base vi è un processo opera come se la periferica sia a sua completa disposizione il processo è device independent grazie ai driver un software per interfacciare il calcolatore alla periferica stessa. (es stampante ha un driver a sé che installo) L’impiego di una periferica in un dato SO è dipendente dalla presenza di un driver specifico. Non vi è solo la memoria RAM. La gestione dei file che sono salvati in maniera permanente nel nostro SO viene effettuata dal file system. I file sono organizzati nel fs in maniera gerarchica a partire da una cartella root. Dalla root viene originata con struttura ad albero. Un file viene identificato univocamente tramite pathname (punto in cui si trova). Il FS memorizza le seguenti proprietà per ogni file e cartella: formato (tipo di dato: ODT, TXT… per sapere come aprirlo) dimensione (numero di bit per sapere quanto occupa in memoria) data e ora di creazione data e ora di ultima modifica autorizzazioni (per gestire le operazioni di lettura, scrittura, ecc. agli utenti autorizzati) Perché se il FS ha dei problemi il PC non funziona? Perché anche il SO è salvato all’interno del FS.
B. memoria contiene dati o istruzioni in celle identificate da un indirizzo numerico C. interfaccia (di input o output) interagisce con l’ambiente tramite periferiche di input e output D. bus canale di comunicazione Linguaggio macchina: insieme delle istruzioni (in binario) specifiche di una determinata CPU Due calcolatori sono (tra loro) compatibili se utilizzano lo stesso linguaggio macchina Problema: collo di bottiglia di Von Neumann. La CPU elabora dati molto più velocemente di quanto il Bus sia in grado di trasferirne. La CPU esegue le info lette nella memoria centrale: lettura della memoria (fetch) decodifica esecuzione scrittura per fare questo correttamente, usa il registro IR (instruction register) e il Program Counter. L’esecuzione vera e propria è solitamente fatta dalla unità aritmetico logica (ALU). La frequenza con cui vengono eseguite le istruzioni è data dal clock; la frequenza di clock viene indicata in Hertz e determina la velocità massima di elaborazione della CPU. Le CPU moderne È il dispositivo di memorizzazione che interagisce con la CPU tramite bus per eseguire le istruzioni È una memoria volatile, per mantenere le info deve essere alimentata, però ha tempi di accesso ridotti Tipi di accesso ai dispositivi di memorizzazione: accesso sequenziale accesso diretto accesso misto accesso associativo La capacità di RAM tipica è di alcuni GB. Esistono anche altri tipi di memoria ROM e EPROM La RAM è una tecnologia molto costosa. La memoria di massa Garantiscono la persistenza dei dati, l’accesso in lettura e scrittura è più lento rispetto alla RAM. Il costo delle memorie di massa è molto inferiore a quello della RAM. Nel calcolatore la principale memoria di massa è il disco rigido (hard disk). Tipicamente i dischi rigidi dei personal computer hanno un diametro di 3,5” (desktop) o 2,5” (laptop) e la loro dimensione varia tra centinaia di GB ad 2 TB. Cosa significa backup, formattazione e ridondanza? Sono processi legati all’hard disk. Backupcopia di sicurezza dei dati
Formattazioneriportare alle condizioni originali la memoria. La differenza fra cancellare i file e formattare è che nel primo caso dico al SO di togliere il riferimento di quel file dal file system. La sequenza di bi che codifica l’info è ancora in memoria. Ridondanza Ma cosa è il “L’informatica non riguarda i computer più di quanto l’astronomia riguardi i collo della botiglia”? Principio di località: località temporale lettura in memoria nella stessa cella in istanti di tempo successivi località soazialiletturs in memoria nelle celle adiacenti a quella letta attualemnte Le Cache sono memorie piccole che cercano di risovere il problema delcollo di bottiglia di Neumann Anche le cache possono far aumentare il costo sono importanti per mantenere elevate le prestazioni del calcolatore Le periferiche Dispositivo connesso all’unità centrale del calcolatore, che permette l’immissione o l’emissione di dati. Le periferiche che si connettono usando interfacce che vengono inserite nelle schede madri dei PC o usando PC Card dei laptop. I connettori disponibili per la comunicazione tra PC e periferia sono:
Dalla decimale alla binaria non cambia nulla se non la base da cui parto. Da 10 a 2. Dalla sequenza di bit riesci a caspire alcune caratteristiche del numero decimaoe a cu fa riferimento il binario: se termina con 1 è disperi se 0 pari. Anche la lunghezza ci da informazioni. Da decimale a binario? Al primo passo il dividendo è il numero da convertire Si divide sempre per due Ai passi successivi il dividendo è dato dal quoziente della divisione precedente Il processo termina quando il dividendo è nullo Al termine, la sequenza dei resti delle divisioni, trascritti in ordine inverso rispetto a come sono stati generati, costituisce il numero binario 149 (^100101012) 149:2=74 R 1 74:2= 37 R 0 37:2= 18 R 1 18:2= 9 R 0 9:2= 4 R 1 4:2= 2 R 0 2:2= 1 R 0 1:2= 0 R 1 Codifica analogica Richiede l’individuazione di una grandezza analoga Ad ogni variazione della prima deve corrispondere una variazione della seconda Codifica digitale (dei calcolatori): Richiede l’introduzione di un alfabeto di simboli Richiede regole di codifiche per associare una grandezza a una sequenza di simboli Esempio: rappresentazione della quantità di caramelle: analogicanumero di sassolini corrispondente (18 sassolini per 18 caramelle) digitalenotazione numerica decimale posizionale (la sequenza di simboli 18, mi scrivo 18 sulla mano)
se il messaggio è 011001111100 può essere scomposto in blocchi: 0110 0111 1100 il messaggio verrà inviato come segue: 0110 0110 0111 0111 1100 1100 se viene ricevuta la sequenza 0110 0111 0111 manca… lezione 11 marzo 2021 viene contato il numero di bit1 presenti nei blocchi del messaggio se il blocco contiene un numero dispari di 1, viene aggiunto un bit di parità a 1 se il blocco contiene un numero pari di 1, viene aggiunto un bit di parità a 0 negli anni sono stati introdotti numerosi metodi di controllo dei dati tanto che ora i calcolatori sono in grado di capire se vi sono errori di trasmissione e in caso positivo di correggerli. L’informazione non numerica Codice: sequenza di simboli impiegati per rappresentare sinteticamente oggetti del mondo reale. Numero matricola, codice fiscale, codice catastale, partita IVA, codice ISBN, numero di telefono, codice IBAN. La comunicazione di informazioni codificate è possibile solo se mittente e destinatario concordano il tipo di codifica. Nei calcolatori tutti i codici sono costituiti da sequenze di bit. Codificare un testo: Esempio lettere alfabeto 25 quindi 2^5 A 00000 B 00001
Millenium Bug nel passaggio da 1999 a 2000, la data veniva codificata come 11/03/99, nel passaggio fra 31/12/99 a 01/01/00 ci fu un bug. Si sapeva del problema. Le ipotesi erano che qualsiasi calcolatore nel passaggio avrebbe subito dei blocchi o comunque dei problemi. In molti sono fermati, alcune compagnie aeree si sono fermate. Perché le date venivano codificate usando solo 2 cifre per l’anno e non 4? Perché il testo veniva codificato con 7 bit e non 21? Semplicemente perché le memorie erano meno potenti. Le prime codifiche erano succinte.