
















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 guida per eliminare le ambiguità nel formulare un problema informatica, individuare il risultato desiderato e gli obiettivi da raggiungere, evidenziare le regole da rispettare, i vincoli interni e esterni, i dati espliciti e impliciti, e eliminare i dettagli inutili e ambigui. Viene inoltre discusso sulla rappresentazione degli algoritmi attraverso linguaggio naturale, diagrammi a blocchi, pseudo codice e linguaggio di programmazione, e l'uso di strutture dati adeguate. Il documento inoltre tratta di criteri di classificazione dei dati, livelli del software, e diversi tipi di memoria come ROM e RAM.
Tipologia: Dispense
1 / 24
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!

















Il calcolatore come strumento per gestire informazione, acquisire dati (IN)e presentare, attuare soluzioni(OUT). Per definire un problema bisogna: Eliminare le ambiguità nella formulazione del problema Individuare il risultato che si vuole ottenere, gli obiettivi da raggiungere Evidenziare
Il calcolatore “capisce” le istruzioni che fanno parte del linguaggio macchina istruzioni primitive semplici. La soluzione si dice effettiva se l’esecutore è in grado di: interpretarla e compiere le azioni. Proprietà di un’azione elementare : Finitezza l’azione deve concludersi in un tempo finito. Osservabilità l’azione deve avere un effetto osservabile, cioè deve produrre qualcosa • Riproducibilità a partire dallo stesso stato iniziale, la stessa azione deve produrre sempre lo stesso risultato Proprietà degli algoritmi Correttezza L’algoritmo perviene alla soluzione del compito cui è preposto, senza difettare di alcun passo fondamentale Efficienza L’algoritmo perviene alla soluzione del problema usando la minima quantità di risorse fisiche Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani deve essere sintetico e intuitivo, e inoltre codificato in linguaggi informali o semi-formali (linguaggio naturale, diagrammi di flusso, …). Algoritmo formulato per essere eseguito automaticamente deve essere preciso ed eseguibile, e codificato in linguaggi comprensibili dagli esecutori automatici. Gli algoritmi sono parametrici:
Selezione semplice Selezione a due vie
effettuare notazione (con cui è possibile descrivere gli algoritmi.) attraverso questo strumento,e in relazione a questo esistono convenzioni diverse: Negazione not A Congiunzione A and Disgiunzione A or B Disgiunzione esclusiva A xor B Implicazione A → B (se ... allora) Doppia implicazione A ↔ B (se e solo se) Espressioni booleane Equivalenza – Due espressioni booleane sono equivalenti se hanno la medesima tavola di verità. Tautologia – Un’espressione booleana è una tautologia se è sempre vera. Contraddizione – Un’espressione booleana è una contraddizione se è sempre falsa. Linguaggio di Programmazione Ogni linguaggio di programmazione dispone di un insieme di “parole chiave” (keywords ). Ogni linguaggio è caratterizzato da una sintassi e da una semantica, complementari l’una con l’altra: la sua s intassi , cioè l’insieme delle regole che specificano come comporre istruzioni ben formate; la sua semantica , che di ogni istruzione ben formata specifica il significato, e quindi la successione delle operazioni che vengono compiute allorché l’istruzione viene eseguita In base all’astrazione si distinguono: Linguaggi di basso livello ( vicini all’hardware ): • I generazione: linguaggi macchina (sequenze di bit) • II generazione: linguaggi assemblativi (uso di codici mnemonici per le istruzioni) e Linguaggi di alto livello ( vicini all’utente ) Sono i linguaggi di terza generazione. Le istruzioni esprimono una serie di azioni. Il programma prima di essere eseguito deve essere tradotto in linguaggio macchina. Sono indipendenti dalla macchina : • III generazione: linguaggi imperativi e procedurali di uso generale • IV generazione: linguaggi per specifici ambiti applicativi • V generazione Il linguaggio macchina è direttamente eseguibile dall’elaboratore, senza nessuna traduzione. Le Istruzioni ed operandi relativi al programma in esecuzione sono caricati in memoria e quindi sono memorizzati in forma binaria. Il Vincolo è la conoscenza dei metodi di rappresentazione delle informazioni utilizzati. Il linguaggio Assembler: Le istruzioni corrispondono univocamente a quelle macchina, ma vengono espresse tramite nomi simbolici (parole chiave). Il programma prima di essere eseguito deve essere tradotto in linguaggio macchina (assemblatore). Vincolo : necessità di conoscere in dettaglio le caratteristiche della macchina (registri, dimensione dei dati, set di istruzioni). Anche semplici algoritmi implicano la specifica di molte istruzioni I traduttori sono programmi particolari che provvedono a convertire il codice di programmi scritti in un dato linguaggio di programmazione (sorgenti), nella corrispondente rappresentazione in linguaggio macchina (eseguibili). Due tipi di traduttori:
Compilatori – Accettano in ingresso l’intero programma e producono in uscita la rappresentazione dell'intero programma in linguaggio macchina. Per ogni programma da tradurre, lo schema viene percorso una volta sola prima dell’esecuzione. I nterpreti – Traducono ed eseguono direttamente ciascuna istruzione del programma sorgente, istruzione per istruzione. Lo schema viene attraversato tante volte quante sono le istruzioni che compongono il programma; ad ogni attivazione dell'interprete su una particolare istruzione, segue l’esecuzione dell’istruzione stessa
L' informazione permette in una situazione in cui si hanno almeno due occorrenze possibili di superare un'incertezza e risolvere un'alternativa, sostituendo il noto all'ignoto, il certo all'incerto. Un dato è una descrizione elementare, spesso codificata, di una cosa, di una transazione, di un avvenimento o di altro. Dal punto di vista informatico : il dato è un elemento conosciuto, un’informazione grezza o elementare ed è solitamente costituito da simboli che devono essere elaborati, mentre l’informazione è un elemento, che deriva dall’elaborazione di più dati e che permette di venire a conoscenza di qualcosa. La stessa informazione può essere rappresentata in modi diversi. Una stessa rappresentazione può dare informazioni diverse a seconda del contesto o del destinatario. Il dato è “portato da” o “trasmesso su” o “memorizzato in” o “contenuto in” qualcosa. Ogni supporto fisico ha le sue caratteristiche in quanto supporto per i dati. Alcuni supporti sono particolarmente adatti alla trasmissione dei dati, ma non alla loro memorizzazione. In generale, si può chiamare codifica l’operazione con cui il dato viene scritto su un supporto fisico e decodifica l’operazione con cui il dato viene letto da un supporto fisico. BIT : elemento atomico (binario) che codifica un dato corrispondente ai valori logici Falso o Vero: può essere rappresentato da un dispositivo che assume due stati. Quanti oggetti posso codificare con k bit? 1 bit? (0, 1) 2 oggetti → 2 bit? (00, 01, 10, 11) 4 oggetti → 3 bit? (000, 001, 010, …, 111) 8 oggetti. BYTE : combinazione di 8 bit. Può rappresentare un carattere (lettera, numero o simbolo tipografico) tra 256 divers
codice operativo ( indica il tipo di operazione, e.g., la somma ) (la provenienza degli) operandi ( e.g., quali numeri sommare ) (la destinazione del) risultato Le istruzioni sono rappresentate come sequenze di bit. Una singola istruzione può richiedere più cicli. Le moderne CPU hanno più core (unità di calcolo) attraverso cui è possibile eseguire miliardi di operazioni aritmetiche al secondo. L’unità di misura delle prestazioni sono i Giga FLOPS. I supercomputer hanno ormai prestazioni nell’ordine dei Peta FLOPS.
La Memoria Principale è acceduta direttamente dalla CPU e non è permanente. La Memoria Secondaria è acceduta tramite il sottosistema di input/output ed è permanente. Diversi obiettivi : (P) Supporto alla CPU : deve fornire alla CPU dati e istruzioni il più rapidamente possibile (S) Archivio : deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità anche dopo elevati periodi di tempo Diverse esigenze : (P) velocità per il supporto alla CPU (S) non volatilità ed elevata capacità Diverse tecnologie : (P) elettronica : veloce, ma costosa e dinamica (volatile) (S) stato solido , magnetica e ottica: economica, ma lenta Memoria Centrale : Memoria ad accesso casuale ( RAM ). Casuale va inteso nel senso che il tempo di accesso non dipende dalla locazione. Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Tecnologia elettronica veloce, volatile e costosa Due varianti: ROM : elettronica, permanente ma solo lettura Flash : elettronica, permanente e riscrivibile Differenze tra ROM e RAM Random Access Memory termine in genere associato alla memoria centrale prestazioni location-independent Volatile: conserva dati e istruzioni solo se alimentata capacità in MB (MegaByte) o GB (GigaByte) Read-Only Memory contiene parti essenziali del software di sistema quali il BIOS (Basic Input/Output System) il POST (Power On Self Test) particolari varianti tecnologiche sono: • PROM, EPROM, EEPROM, FLASH
Indirizzi di Memoria I bit nelle memorie sono raggruppati in celle: tutte le celle sono formate dallo stesso numero di bit; una cella composta da k bit, è in grado di contenere una qualunque tra 2k combinazioni diverse di bit. Ogni cella ha un indirizzo che Serve per accedere al contenuto della cella; in una memoria con N celle gli indirizzi vanno da 0 a N–1. La cella è l unità indirizzabile più piccola. In quasi tutti i calcolatori è di 8 bit (un byte). I byte vengono raggruppati in parole. Memoria vs. CPU Le CPU sono sempre state più veloci delle memorie La miniaturizzazione ha consentito alle CPU di raggiungere velocità di esecuzione sempre più elevate Più i componenti sono piccoli, più alta può essere la frequenza delle operazioni nelle memorie è aumentata la capacità più che la velocità. Alla fine degli anni 80 un Personal Computer aveva 1 Megabyte di RAM. Oggi un laptop ha almeno 4 Gigabyte (4000 volte di più) i tempi di accesso (CAS latency) però sono calati molto meno: da circa 100 nanosecondi a circa 10 È possibile inserire memorie molto più veloci nello stesso chip della CPU, ma le dimensioni sono piccole ed i costi molto elevati. Gerarchia di Memoria Tipicamente costituita da:
Cache (qualche MegaByte)
Memoria principale (alcuni-decine di GigaByte)
Dischi (da centinaia di GigaByte a qualche TeraByte)
Nastri magnetici e dischi ottici (da GB a TB) Quando ci si sposta verso il basso nella gerarchia: aumenta il tempo di accesso; aumenta la capacità di memorizzazione; diminuisce costo per byte. Memorie disponibili : Memorie veloci, integrate nello stesso chip della CPU, ma costose: chiamiamole MPV (per Memorie Piccole e Veloci). Memorie di grande capacità, relativamente lente, economiche ed accessibili tramite il bus: Capacità circa 100 volte superiori; Tempi di accesso circa 10 volte superiori. Chiamiamole MGL (per Memorie Grandi e Lente ). Memoria secondaria: Supporti di memorizzazione - Dischi magnetici → disco fisso (Hard-disk, capacità da poche decine a migliaia di GigaByte) – dischi rimovibili (capacità come gli HD) – Combinazione di parti meccaniche ed elettroniche - Dischi ottici → CD-ROM (Compact Disk a sola lettura, capacità tipica 650 Mbytes), CD-R (WORM), CD-RW (RAM) – DVD (Digital Versatile Disk, capacità min 4.7 Gbyte, (1lato/ strato) film full motion a schermo largo, 3 canali audio) - Unità a stato solido → non è un disco, capacità fino a qualche centinaio di GigaByte. – Fondamentalmente una memoria Flash (di tipo Nand) – Tipiche di smartphone, tablet, laptop di fascia alta Memorie a Stato Solido (SSD): L’unità a stato solido o drive a stato solido, in sigla SSD (solid- state drive), utilizza memoria Flash (di tipo Nand) per l'archiviazione di massa dei dati. La principale differenza con i classici dischi è la possibilità di memorizzare in modo non volatile grandi quantità di dati, senza utilizzare parti meccaniche Oltre alla memoria in sé, un'unità disco SSD dispone di diversi componenti di supporto alle operazioni: controller (microprocessore),
Compiti del sistema operativo Gestire le risorse del computer Gestire l'interazione tra utente e programmi Regolare il multitasking e il multithreading Gestire la contemporaneità di più utenti e il loro accesso alle risorse. Distribuire le operazioni tra più processori. Avvertire l'utente di eventuali errori, e impedire che facciano perdere dati e informazioni. Gestire l'alimentazione elettrica (ad es. nei portatili) Categorie di sistemi operativi S.O. per i desktop – Meno potenti e affidabili di tutti, sono però i più diffusi S.O. per i server – Sicuri e portabili – sono pensati per la gestione multitasking e multithreading di applicazioni mission-critical S.O. per i mainframe – Open MVS, VMS – software proprietario in genere – Ogni azienda ha prodotto un suo s.o., rendendo la comunicazione tra elaboratori molto complessa S.O. per palmari e tascabili – Interazione con stilo e tastiera virtuale S.O. incorporati - Per elettrodomestici e piccoli apparecchi Gestione dei file: I nomi dei file servono alla loro esatta identificazione. I percorsi sono invece necessari per ritrovare i file nei vari supporti di memorizzazione. Gestione delle cartelle: Le cartelle rappresentano le divisioni logiche dei supporti di memorizzazione: senza di esse, si avrebbe a che fare con un unico immenso spazio nel quale tutti i file sarebbero dispersi. La formattazione prepara il supporto a ricevere i dati, suddividendolo in spazi (tracce, settori, cluster) idonei a ricevere i dati. La deframmentazione: Non tutti i file sono memorizzati in spazi contigui, e il sistema operativo è costretto a un superlavoro per recuperarne tutte le parti sparpagliate sul supporto. La deframmentazione evita questo problema. Driver fisico : Controlla i meccanismi fisici dell’ unità di lettura dei dispositivi esterni di I/O (device controller). Interagisce con la CPU attraverso i registri. Utilizza una memoria dedicata alle operazioni I/O (Memoria ad accesso diretto). Driver logico: gestisce gli errori in lettura/scrittura; – gestisce i nomi/indirizzi del device driver; – gestisce le code di attesa. Editoria elettronica offline e online Il BIOS si rapporta direttamente con l'hardware del computer, fornendo informazioni al sistema operativo; i programmi applicativi gestiscono l'hardware solo attraverso il sistema operativo stesso
Editoria off line – Prodotti editoriali multimediali su un supporto autonomo dalla rete (CD, DVD., ecc.) Editoria on line – Tutto quanto è usufruibile dal web come periodici, blog, diari Ipertesto ed e-book -Blocchi di testo uniti tra loro in maniera non lineare, in modo da non mostrare un solo percorso di lettura tra loro I fogli elettronici La griglia di celle ordinate per righe e colonne è il documento usato dai programmi di foglio elettronico ( spreadsheet ). I dati sono inseriti nelle celle , che possono ospitare anche il risultato di operazioni matematiche e logiche. A loro volta, le celle che ospitano un risultato possono essere usate in altri calcoli. Le formule permettono ai fogli elettronici di svolgere calcoli immediati, non appena l'utente inserisce i valori nelle celle di riferimento. Potendo contenere dati di qualunque tipo, i comandi di formato delle celle consentono di presentare i dati, numerici e testuali, in modi differenti per aspetto, allineamento, colore, valori di riferimento. Le presentazioni multimediali Questo tipo di documento riunisce dati di formati differenti, provenienti da applicazioni diverse, a formare un insieme di informazioni ed effetti visivi e sonori di grande efficacia. Le presentazioni possono differenziarsi in non interattive , perché il flusso di informazioni non può essere alterato, e interattive , nelle quali l'utente è chiamato a decidere cosa e come vedere o leggere secondo diversi percorsi. Le Licenza software La licenza in ambito informatico è il contratto che può accompagnare un prodotto software. Tale contratto specifica le modalità con cui l'utente può usare tale prodotto, garantendo dei diritti ed imponendo obblighi. La licenza è imposta da chi detiene il copyright sul prodotto software. La sua validità dipende dalla presenza del diritto d'autore, questo perché solo chi detiene il copyright ha il diritto di far rispettare in ogni sede la licenza stessa. Shareware è una tipologia di licenza software molto popolare. Vengono distribuiti sotto tale licenza in genere piccoli programmi facilmente scaricabili via Internet. Il software sotto tale licenza può essere liberamente ridistribuito e utilizzato per un periodo di tempo di prova variabile (generalmente 30 giorni). Dopodiché è necessario registrare il software presso la casa produttrice pagandone il corrispettivo. Il termine freeware indica un software che viene distribuito in modo gratuito. Il freeware è distribuito indifferentemente con o senza codice sorgente, a totale discrezione dell'autore e senza alcun obbligo al riguardo. È sottoposto esplicitamente ad una licenza che ne permette la redistribuzione gratuita. Il software freeware viene concesso in uso senza alcun corrispettivo , ed è liberamente duplicabile e distribuibile nelle forme ritenute piu idonee, con pochissime eccezioni. La licenza GNU è intesa a garantire lo scambio e la condivisione di software libero. GNU è progettata per assicurare che ognuno possa: avere la libertà di utilizzare e distribuire copie di sw libero, ricevere il codice sorgente, cambiare e migliorare il codice sorgente secondo le proprie necessità, redistribuire gratuitamente, farsi pagare per i servizi ed i prodotti realizzati utilizzando il sw libero. Per proteggere i diritti d’autore e dell’utente la GNU : Applica restrizioni che vietano ad ognuno di negare i suddetti diritti o di chiedere all’utente di soprassedere sui propri diritti oppure Applica restrizioni che determinano la responsabilità legale per coloro che distribuiscono le copie o le modificano.
Reti di calcolatori vs Sistemi distribuiti Rete di calcolatori insieme di calcolatori autonomi tra loro collegati mediante una rete di comunicazione; gli utenti in genere sanno se le risorse che stanno utilizzando sono locali o remote; i calcolatori connessi alla rete mantengono un certo grado di indipendenza: in caso di guasto o indisponibilità della rete ogni calcolatore continua a mantenere gran parte delle sue funzionalità. Sistemi distribuiti gli utenti non hanno visibilità sull’architettura del sistema; il sistema si presenta come un sistema omogeneo, progettato per eseguire un’applicazione particolare (e.g., Bancomat) In effetti, si dovrebbe parlare di applicazioni distribuite piuttosto che di sistemi distribuiti. Sistemi informativi e Sistemi informatici Sistema informativo è costituito dall'insieme delle informazioni utilizzate, prodotte e trasformate da un'azienda durante l'esecuzione dei processi aziendali dalle modalità in cui esse sono gestite dalle risorse sia umane sia tecnologiche coinvolte. Tutto questo partendo da dati di carattere aziendale o anche esterni all’azienda. Sistema informatico indica la porzione di sistema informativo che fa uso di tecnologie informatiche e automazione. Tassonomia delle reti: La dimensione delle reti Reti locali (Local Area Network, LAN ) di limitata estensione che collegano dispositivi collocati nello stesso edificio o in edifici adiacenti. ampia larghezza di banda modularità e facilità di connessione notevole affidabilità dell’intero sistema espandibilità e flessibilità nella modifica delle dimensioni della rete economicità; ogni stazione è collegata alla rete tramite una scheda di interfaccia di rete (NIC). La tecnologia più comune: Ethernet Reti metropolitane (Metropolitan Area Network, MAN ) collegano dispositivi collocati nella stessa area urbana. Reti geografiche (Wide Area Network, WAN ) collegano dispositivi diffusi in unampia area geografica Reti di reti (Internetwork), collegano più reti differenti (a livello sia hardware sia software) mediante opportuni elementi di interfaccia, che si possono estendere letteralmente ovunque Servizi vs. velocità Bassissima velocità – telemetria, telecontrollo, teleallarmi; Bassa velocità – fonia, fax, POS (point of sale), transazioni remote (come prenotazione di tratte aeree, …); Media velocità – audio Hi-Fi, video a bassa risoluzione, fax a elevata risoluzione;
Alta velocità – interconnessione di reti di calcolatori, trasferimento di file; Altissima velocità – distribuzione di segnali video, video on demand, TV ad alta definizione (HDTV), videoconferenze, videoteche. I mezzi di trasmissione Mezzi fisici utilizzati per la trasmissione: Mezzi guidati : linee fisiche che portano il segnale fino al ricevitore – supportano la trasmissione di segnali elettrici oppure ottici Mezzi non guidati : irradiazione di segnali elettromagnetici nello spazio, in modo più o meno diretto; – varie frequenze di trasmissione Cosa influenza la trasmissione?
- La capacità del canale (chiamata anche larghezza di banda , bandwidth) – Massima quantità di dati che può essere trasmessa in un’unità di tempo. Si misura, in genere, in MegaBit al secondo. **- Il grado di attenuazione del segnale
PageRank L’algoritmo PageRank è il cuore del motore di ricerca Google. PageRank serve a ordinare i risultati. Per calcolare i valori delle pagine, guarda solo la struttura di grafo delle pagine Web (WebGraph): ogni pagina è un nodo, ogni link tra le pagine è un arco diretto. Inizialmente ogni pagina ha un valore di PageRank, detto il “peso” della pagina, wi pari a 1. Si ripete la seguente procedura finchè i valori convergono. Ogni pagina divide il suo peso tra le pagine che punta. Poi si effettua la “Normalizzazione”, ovvero divido tutti i pesi per il peso massimo tra tutte le pagine.
In informatica con il termine inglese cloud computing si indica un insieme di tecnologie che permettono, tipicamente sotto forma di un servizio, di memorizzare/archiviare e/o elaborare dati (tramite CPU o software) grazie all'utilizzo di risorse hardware/software distribuite e virtualizzate in Rete. Caratteristiche On demand self-service: gli utenti possono aumentare la memoria e la potenza di processione come desiderano. Board network access: tutti i dispositivi possono accedere a dati e applicazioni Multi-tenancy: i clienti condividono risorse di computer Rapid elasticity: conservazione, larghezza di banda, e capacità del computer possono essere aumentati o ridotte immediatamente, consentendo una scalabilità ottimale Measured services: i clienti possono misurare e controllare le transazioni e l’uso delle risorse
Ci sono diverse tipologie di Cloud:
Attacchi alla sicurezza: compromettono la sicurezza delle informazioni. Si dividono in: Attacchi passivi, che hanno l’obiettivo di leggere i contenuti dei messaggi, monitorare il traffico, non alterano i dati e sono difficili da individuare; e Attacchi attivi come per esempio le impersonificazioni (masquerade), replay, denial of service, e sono difficili da prevenire ma abbastanza facili da individuare. Canali di attacco:
condivisa deve avvenire attraverso un canale sicuro, Per ogni coppia di interlocutori è necessaria una chiave diversa (quindi n(n-1)/2 chiavi per n utenti), L’uso ripetuto della stessa chiave è poco sicuro Crittografia Asimmetrica (detta anche a chiave pubblica/privata): si usa una coppia di chiavi distinte ma legate fra loro. Gli algoritmi sono più lenti e La gestione delle chiavi è più semplice, inoltre Permette di avere servizi di non ripudio. Firma autografa: Viene creata manualmente, viene verificata manualmente e non è falsificabile. Non è ripudiabile (perizia calligrafica, metodo sicuro?) e si utilizza mediante Apposizione sul documento (non trasferibile). Malware (Malicious software) Classificazione in base alla necessità di un programma ospite Parassiti : Virus, bombe logiche, backdoors Indipendenti : worm Classificazione in base alla capacità di autoreplicarsi Programmi attivati da un trigger : bombe logiche, backdoor Programmi che si autoreplicano : virus. Worm Un viru s informatico è un frammento di programma scritto per eseguire operazioni (in genere dannose…) senza il consenso o la consapevolezza dell'utente. Un virus è definito da due criteri: la necessità di un programma ospite poiché il virus inserisce il proprio codice nel file che contiene un altro programma eseguibile. E la Capacità di autoreplica. I worm sono programmi che si replicano da sistema a sistema senza servirsi di un file ospite. Ciò li distingue dai virus, che si diffondono tramite file ospiti infetti. Anche se dei worm possono trovarsi all'interno di altri file. Un Trojan (horse) è un codice malevolo, le cui funzionalità sono nascoste all'interno di un programma apparentemente utile; quando viene eseguito, il Trojan provoca danni (perdita o furto di dati). È l'utente stesso che installando ed eseguendo un certo programma (allegati email, applicazione web), inconsapevolmente, installa ed esegue anche il codice trojan nascosto. Una distinzione molto importante fra Trojan e virus è che i Trojan non si replicano automaticamente. Il phishing è un tipo di truffa via Internet attraverso la quale un aggressore cerca di ingannare la vittima convincendola a fornire dati personali sensibili. Si tratta di una attività illegale che sfrutta tecniche di ingegneria sociale: attraverso email, un malintenzionato cerca di ottenere dalle vittime credenziali di accesso (password, numero di carta di credito, etc.) o altre informazioni. Spesso il messaggio contiene un rimando ad una pagina web che imita perfettamente la pagina web ufficiale (per es. di una banca) per convincere l’utente ad inserire le proprie credenziali. Spamming è l'invio di messaggi indesiderati (generalmente commerciali o offensivi). Il canale più diffuso è costituito da messaggi di posta elettronica. Il costo per chi invia è irrisorio anche per grandi quantità di destinatari (anche milioni di invii al giorno). Gli spammers si procurano le liste di destinatari soprattutto attraverso il setaccio di siti web per stringhe di testo che assomigliano a indirizzi o database trafugati Un firewall è un dispositivo di sicurezza che controlla l’ingresso e l’uscita del traffico da una rete (aziendale o privata). Il firewall si interpone tra la rete che si vuole proteggere e la rete esterna (Internet). Il firewall può filtrare (bloccare) il traffico sulla base di indirizzo IP, tipo di protocollo, o numero di porta. Limitazioni dei firewall : Un firewall non può proteggere da attacchi che lo
bypassano (se ci sono altri canali di accesso alla rete, per esempio accessi wireless). Un firewall non può proteggere pienamente da utenti interni che cooperano con l’attacco. Un firewall non può proteggere da attacchi che si sviluppano internamente. Accesso non autorizzato: Un intruso (hacker) può accedere in maniera non autorizzata ad un computer o ad una rete. Si distinguono tre casi:
Basi di Dati(Data Base) : le caratteristiche che li contraddistinguono sono: Collezione (organizzata, persistente, condivisa, in genere di notevoli dimensioni e varietà) di dati Una sola rappresentazione che evita ridondanze, disallineamenti e inutili ripetizioni di dati e operazioni Maggiore controllo (concorrenza su dati condivisi e rispetto vincoli di integrità) Accesso gestito e regolato da un sistema di gestione della base dati (DBMS) che assicura: efficienza, usabilità, riservatezza e affidabilità dei dati (in generale tramite un “database server” accessibile in un ambiente distribuito in rete a più stazioni di lavoro client) Data Base Management System(DBMS): Sistema (software) in grado di gestire collezioni di dati che siano: di grandi dimensioni , i.e., (molto) maggiori (TeraByte 1012, PetaByte 1015) della memoria RAM dei sistemi di calcolo utilizzati persistenti : mantenute alle fine delle singole esecuzioni dei programmi che le utilizzano (i.e., memoria secondaria)