Scarica Fondamenti di informatica e più Dispense in PDF di Fondamenti di informatica solo su Docsity! Fondamenti di Informatica Un computer è detto anche calcolatore, elaboratore oppure ordinatore ed è un dispositivo fisico che implementa il funzionamento di una macchina di TURING. Possiedono tutti 4 cose: - Un’unità centrale di elaborazione (CPU) - Una memoria - Un dispositivo d’ingresso/uscita - Un canale perché possano dialogare tra loro, in accordo all’architettura di von Neumann Alan Turing introdusse la macchina ideale ed il test che portano il suo nome. Un calcolatore elettronico che nasce per eseguire programmi; il programma più importante per un CE è il sistema operativo che si occupa di gestire la macchina, le sue risorse e le altre applicazioni che vi sono eseguite. Fornisce all’utente un’interfaccia per inserire d eseguire gli altri programmi. Questa parti immateriali vengono chiamate software in contrapposizione all’hardware che è la parte fisica degli elaboratori. La macchina di VON NEUMANN è uno schema di progettazione di calcolatori elettronici che prende il nome dal matematico in questione che fu sviluppato per il sistema IAS di macchine. Lo schema di basa su cinque componenti fondamentali: - CPU - UNITA’ DI MEMORIA intesa come memoria di lavoro - UNITA’ DI INPUT tramite la quale i dati vengono inseriti nel calcolatore per l’elaborazione - UNITA’ DI OUTPUT necessaria affinché i dati elaborati possano esser restituiti all’operatore - BUS , un canale che collega tutti i componenti tra loro Vannevar Bush : memex (memory expansion) Ted Nelson : hypertext e interfaccia utente semplice Moore: prima e seconda legge di Moore sulla complessità di un microcircuito. Doug Englebart : primo uso del mouse nel 1968 Tim Berners Lee : world wide web (1989) HTML E HTTP (1989-1990) Larry Page: google (1998) Mark Zuckerberg: Facebook 2004 La PIRAMIDE DIKW detta anche gerarchia dell’informazione definisce un modello di rappresentazione delle relazioni tra saggezza-esperienza, conoscenza, informazioni e dati. Un dato è una rappresentazione codificata da un segno/simbolo/segnale di un’entità ed i computer memorizzano ed elaborano dati, che rappresentano numeri, lettere, immagini, suoni, video ai quali viene attribuito un significato, affinché rappresentino una porzione di realtà. Un’informazione è un insieme di uno più dati che si possiede e che serve ad acquisire una conoscenza. Un’informazione è sempre legata ad un codice che serve a rappresentarla, ad un elemento che la contiene come un messaggio ed un mezzo attraverso il quale può essere trasmessa (media). L’informazione può essere: analogica o digitale. La maggior parte delle grandezze fisiche sono di tipo continuo. I dati in forma analogica sono valori di una grandezza fisica rappresenta in un insieme continuo; i dati in forma digitale sono rappresentati in un insieme di dimensioni finite. I dati si possono suddividere in diverse categorie o tipi: - Dati semplici come un numero, un carattere , una parola o un segno - Dati complessi come una enumerazione di più dati semplici o complessi organizzati in struttura. Tipicamente l’informazione è definita in termini di dati e la conoscenza in termini di informazioni scambiate attraverso media. L’unità di misura dell’informazione è il bit, definito come la quantità minima di informazione che serve a discernere tra due possibili alternative ed è una cifra BINARIA, ovvero uno dei due simboli del sistema numerico binario, classicamente detti zero “0” e uno “1”. Come codifica binaria, il Bit rappresenta l’unità di definizione di uno stato logico o unità elementare dell’informazione trattata da un elaboratore. Un modo conveniente di raggruppare i bit è il BYTE, composto da una sequenza di 8 bit. Siccome il byte è formato da 8 bit, esso è in grado di assumere 28 = 256 possibili stati (da 0 a 255). I multipli dell’unità di misura bit sono importanti nelle misure delle trasmissioni dati digitali come la velocità di download e upload in rete mentre i multipli delle unità di misura byte sono importanti nel ridimensionamento dei dispositivi di archiviazione dati. I formati di videoscrittura più usati: RTF ( linguaggio di descrizione interpiattaforma con un numero limitato di parametri di descrizione) POSTSCRIPT (linguaggio standard di descrizione della pagina in grado di codificare anche informazioni grafiche) PDF ( formato sviluppato nel 1993 per ampliare la qualità e la portabilità del linguaggio postscript con funzioni di ricerca e navigazione) DOC/DOCX ( linguaggio proprietario in grado di codificare molte informazioni ma presenta scarsa compatibilità con altri software) LATEX (diffuso in ambito scientifico e tecnico per espressioni matematiche) HTML (linguaggio di descrizione standard, multipiattaforma in grado di codificare anche collegamenti ipertestuali) IMMAGINE DIGITALE VETTORIALE: generata al computer mediante formule matematiche e descritta mediante un insieme di primitive geometriche RASTER (bitmap): l’immagine è formata da una griglia di pixel ovvero l’elemento più piccolo che costituisce l’immagine. Dopo la lavorazione le immagini vettoriali vengono esportate o convertite in formato raster per poterle pubblicare o utilizzare in programmi terzi. I monitor dei dispositivi che utilizziamo sono strutturati a griglia di pixel proprio come le immagini raster. DPI (DOTS PER INCH9) • Numero di punti per pollice; • Misura la densità di punti all’interno di un determinato spazio; • Si fa riferimento ai punti di stampa per digitalizzare un’immagine. PPI (PIXEL PER INCH) • Numero di pixel per pollice • È il rapporto tra i pixel di un’immagine e i pollici della diagonale del monitor • Si ragiona in ppi quando lavoriamo in un ambiente digitale per poi passare a DPI nel momento della stampa PROFONDITA’ COLORE è il numero di bit usati per rappresentare ik colore di un singolo pixel in un’immagine. (bbp: bit per pixel) Maggiore è il numero di bit, maggiore sarà la gamma di tonalità che si possono rappresentare. Modello colore: è il modello matematico che permette la rappresentazione dei colori nel mondo digitale = RGB E CYMK RGB: • Modello colore di tipo additivo • Tricomia • Colori ricavati dalla somma delle luminosità dei tre canali • Progettato per la visione su monitor CYMK: • Modello colore di tipo sottattivo • Clan, magenta, yellow and keyblack • Colori ricavati dalla sottrazione dei 4 colori primari; • Progettato per la stampa fotografica Spazio colore: all’interno di un modello colore troviamo diversi tipi di spazio colore, ossia la gamma limitata di colori che sono rappresentabili a seconda della funzione utilizzata. Profilo colore ICC: ogni dispositivo che registra o produce immagini può avere un profilo ICC associato, che descrive il modo in cui i colori sono rappresentati in un determinato spazio dei colori il cui scopo pratico è quello di consentire l’applicazione di un processo di gestione del colore che preservi i colori nel passaggio da uno spazio colore sorgente ad uno spazio colore destinazione. Compressione: per ridurre le dimensioni dei file le immagini vengono compresse: • Compressione Lossless (compressione senza perdita) • Compressione lossy (compressione con poca perdita) • Non compresso FORMATI: • Bmp (non compresso) • Raw (npn compresso) • Png (possiblità di salvarlo sia compresso che non) • Tga (senza perdita) • Tiff (diversi tipi di compressione) • Gif (senza perdita fino a 256 colori, con oltre) • Jpg (con perdita) VIDEO DIGITALE E RISOLUZIONE Il pixel consiste nell’elemento più piccolo che costituisce l’immagine. Le differenti risoluzioni video sono: • SD (standard definition 720x576) di tv e dvd • HD con 1280x720 per i cani hdtv • FULL HD con 1920x 1080 per il Bluray • UHD 3840x2160 • 4K 4096x2160 • 8K La RISOLUZIONE CROMATICA definisce quanti e quali colori sono usati per rappresentare l’immagine Il SUBSAMPLING consiste nel sottocampionamento in cui le immagini vengono codificate riservando maggiore risoluzione alla LUMINANZA rispetto all CROMINANZA. AUDIO DIGITALE Il CAMPIONAMENTO avviene prelevando dei campioni del segnale originario a intervalli di tempo regolari nella trasformazione del segnale da analogico a digitale. La FREQUENZA DI CAMPIONAMENTO è la misura del numero di volte al secondo in cui il segnale viene campionato e memorizzato in forma digitale. (hertz) Per convertire il segnale analogico in forma binaria, ovvero digitale, è necessaria l’operazione di quantizzazione che approssima il valore reale con un valore quantizzato. Questa approssimazione introduce un errore chiamato ERRORE DI QUANTIZZAZIONE. Per ridurre le dimensioni, il file audio viene compresso così come accade per le immagini digitali con gli stessi metodi di compressione LOSSLESS, LOSSY E NON COMPRESSO. CODEC: SENZA COMPRESSIONE: • AIFF • WAV COMPRESSIONE LOSSLESS • APPLE LOSSLESS ENCODING • FLAC • IFF COMPRESSIONE LOSSY • AAC • DOLBY DIGITAL • MP3 • REALAUDIO • WINDOWS MEDIA AUDIO CAMPIONAMENTO(hertz) + DURATA + COMPRESSIONE(bitrate) = PESO/ QUALITA’ L’ MP3 è l’algoritmo di compressione di tipo LOSSY, che elimina dai file audio determinate informazioni che non sono necessarie (come le frequenze non udibili dall’orecchio umano). Il MIDI è uno standard creato per lo scambio di dati fra strumenti musicali elettronici a prescindere dalla marca e dal modello. MIDI VS WAVEFORM • In un file midi sono memorizzati solo dei segnali come una nota premuta; • I file MIDI sono molto più piccoli dei file WAVEFORM anche da compressi; • Dal midi si può ricostruire esattamente uno spartito • I file midi possono essere modificati nota per nota • E suona in modo diverso a seconda dell’hardware e del software di riproduzione – Architetture a 64 bit = la parola (word) è di 8 byte CAPACITA’ DELLA MEMORIA • La capacità di una memoria si misura in byte, ma per convenzione si usano le equivalenze approssimate tra le potenze decimali e binarie • Il tempo di accesso di una locazione di memoria e dell’ordine delle decine di nanosecondi. • La memoria centrale ( NON è destinata a contenere grandi moli di dati che devono essere conservati in modo permanente) di un calcolatore contiene tre tipi di memoria elettronica – RAM • Riscrivibile • Casuale • Volatile • - ROM • Non riscrivibile • Casuale • Non volatile – CACHE (il tipo di memoria di transito veloce tra CPU e memoria principale, caratterizzata in livelli a seconda del rapporto dimensione/velocità/costo.) LE UNITA’ PERIFERICHE • Le unità periferiche permettono al calcolatore – La comunicazione con il mondo esterno. – Il mantenimento di grandi quantità di informazioni non gestibili dalla memoria centrale. • Le unità periferiche si dividono in tre classi – Ingresso (Input) e permettono al calcolatore di ricevere informazioni dal mondo esterno e sono basate su sensori o parti elettroniche (mouse, tastiera, touchpad, scanner, microfono) – Uscita (Output) permettono al calcolatore di inviare informazioni all’esterno e sono basate su parte elettronica per mantenere l’informazione, per codificarla o per segnalare lo stato dell’unità oppure sono basate su attuatori che trasformano ill segnale elettrico digitale in posizione, temperatura e luminosità. (monitor, stampante, casse acustiche) – Input/Output possono essere utilizzate indipendentemente come ingresso e uscita (hard- disk, usb, cdrom. Le unità (drive) a dischi magnetici (HDD) sono unità di I/O che usano la polarizzazione di un materiale ferromagnetico (ossido di ferro) depositato su un supporto inerte. – Riscrivibili – Non volatili • Le unità (drive) disco a stato solido (SSD) sono memoria di massa basate su semiconduttori (memorie flash) – Riscrivibili – Non volatili Il tempo di accesso per accedere ai dati di un settore non è costante, ma è relativamente basso (ordine dei millisecondi). Tempo di seek (posizionamento sul cilindro) – Tempo di assestamento (posizione stabile) – Tempo di latenza (posizionamento sul settore) – Tempo di trasferimento (scrittura o lettura dei dati) Gli hard disk sono più veloci delle unità a floppy disk – Si mantengono sempre in rotazione. – Possono ruotare a velocità più elevate in quanto le testine non sono a contatto con la superficie dei dischi. La superficie originaria di un disco magnetico è una superficie completamente smagnetizzata. • L’operazione di formattazione inizializza un disco magnetico rendendolo capace di memorizzare dei dati. – Formattazione fisica; – Formattazione logica. • L’operazione di formattazione è un’operazione distruttiva, nel senso che si ha la perdita totale dei dati pre-esistenti. • Formattazione fisica inserisce sul disco tutte le informazione necessarie per individuare le tracce ed i settori. • Formattazione logica organizza lo spazio fisico ( i settori) del disco in archivi (il cosiddetto file system); crea tabelle contenenti informazioni relative agli archivi. • La formattazione logica è legata al sistema operativo con cui si lavora (ogni sistema operativo ha un proprio file system). GERARCHIE DI MEMORIA La memoria a struttura gerarchica è un sistema per categorizzare i diversi tipi di memoria sulla base del compromesso tra costo (dollari per megabyte) e prestazioni (tempo di accesso in nanosecondi) – Più veloce e più costose nella parte superiore, più lente e meno costose nella parte inferiore della gerarchia • Registri • Cache L1 • Cache L2 • Memoria Principale • Storage secondario e terziario (CD, DVD e floppy disk) • La Memoria principale è la memoria di livello più basso in grado di essere referenziata direttamente dal processore • È volatile - perde il suo contenuto quando al sistema manca alimentazione elettrica Registri e Cache – Rappresentano la memoria più veloce e costosa, lavorano alla stessa frequenza del processore (fanno parte della CPU) e sono molto vicini alla ALU all’interno del chip integrato (contengono i dati di utilizzo immediato) • Cache – Sono memorie di transito veloce tra CPU e Memoria principale e sono categorizzate in livelli a seconda del rapporto dimensione/velocità/costo • L1 poche decine di KB, integrate, velocissime • L2 da alcune centinaia di KB ai MB, veloci, esterne alla CPU • L3 molto grandi, presenti nelle architetture multiprocessori La main memory (memoria principale) è realizzata con componenti di memoria volatili in tecnologia random access memory (RAM), in italiano “memorie ad accesso diretto” (accesso casuale sta ad indicare che il processore può accedere qualsiasi locazione della RAM con lo stesso tempo di accesso, contrapposto quindi ad “accesso sequenziale” tipico dei nastri) I moduli di memoria RAM sono suddivisi in: – RAM Dinamiche (DRAM) – richiedono un circuito di refresh per evitare la perdita di memorizzazione dei dati – RAM Statiche (SRAM) – non richiedono il circuito di refresh • E sono caratterizzati da: – Tempo di accesso (in nanosecondi) – La frequenza di funzionamento (in MHz) – Larghezza di banda (bandwidth) = la quantità di dati che possono essere trasferiti dalla memoria nell’unità di tempo (N.B. se il bus permette 2 trasferimenti per ciclo di clock si parla di Double Data Rate, da cui le memorie DDR = il tipo di memorie a semiconduttore molto veloci, esterne al microprocessore, con una lerghezza di bandain grado di trasefrire grandi moli di dati dell'unità di tempo. DISPOSITIVI DI MEMORIZZAZIONE SECONDARIA I “secondary storage” (tipicamente i dischi fissi o hard disk drive - HDD o solid state drive - SSD) memorizzano grandi quantità di dati in modo persistente e a basso costo. • Il tempo di accesso di un disco fisso HDD è molto inferiore rispetto a quello della memoria principale (ordine dei millisecondi, anche in presenza di memorie cache nei controller) a causa di: – Velocità di rotazione dei cilindri negli HDD (in giri al minuto – rpm) – Movimenti meccanici per il posizionamento corretto delle testine di lettura/scrittura (heads) – Latenza rotazionale – tempo di passaggio sul corretto settore una volta posizionata la testina sulla traccia – Tempo di trasferimento • I dispositivi di memorizzazione secondaria sono esempi di dispositivi di I/O a blocchi in quanto trasferiscono sempre dati in quantità fisse (ad es. 512 Byte o 4 Kbyte) per aumentare la «larghezza di banda» (bandwidth). • I dati devono essere caricati nei registri prima che un processore possa operare su di essi • La lunghezza delle Istruzioni è la dimensione delle machine-language instruction • Alcuni processori supportano istruzioni di lunghezza multipla (32/64 bit) MAINBOARD O MOTHERBOARD (SCHEDA MADRE) PCB = Printed Circuit Board (scheda a circuito stampato) • La scheda madre è il componente hw che fornisce i collegamenti elettrici tra i dispositivi (tracce) – La mainboard (MB) è il PCB centrale del sistema informatico – Le tracce formano dei canali di comunicazione ad alta velocità detti BUS. – Tutti i dispositivi elettronici (come i processori, le memorie, le periferiche) sono collegati alla MB tramite bus e connettori (esterni). CHIPSET E BIOS Nelle mainboard sono presenti diversi circuiti integrati (chip) per realizzare le operazioni di basso livello. • BIOS – Basic Input/Output System è il chip che memorizza le istruzioni di base per l’inizializzazione dell’hardware e la fase iniziale di caricamento del SO (bootstrap) • Il chipset di una scheda madre è l’insieme di tutti i controller dei dispositivi, dei bus e delle schede integrate on-board, cioè sulla scheda (scheda grafica, audio, di rete, modem, porte ecc.) • Le schede di espansione (add-on) invece permettono una maggiore ri- configurabilità del sistema Il tempo nei computer viene misurato in cicli – Ciclo = Una completa oscillazione di un segnale elettrico con forma d’onda rettangolare – Fornito dal generatore di segnale (clock) del sistema – Le velocità del processore sono misurate in MHz o GHz (Mega o Giga Hertz = milioni o miliardi di cicli al secondo) • I PC attuali eseguono le istruzioni con frequenze di centinaia di MHz o più GHz I CALCOLATORI EMBEDDED Il termine «embedded system» identifica tutti i sistemi di elaborazione delle informazioni (computer) basati su microprocessore, che sono progettati per una determinata applicazione (special purpose) su un hardware ad hoc – Smartphone – Centralinamotoreauto – SistemiPOS – DecoderTVdigitale Un sistema embedded è tipicamente progettato per eseguire una serie di compiti (azioni, task, procedure) in modo ripetitivo, a costo contenuto e in tempo reale su hw dedicato – Esempi:MP3player,iPod,eBookreader ll software dei sistemi embedded, in generale, è chiamato firmware. • Il firmware è un programma, ovvero una sequenza di istruzioni, integrato direttamente in un componente elettronico, il cui scopo è quello di avviare il componente stesso e consentirgli di interagire con altri componenti hardware tramite l'implementazione di protocolli di comunicazione o interfacce di programmazione. Le console per videogiochi sono una particolare categoria di sistemi di calcolo embedded. • Nate negli anni ‘80 per ottimizzare la computer graphics dei videogame, oggi sono sempre più spesso sistemi di calcolo dedicato molto potenti – Sony PS4 – Microsoft Xbox – Nintendo Wii MICROCONTROLLER UNIT Una MCU è un dispositivo elettronico integrato single-chip, nato come alternativa alle CPU • Una MCU è un sistema completo di processore, memoria e canali di I/O, in grado di esguire il firmware che viene sviluppato per la specifica applicazione. Arduino è un sistema embebbed open basato su microcontroller e circuiteria elettronica standard, nato in Italia per creare prototipi hw a basso costo • L’ambiente di sviluppo del software (firmware) è libero (open-source) PROGRAMMA = definizione informale di ALGORITMO e descrizione formale computabile di un problema da risolvere Dato un ALGORITMO, un programma è la sua descrizione linguistica in un particolare linguaggio di programmazione, quest’ultimo è una notazione formale che può essere usata per descrivere algoritmi in due aspetti: SINTASSI E SEMANTICA. LE REGOLE SINTATTICHE POSSONO ESSERE ESPRESSE ATTRAVERSO NOTAZIONI FORMALI = BNF, EBNF o diagrammi sintattici. I linguaggi di programmazione ad alto livello si basano su una macchiana virtuale che esegue dei passi che non sono quelle della macchina hardware. I linguaggi di programmazione permettono la creazione di una “barriera” di astrazione tra la “fisicità” del calcolatore e i domini dei problemi (classi di problemi) che possono essere trattati computazionalmente. I linguaggi di programmazione vengono suddivisi a seconda del modo in cui vengono descritti e risolti i problemi: – imperativi (programmazione strutturata) – funzionali(programmazionefunzionale) – ad oggetti (programmazione ad oggetti) – dichiarativi(programmazionelogica) SOFTWARE Il software (SW) è l’informazione utilizzata/eseguita e memorizzata dall’hardware del calcolatore. – Programmi – Dati Il suffisso «–ware» («componente») viene usato per denotare diversi tipi di software: – firmware, middleware – freeware, shareware Il SW può essere classificato in base a: – Modalità di esecuzione: batch («a lotti»), offline, online, real-time – Funzione: videoscrittura, foglio di calcolo, base di dati, grafica, sistema operativo, browser,... – Campo di applicazione: home, mobile, professional – Tipo di licenza: open source, freeware, proprietary, closed source – Ambiente di esecuzione: standalone, client-server, web, cloud, peer-to-peer Esistono 4 categorie principali di software – Firmware ( è un programma, ovvero una sequenza di istruzioni, integrato direttamente in un componente elettronico, il cui scopo è quello di avviare il componente stesso e consentirgli di interagire con altri componenti hardware tramite l'implementazione di protocolli di comunicazione o interfacce di programmazione. Contiene le istruzioni eseguibili memorizzate in una memoria persistente collegata a un dispositivo e viene solitamente programmato con una tecnica detta MICROPROGRAMMING. = È uno strato di programmazione del computer al di sotto del linguaggio macchina ed il microcode consiste in istruzioni semplice e fondamentali necessarie per attuare tutte le operazioni in linguaggio macchina) – Software di base (si intende la parte del software più vicina all’hardware del calcolatore come sistemi operativi, compilatori ed interpreti, librerie e api) – Driver ( indica il SW, spesso scritto in assembler, che permette ad un sistema operativo di pilotare un dispositivo periferico (device) hardware. Permette al sistema operativo di utilizzare il device senza sapere come esso funzioni, astraendone le caratteristiche con una interfaccia standard e presentandolo come una o più locazioni di memoria a cui accedere in lettura/scrittura.) – Programmi applicativi (è il SW che produce soluzioni per una data classe di problemi «computabili» («automatizzati»), Il calcolatore è diventato lo strumento principale per le normali operazioni di ufficio come scrivere un doc, gestire la contabilità e mantenere archivi. SOFTWARE DI BASE (Un software che agisce da intermediario tra l’utente e l’hardware del computer, ESEGUE PROGRAMMI, RENDE AGEVOLE L’INTERFACCIA UOMO- MACCHINA E GESTISCE LE RISORSE DEL SISTEMA DI CALCOLO.) si intende la parte del software più vicina all’hardware del calcolatore: – Sistemi Operativi – Compilatori e Interpreti – Librerie e API Un SO è fondamentalmente un “gestore di risorse” – Hardware • Processori • Memorie • Dispositiviperiferiche(Input/OutputDevices) • Dispositivi di rete (Communication Devices) – Software • Applicazioni • Servizi – Ad ogni processo presente viene assegnato un certo numero di pagine in memoria primaria. – Quando l’istruzione da eseguire non è in memoria primaria • Unapaginadellamemoriaprimariavienespostatainmemoriasecondaria scelta in base a uno dei due criteri – FIFO: First In First Out – LRU: Last Recently Used • La pagina che la contiene l’istruzione da eseguire viene trasferita in memoria primaria. La Gestione delle periferiche si basa su due elementi – Il BIOS – I driver • Il BIOS (Basic Input Output System) è uno strato di software utilizzato per standardizzare l'accesso ai diversi tipi di periferica. • I driver sono i programmi software che permettono l’accesso ad una specifica periferica (device). Il BIOS svolge anche la funzione di avvio di un computer. – Svolge alcuni compiti di diagnostica. – Inizializza l’hardware • Controlla la memoria. • Verifica quali dispositivi sono collegati al computer. • Segnala eventuali condizioni di errore. – Provvede ad effettuare il caricamento della parte iniziale (boot sector) del sistema operativo – Consente di modificare il setup del computer • Data e ora • Quantità di memoria utilizzata • Numero e tipo delle unità a disco • Velocità della tastiera Il file system permette all’utente di vedere la memoria di massa come un unico contenitore di dati organizzati secondo una struttura ad albero o a grafo aciclico. • Gli elementi di tale albero/grafo sono – Memorie di massa – Directory – File Un calcolatore può avere diverse memorie di massa (ad esempio, tre hard disk, un floppy disk, un CD-RW e un DVD). • Ogni memoria di massa è la radice (root) di un sotto albero del file system del calcolatore. • Le directory (cartelle) rappresentano i nodi intermedi dell’albero. I file sono i nodi terminali dell’albero del file system. • Un file è l’unità elementare di memorizzazione dei dati in memoria di massa – Ogni volta che vogliamo scrivere qualcosa in memoria, o creiamo un file o modifichiamo un file già esistente. – Ogni volta che vogliamo leggere qualcosa dalla memoria, leggiamo uno o più file. • Ad ogni file sono associati – Un nome (name) – Un percorso (path) – Un tipo (type o extension) – Una dimensione (size) Il SO offre a programmi e utenti una serie di servizi comuni, per rendere più usabile il sistema stesso: – Servizidicomunicazioneinrete(networking) – Rilevamentoegestionierrori – Assegnazioneecontabilizzazionedellerisorse – Protezioneesicurezza –... • I servizi «attivati» possono essere controllati tramite l’interfaccia di amministrazione (ad es. Task manager nei SO Windows) Protezione – è il meccanismo usato per controllare l’accesso da parte di processi o utenti a risorse del sistema di calcolo • Sicurezza – è il meccanismo di difesa implementato dal sistema per proteggersi da attacchi interni ed esterni – Denial of Service (DoS), worm, virus, hacker • In prima istanza, il sistema distingue gli utenti, per determinare chi può fare cosa – L’identità utente (user ID ) include nome dell’utente e numero associato uno per ciascun utente – L’user ID garantisce l’associazione corretta di file e processi all’utente e ne regola la manipolazione – L’identificativo di gruppo permette inoltre ad un insieme di utenti di accedere correttamente ad un gruppo di risorse comuni (file e processi) L’interprete di comandi permette all’utente di eseguire programmi e funzioni del sistemi operativi 1. Riceve il comando. 2. Lo interpreta richiamando le funzioni opportune del sistema operativo. • Esistono diverse modalità di interazione tra l’utente e l’interprete di comandi Testuale (Linea di comando, per es: DOS) Grafica (GUI) Naturale (NUI) (per direct manipulation: touch, gesture, motion,…) I SO sono evoluti attraverso diverse fasi storiche – Anni 40’ : primi sistemi di calcolo elettronico • I primi calcolatori non prevedevano alcun SO • – Anni 50’ : elaborazione a lotti • Dato un programma da eseguire (task), il SO eseguiva “one job at a time” senza alcuna interazione con l’utente • Tecnologia di immissione dati basata sulle schede perforate • Limitato uso di comandi per gestire le transizioni job-to-job (Job Control Language) • Elaborazione a “lotti” (single-stream batch-processing systems) • Programmi e dati iniziarono poi a essere “serializzati” su nastri magnetici (tape) 1960-1969 – Si usano i “batch-processing systems” – I computer iniziano a processare più job (programm) allo stesso tempo (in modo “concorrente”) • Multiprogramming – Nasce il concetto di “processo” • Suddivisione tra processi che usano prevalentemente la CPU (CPU-bound job) e quelli che usano prevalentemente le periferiche (I/O-bound job) – I SO più avanzati sono progettati per permettere di fornire servizi a più utenti in modo interattivo • Timesharing • 1964 – IBM annuncia la immissione sul mercato della famiglia di computer System/360 (i primi calcolatori dichiaratamente di uso generale, “a 360°”) con un SO comune a tutti: OS/360 Timesharing systems – Sviluppati per supportare più utenti che interagiscono in modo simultaneo (interattivi) – Il “tempo di risposta” (turnaround time) ridotto da minuti a secondi Nascono i primi “Real-time systems” – Obiettivo: fornire la risposta al job entro un periodo di tempo determinato e limitato (deadline) Migliorano i tempi e i metodi di sviluppo del software, e quindi anche dei SO – MIT usò il sistema operativo CTSS per sviluppare il suo successore, Multics – TSS, Multics and CP/CMS Incorporano per la prima volta il concetto di “virtual memory” • Memoria virtuale: Permettere ai programmi in esecuzione di “credere” di “indirizzare” più locazioni di memoria di quelle effettivamente a disposizione nella memoria reale ANNI 70 • Compaiono i “Multimode timesharing systems” – Supportano batch processing, timesharing e applicazioni real-time – La elaborazione per uso “personale” è ancora in fase embrionale per il costo eccessivo dei componenti elettronici • L’era dei PC inizia a intravedersi con l’affermazione delle tecnologie legate ai microprocessori verso la fine degli anni 70 • Nascono le prime console di sviluppo e i primi videogame • 1969: il Dipartimento della Difesa USA (DoD) finanzia lo sviluppo della pila protocollare TCP/IP, alla base dello sviluppo di Internet – Uso di protocolli di comunicazione standardizzati – Largamente usato per scopi militari e di ricerca – Nato per affrontare i problemi di Information Security • Volumi sempre più crescenti di informazioni passano attraverso linee di comunicazione vulnerabili tecniche di instradamento (routing) dei pacchetti di dati • Permette a chiunque di fare test, validazione (debug) e miglioramenti alle applicazioni – Aumenta le possibilità di scoprire ed eliminare gli errori di programmazione (bachi o bugs), favorendo la nascita di fiorenti “comunità di programmatori” (SourceForge) • Cruciale per fissare velocemente i buchi di sicurezza nell’era di Internet e dei virus informatici – Programmatori e aziende possono modificare i sorgenti • Si creano progetti ad ampio respiro e multi-piattaforma I SO diventano sempre più semplici da utilizzare (“user friendly”) – Le interfacce utente a finestre (WIMP – Windows-Icons-Menus- Pointer), originariamente sviluppate da Apple, sono ormai di uso collettivo e molto migliorate nelle funzionalità – La capacità di configurare al volo le periferiche (tecnologia “Plug- and-play”) è stabilmente usata nei SO, abilitando e abituando gli utenti all’inserimento/eliminazione dinamica di componenti hardware, senza la necessità di riconfigurazione manuale del SO ANNI 2000 Middleware – Collega due strati software separati (2 applicazioni) • Spesso in rete e tra architetture eterogenee ed incompatibili tra loro per permettere la interoperabilità tra le applicazioni software – ParticolarmenteimportanteperlacreazionediserviziWeb(Webservices) • Semplifica la comunicazione e il trasferimento di dati attraverso architetture differenti tra loro • Web services e Web 2.0 – Affermazionedistandardinternazionali – Si afferma il concetto di avere “pezzi” software direttamente utilizzabili (ready-to-use) su Internet INTERNET e il mondo delle Reti Una rete informatica è un insieme di servizi collegati da un sottosistema di comunicazione e fruiti da utenti e applicazioni. I servizi offerti sono la condivisione di risorse (hardware, software, dati) e la comunicazione tra utenti. Un insieme di noti interconnessi mediante archi di collegamento. Il nodo è un qualsiasi dispositivo hardware collegato ad altri dispositivi della rete come host e dispositivi di interconnessione. L’arco è un collegamento tra i nodi come un cavo telefonico, una fibra ottica o un collegamento wireless. L’HOST è un calcolatore all’interno di una rete, con un SERVER che fornisce servizio ed un CLIENT che richiede un servizio. I dispositivi di interconnessione li vediamo tra SWITCH che collega host e dispositivi di una stessa rete, ACCESS POINT che collega host e dispositivi in modalità wireless ed un ROUTER che collega reti diverse. Il tipo di ARCO che determina la CAPACITA’ DI TRASMISSIONE, ossia al su BANDA VIENE MISURATA IN BIT AL SECONDO. DORSALE: cavo ad alta capacità di trasmissione dati. Un criterio di classificazione di reti è il raggio di copertura della rete o la scala di dimensione della rete. Scale dimensionali diversi implicano anche tipologia di rete diverse e tecnologie di trasmissione diverse. RETI PERSONALI: PAN E WPAN (Reti di piccole dimensioni per la comunicazione tra dispositivi personali quali computer, smartphone, navigatore di bordo, dispositivi per l’assistenza personale, ecc. I dispositivi possono comunicare tra loro o connettere l’utente ad altre reti. Le Tecnologie principali: Bluetooth, IR, Zig Bee, NFC) RETI LOCALI: LAN E WLAN (Reti private per la condivisione di risorse all’interno di un’abitazione, di un edifico o in edifici vicini. La topologia di rete principale è quella a stella. Ethernet e wifi. Nella topologia a stella, le comunicazioni tra due nodi non sono dirette ma passano attraverso il nodo centrale, tipicamente uno switch. Es., in un ufficio o in un laboratorio: reti Ethernet Negli ultimi anni anche reti WiFi. in casa sono sempre più frequenti reti WiFi o miste utilizzando dispositivi «all-in-one» che integrino le funzioni di switch, router, modem ADSL, access point wireless.) RETI METROPOLITANE: MAN RETI GEOGRAFICHE: WAN (Nodi distribuiti su medio-lunga distanza, Modalità di connessione tra i nodi mediante linee dedicate e reti digitali di trasmissione dati e sfruttando le reti di comunicazione esistenti, come la rete telefonica) con un ROUTER. RETI GLOBALI: GAN Rete formata da reti (definita la reti delle reti): collega fra loro reti personali, locali, geografiche. Internetworking: interconnessione di reti diverse, da cui Internet. E’ in continua espansione: si possono aggiungere altre reti, sottoreti, host e dispositivi di tipo diverso. Internet Service Provider: Consentono l’accesso a Internet e offrono servizi di rete E Sono strutturati gerarchicamente. Modalità di accesso a Internet: Accessotramitemodem:accessoresidenziale L’utente si collega a un ISP con il quale avrà sottoscritto precedentemente un abbonamento. Tre tipi di accesso residenziale: – linea telefonica con modem dial-up (ormai obsoleto) – linea telefonica con modem DSL (digital subscriber line) – via cavo, con cable modem Accessotramiteunaretelocalewirelessocablata (es. rete aziendale, rete universitaria ma anche rete domestica, free WiFi, ecc.): – L’utente deve utilizzare un calcolatore o un dispositivo (es. uno smartphone) collegato alla rete locale – La rete deve essere collegata a un ISP Accessowirelessgeografico – Accesso cellulare: crescita esponenziale delle reti radiomobili e rapida evoluzione in termini di tecnologie (GPRS, EDGE, UMTS, LTE) – Accesso satellitare: basato su un'infrastruttura di satelliti orbitanti intorno alla Terra, consente sia accesso mobile tramite cellulari satellitari, sia accesso via parabola Per accedere a Internet serve un account: account presso un ISP o una LAN. Il concetto di account viene anche usato per l’accesso a servizi specifici su Internet. • Account: assegnato in seguito a sottoscrizione di un qualche servizio in rete – gli account sono associati a username e password – a volte si possono scegliere, altre volte vengono assegnati automaticamente – account gratuiti e a pagamento (dipende dal servizio) ARPANET [1961-1972] viene introdotto il concetto di packet switching [1969] Diventa operativo il primo nodo della rete ARPAnet Il 2 settembre 1969 il computer di Leonard Kleinrock (Network Measure Center, UCLA) viene connesso al primo IMP (Interface Message Processor, una sorta di router di oggi) Il 1 ottobre 1969 viene installato il secondo IMP (Stanford Research Institute) Dopo qualche giorno viene tentato – con successo - il primo collegamento TCP/IP, Ethernet • [1972-1980] reti pubbliche e reti proprietarie • [1974] Vincent Cerf e Bob Kahn iniziano a lavorare all'architectura delle reti interconnesse, progettano TCP/IP [1976] Ethernet a Xerox PARC Internetworking • I principi dell'internetworking di Cerf e Kahn definiscono l'architettura dell'Internet di oggi • [1980-1990] Vengono definiti nuovi protocolli e nascono nuovi servizi, per es. la posta elettronica 100000 host connessi in una confederazione di retI Internet e il Web • [1990] Inizia la seconda fase di Internet • Tim Berners-Lee rilascia le specifiche del protocollo HTTP e introduce il linguaggio HTML Primo browser grafico • [1992] al National Center for Supercomputing Application (NCSA) di Urbana Champaign viene realizzato Mosaic,il primo client grafico per il Web. World Wide Web Consortium • [1994] Tim Berners-Lee fonda il W3C •Organizzazione internazionale che ha tra i suoi scopi lo sviluppo di tutte le potenzialità del Web, l'aggiornamento e la creazione di nuovi standard aperti per mantenere il Web libero Netscape Navigator • [1995] Netscape entra in borsa ottenendo un successo clamoroso •I tempi stavano cambiando e si contavano già 25 milioni di host connessi I computer, le reti e i servizi di rete sono identificati mediante nomi logici. Il Domain name System è il protocollo che si occupa della traduzione di indirizzi numerici in indirizzi simbolici. Un indirizzo simbolico, detto anche nome di dominio ha un formato preciso che dipende dalla gerarchia dei domini. È costituito da una serie di stringhe separate da punti come i siti web. Nella gerarchia dei domini troviamo nella radice il “.” Seguito dal dominio di primo livello che indica l’area geografico o il tipo di attività del dominio (.it /.de/.uk. oppure .org/.net/.edu) Nel dominio di 2° livello troviamo il nome del dominio quindi per esempio “amazon, google, Facebook” Nel dominio di 3° livello definito facoltativo è possibile trovare nuovi sottodomini NON ESISTE UN UNICO SERVER DNS PERCHE’ SAREBBE IMPENSABILE CON L’ATTUALE VOLUME DI TRAFFICO E SAREBBE DIFFICILE MANTENERLO AGGIORNATO. IL DNS sfrutta una gerarchia di server nella quale ogni server conosce una porzione delle traduzioni possibili, al livello più basso ci sono i NAME SERVER LOCALI (ogni internet provider o ogni azienda/università ha il suo name server locale e tutte le richieste di traduzione passano prima attraverso questo server. Poi abbiamo i NAME SERVER AUTORITATIVI che forniscono l’indirizzo IP di gruppi di host di cui sono responsabili. NAME SERVER DI PRIMO LIVELLO (top level domain TLD) che amministrano i domini di primo livello (.com - .org - .edu) I NAME SERVER RADICE (ROOT NAME SERVICE) forniscono l’indirizzo IP del TLD o dei name server autoritativi. Quelli originali sono 13 identificati con lettere. GERARCHIA DI SERVER: • NAME SERVER LOCALE • NAME SERVER AUTORITATIVO • NAME SERVER DI PRIMO LIVELLO • NAME SERVER RADICE Ogni volta che un host CLIENT cerca un SERVIZIO IN RETE usando il NOME LOGICO contatta il NAME SERVER LOCALE e chiede l’indirizzo IP del servizio (query DNS). Il NAME SERVER LOCALE se riconosce la risposta, la restituisce (REPLY DNS) altrimenti contatta un NAME SERVER RADICE e attende la risposta. Se quest’ultimo conosce la risposta, la restituisce, altrimenti restituisce al NSL l’indirizzo di un NAME SERVER DI PRIMO LIVELLO mettendolo in contatto. Il NAME SERVER DI PRIMO LIVELLO se conosce la risposta, la restituisce altrimenti contatta un NAME SERVER AUTORITATIVO. Solo dopo aver ricevuto l’indirizzo IP l’host client può contattare la macchina remota per ottenere il servizio. Un host in rete è quindi caratterizzato da un indirizzo IP ma questo da solo non gli basta e quindi deve anche conoscere l’indirizzo IP di un name server locale per la risoluzione dei nomi. NO NSL NO NETWORK INTERNET NON è IL WEB. Internet è l’infrastruttura che consente ai nodi remoti di comunicare mentre il web è il principale servizio internet, riguarda il livello applicativo dell’architettura TCP/IP. Il web nasce come sistema per la condivisione di documenti chiamati pagine web, collegati tramite hyperlink. È il più grande iperteso esistente ed è la piattaforma che consente l’accesso ad informazioni e servizi diversi tramite un’interfaccia standard e omogenea. PRIMO BROWSER GRAFICO: ANNI 90 • [1989] inizio progetto al CERN (Centro Europeo per la Ricerca Nucleare) guidato da Tim Berners Lee per la condivisione report, fotografie, progetti e altri documenti • [1991] prima dimostrazione alla conferenza sull’ipertesto • [1992] progettato da Marc Andressen il primo browser con interfaccia grafica, Mosaic, • [1994] il CERN e il MIT di Boston costituiscono il W3C (World Wide Web Consortium) per guidare gli sviluppi del Web • • [2004] coniato il termine Web 2.0, per indicare la transizione progressiva verso un Web di seconda generazione, con maggiori possibilità partecipative da parte degli utenti e integrazione (mash-up) di servizi • • [2010 ] verso il Web Semantico, Web of Things, Web 3.0 Il web si basa su un modello in cui un client richiede un servizio ad un server ed il server è sempre in stato di ascolto per le richieste del client. Il client web è chiamato browser i cui compiti sono quelli di inviare le richieste di pagine web al server, ricevere e processare le informazioni ricevute, visualizzare il contenuto di una pagina e salvare, stampare le informazioni ricevute. Un server web è un host su cui è presente un software che permette di gestire un sito web e rispondere alle richieste dei client web. HTTP://NOMEHOST[:PORTA]/PATHNAME Protocollo - nome del server web - percorso della risorsa sul web Una pagina web è un documento contenente file media di diverso tipo. La pagina vista dall’utente non esiste sul server: è il browser che la compone interpretato il codice HTML con cui è scritta la pagina e inserendo gli oggetti multimediali. IL LINGUAGGIO HTML PERMETTE DI AGGIUNGERE AD UN TESTO PIANO MARCATORI CHE IL BROWSER INTERPRETA AL FINE DI COMPORRE LA PAGINA WEB. HTTP: protocollo alla base del web grazie al quale dialogano browser e server web in quanto software. Le caratteristiche standard di questo protocollo sono una porta standard 80, un protocollo ASCII e una memoria STATELESS senza memoria di stato in quanto non conserva le informazioni relative alle connessioni precedenti. Usa TCP come protocollo di trasporto in un modello REQUEST/RESPONSE MODELLO REQUEST/RESPONSE: • Client: richiede connessione tcp al server http • Server: accetta la connessione • client: invia richiesta in client request • Server: invia risposta in server reponse • Client: interpreta il documento e lo visualizza • Server può chiudere la connessione o rimanere in attesa. Possibili risposte del server : HTTP STATUS CODES 1xx = informational - not used 2xx= success - action received, understood, accepted 3xx= redirection - further action requested 4xx= client error - bad syntax 5xx= server error = server failed Le pagine web statiche sono pagine HTML in cui il contenuto è predefinito sul server Pagine web dinamiche: sono pagine in cui il contenuto deriva dall’esecuzione di programmi grazie ad input dell’utente accedendo a dati archiviati in database. Due tipi di programmi: - Programmi lato client e programmi lato server Un sito web è un insieme di pagine web collegate tra loro. Si differenziano per tipo di servizio offerto quindi sito di informazioni, per ascoltare musica, per gestire social. Per tipo di accesso: siti pubblici, privati E modalità di organizzazione dei contenuti quindi portali o blog. I siti web che aggregano link a risorse diverse sono i PORTALI che costruiscono un punto di accesso ad altri siti della stessa o di altre organizzazioni: generalisti con portali orizzontali o monotematici con portali verticali. BLOG: è uno spazio web in cui una persona o un’organizzazione pubblica articoli. Le caratteristiche tipiche sono l’organizzazione cronologica degli articoli, con una pubblicazione periodica. MOTORE DI RICERCA: applicazione software che analizza un insieme di contenuti, indicizza tali contenuti e consente all’utente la ricerca di contenuti fornendo un input di