Tecnologie per il web e lo sviluppo multimediale Sistemi per l’elaborazione delle informazioni Luca Pulina Corso di Laurea in Scienze della Comunicazione Università degli Studi di Sassari A.A. 2015/2016 Luca Pulina (UNISS) Elaborazione 1 / 59 Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Luca Pulina (UNISS) Elaborazione 2 / 59 Outline 1 La Macchina di von Neumann La memorizzazione L’elaborazione 2 I sistemi operativi Luca Pulina (UNISS) Elaborazione 3 / 59 Outline 1 La Macchina di von Neumann La memorizzazione L’elaborazione 2 I sistemi operativi Luca Pulina (UNISS) Elaborazione 4 / 59 Macchina di von Neumann – I L’architettura dell’hardware di un calcolatore reale è molto complessa. La macchina di von Neumann è un modello semplificato dei calcolatori moderni I John von Neumann, matematico ungherese, progettò, verso il 1945, il primo calcolatore con programmi memorizzabili anziché codificati mediante cavi e interruttori. Luca Pulina (UNISS) Elaborazione 5 / 59 Macchina di von Neumann – II Quattro tipologie di componenti funzionali: 1 Unità centrale di elaborazione (CPU) I I 2 Memoria centrale I 3 Memorizza e fornisce l’accesso a dati e programmi Interfacce di ingresso e uscita I 4 Esegue istruzioni per l’elaborazione dei dati Svolge anche funzioni di controllo Componenti di collegamento con le periferiche del calcolatore Bus I Svolge la funzionalità di trasferimento di dati e di informazioni di controllo tra le varie componenti funzionali Luca Pulina (UNISS) Elaborazione 6 / 59 Macchina di von Neumann – III Luca Pulina (UNISS) Elaborazione 7 / 59 Macchina di von Neumann – Funzionamento Il funzionamento di un calcolatore è descrivibile in termini di poche componenti (macro-unità) funzionali Ogni macro-unità è specializzata nello svolgimento di una tipologia omogenea di funzionalità. Eccezione: l’unità centrale di elaborazione, che svolge sia funzionalità di elaborazione che di controllo. Luca Pulina (UNISS) Elaborazione 8 / 59 Macchina di von Neumann – Attività Luca Pulina (UNISS) Elaborazione 9 / 59 Memorizzazione Un calcolatore memorizza I I I dati, che rappresentano informazioni di interesse i programmi, per l’elaborazione dei dati La memoria è l’unità responsabile della memorizzazione dei dati Una unità di memoria fornisce due sole operazioni 1 2 memorizzazione di un valore (scrittura) accesso al valore memorizzato (lettura) Luca Pulina (UNISS) Elaborazione 10 / 59 Elaborazione – I Le istruzioni di un programma corrispondono ad operazioni elementari di elaborazione: operazioni aritmetiche operazioni relazionali (confronto tra dati) operazioni su caratteri e valori di verità altre operazioni numeriche Luca Pulina (UNISS) Elaborazione 11 / 59 Elaborazione – II Un calcolatore sa svolgere poche tipologie di operazioni elementari ma in modo molto efficiente I un calcolatore può eseguire decine o centinaia di milioni di istruzioni al secondo. L’elaborazione dei dati viene svolta dall’unità aritmetico-logica (ALU), che è un componente dell’unità centrale di elaborazione. Luca Pulina (UNISS) Elaborazione 12 / 59 Trasferimento Obiettivo Permettere lo scambio di informazioni tra le varie componenti funzionali del calcolatore. Trasferimento dei dati e delle informazioni. Due possibili soluzioni 1 Collegare ciascun componente con ogni altro componente. 2 Collegare tutti i componenti ad un unico canale (bus). L’utilizzo di un bus favorisce la modularità e l’espandibilità del calcolatore. Luca Pulina (UNISS) Elaborazione 13 / 59 Controllo Il coordinamento tra le varie parti del calcolatore è svolto dall’unità di controllo È un componente dell’unità centrale di elaborazione. Ogni componente dal calcolatore esegue solo le azioni che gli vengono richieste dall’unità di controllo. Il controllo consiste nel coordinamento dell’esecuzione temporale delle operazioni. I sia internamente all’unità di elaborazione sia negli altri elementi funzionali. Luca Pulina (UNISS) Elaborazione 14 / 59 Outline 1 La Macchina di von Neumann La memorizzazione L’elaborazione 2 I sistemi operativi Luca Pulina (UNISS) Elaborazione 15 / 59 Porte logiche AND OR NOT Porta logica (gate): dispositivo che, dati i valori di ingresso, produce l’uscita di un’operazione booleana. Nei computer odierni sono realizzate con circuiti elettronici in cui 0 e 1 sono rappresentati come livelli di tensione. Le porte logiche rappresentano gli elementi base dei computer. Luca Pulina (UNISS) Elaborazione 16 / 59 Memoria principale Per archiviare i dati, un computer contiene un gran numero di circuiti flip-flop, ognuno in grado di memorizzare un singolo bit. Questa riserva di bit è detta memoria principale della macchina. Luca Pulina (UNISS) Elaborazione 17 / 59 Organizzazione della memoria I circuiti della memoria principale sono organizzati in unità dette celle (dimensione tipica: 8 bit). Una stringa di 8 bit è detta byte. Organizzazione di una cella di memoria con dimensione di un byte Luca Pulina (UNISS) Elaborazione 18 / 59 Indirizzo Per identificare le singole celle della memoria principale, ad ognuna è assegnata una denominazione univoca, detta indirizzo. Gli indirizzi sono numerici. Un sistema di indirizzamento simile permette anche di associare un ordine. Luca Pulina (UNISS) Elaborazione 19 / 59 RAM Random Access Memory (memoria ad accesso casuale), è la memoria principale di un computer. È organizzata sotto forma di singole celle dotate di un indirizzo. È possibile accedere a tali celle indipendentemente, secondo le necessità. Luca Pulina (UNISS) Elaborazione 20 / 59 Struttura della RAM Luca Pulina (UNISS) Elaborazione 21 / 59 Misurazione della capacità di memoria – I Il numero totale di celle in memoria si esprime in termini di potenza di 2. La dimensione delle memorie nei primi computer era spesso misurata in unità pari a 1024 (210 ) celle. I Dato che 1024 è un valore “vicino” a 1000, si è adottato il termine kilo. Il termine kilobyte (KB) è usato per indicare 1024 byte I Se una macchina ha 4096 celle di memoria, la sua memoria è pari a 4 KB (4096 = 4 × 1024). Luca Pulina (UNISS) Elaborazione 22 / 59 Misurazione della capacità di memoria – II Altri prefissi comunemente utilizzati megabyte (MB): 220 (1.048.576) gigabyte (GB): 230 (1.073.741.824) terabyte (TB): 240 (1.099.511.627.776) Luca Pulina (UNISS) Elaborazione 23 / 59 Memoria di massa La memoria principale ha dimensione limitata ed è costosa. La maggior parte dei computer è fornita di dispositivi aggiuntivi chiamati sistemi di memoria di massa (o memoria secondaria) I I I I Dischi magnetici CD DVD Unità flash Vantaggi: possono essere rimosse dalla macchina ed archiviate separatamente. Svantaggi: tipicamente richiedono un movimento meccanico → i tempi di risposta si allungano. Luca Pulina (UNISS) Elaborazione 24 / 59 Hard disk – I Due ordini di grandezza più economico e capiente della RAM. Tre ordini di grandezza più lento della RAM (è un’unità meccanica). È formato da uno o più piatti metallici che ruotano tra i 5400 ed i 10200 giri al minuto. È organizzato in cilindri, tracce e settori. Luca Pulina (UNISS) Elaborazione 25 / 59 Hard disk – II Luca Pulina (UNISS) Elaborazione 26 / 59 Sistemi ottici Compact Disk (CD) I I I I Dischi in materiale riflettente (alluminio) con rivestimento protettivo chiaro (plastica). Informazioni registrate creando minuscoli buchi sulla superficie riflettente. Informazioni lette da un raggio laser che controlla le irregolarità del CD mentre gira. Capacità di memorizzazioni inferiori ad 1 GB. Digital Versatile Disk (DVD) I I Sono costituiti da più livelli semi-trasparenti che funzionano come superfici distinte quando vengono lette dal raggio laser. Capacità di svariati GB. Luca Pulina (UNISS) Elaborazione 27 / 59 Unità flash Non richiede movimento meccanico, come i sistemi precedenti I Il tempo di accesso è ridotto notevolmente. I bit vengono memorizzati inviando segnali elettrici direttamente al dispositivo di memorizzazione. Esempi di applicazione: chiavette USB, fotocamere digitali, telefonini. Sensibili al danneggiamento in caso di scrittura molto frequente. Luca Pulina (UNISS) Elaborazione 28 / 59 Memorizzazione e recupero dei file Le informazioni sono memorizzate su sistemi di memoria di massa in unità chiamate file. Un file può essere costituito da I I I I Un documento di testo Una fotografia Un programma ... I file sono memorizzati e recuperati in unità composte da più byte. I Ad esempio, ogni settore di un disco deve essere elaborato come una stringa continua di bit. Luca Pulina (UNISS) Elaborazione 29 / 59 Outline 1 La Macchina di von Neumann La memorizzazione L’elaborazione 2 I sistemi operativi Luca Pulina (UNISS) Elaborazione 30 / 59 Funzionamento – I Programmi e dati risiedono in file memorizzati in memoria secondaria. Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella memoria primaria. Il processore (Central Processing Unit, CPU) è in grado di eseguire le istruzioni di cui sono composti i programmi. Luca Pulina (UNISS) Elaborazione 31 / 59 Funzionamento – II Luca Pulina (UNISS) Elaborazione 32 / 59 La CPU Si occupa di eseguire i programmi. I programmi che la CPU è in grado di eseguire sono scritti in linguaggio macchina (assembler) Le istruzioni macchina hanno tipicamente la forma Codice_istruzione argomento_1 argomento_2 I I 16 o 32 bit di lunghezza. Alcune istruzioni non prevedono argomenti. Luca Pulina (UNISS) Elaborazione 33 / 59 Linguaggio macchina – Esempio Luca Pulina (UNISS) Elaborazione 34 / 59 Le istruzioni macchina – I Ogni tipo di processore è in grado di eseguire un numero limitato (40/100) di istruzioni. Combinando in modo diverso sequenze anche molto lunghe di istruzioni (i programmi) si possono far fare al computer tantissime cose completamente diverse. Luca Pulina (UNISS) Elaborazione 35 / 59 Le istruzioni macchina – II Istruzioni per l’elaborazione dei dati I I I Aritmetiche Logiche (AND, OR, NOT) Relazionali (maggiore, minore, uguale, ...) Controllo del flusso delle istruzioni I I I Sequenza Selezione Ciclo Trasferimento di informazioni I I Dati ed istruzioni fra CPU e memoria Dati fra CPU e dispositivi di I/O (tramite interfacce) Luca Pulina (UNISS) Elaborazione 36 / 59 Struttura della CPU Luca Pulina (UNISS) Elaborazione 37 / 59 L’unità di controllo L’unità di controllo del processore esegue una istruzione svolgendo le seguenti tre operazioni di base I I I Fetch (lettura) Decode (decodifica) Execute (esecuzione) Un programma è eseguito re-iterando il ciclo fetch-decode-execute (ciclo macchina) per eseguire ordinatamente le sue istruzioni Luca Pulina (UNISS) Elaborazione 38 / 59 Il ciclo Fetch-Decode-Execute Luca Pulina (UNISS) Elaborazione 39 / 59 I registri Piccole unità di memoria (2, 4, 8 byte) con tempi di accesso molto più bassi delle celle della memoria primaria. Ospitano le informazioni necessarie per eseguire l’istruzione corrente. Sono presenti in numero molto limitato (10, 20, 64) si dividono in registri generali e speciali. Luca Pulina (UNISS) Elaborazione 40 / 59 Registri generali Sono usati come memorie temporanee per contenere gli operandi delle istruzioni i risultati parziali durante l’esecuzione delle istruzioni. Luca Pulina (UNISS) Elaborazione 41 / 59 Registri speciali Sono dedicati a memorizzare informazioni specifiche quali L’indirizzo in memoria centrale della prossima istruzione da eseguire (Program Counter, PC). L’istruzione correntemente in esecuzione (Instruction Register, IR). Lo stato corrente dell’esecuzione (Registro di stato, PSW). Segnala anche eventuali errori (ad esempio l’overflow). L’indirizzo della cella da cui leggere o in cui scrivere un dato (Registro Indirizzi Memoria, MAR). Il dato letto dalla memoria o da scrivere in memoria (Registro Dati Memoria, MDR). Luca Pulina (UNISS) Elaborazione 42 / 59 L’unità logico-aritmetica Arithmetic-Logic Unit, ALU Si occupa di eseguire le operazioni di tipo aritmetico/logico: somme, confronti... Preleva gli operandi dai registri generali. Deposita il risultato delle operazioni nei registri generali. A volte è affiancata da un co-processore matematico. Luca Pulina (UNISS) Elaborazione 43 / 59 Outline 1 La Macchina di von Neumann La memorizzazione L’elaborazione 2 I sistemi operativi Luca Pulina (UNISS) Elaborazione 44 / 59 Cos’è un sistema operativo? Un computer moderno è composto da I I I I I I Uno o più processori. Memoria centrale. Disco. Tastiera, mouse, video. Interfacce di rete. ... Il problema Gestire ed impiegare in maniera ottimale tutti i dispositivi nel loro insieme. La soluzione Strato software chiamato sistema operativo (SO) Fornisce ai programmi utente un modello “semplice” per la gestione delle risorse della macchina. Luca Pulina (UNISS) Elaborazione 45 / 59 Sistema operativo Sistema Operativo (SO) Software che controlla le operazioni complessive di un computer Fornisce i mezzi attraverso i quali un utente può memorizzare e recuperare i file. Fornisce le interfacce per l’interazione uomo-macchina. Fornisce l’ambiente necessario per eseguire i programmi. Esempi di sistema operativo: Windows Mac OS Linux Luca Pulina (UNISS) Elaborazione 46 / 59 Sistema operativo – Struttura Il sistema operativo è organizzato secondo una struttura a “cipolla” Luca Pulina (UNISS) Elaborazione 47 / 59 Classificazione del software Due categorie principali: 1 Software applicativo I I 2 Ne fanno parte i programmi per l’esecuzione di compiti particolari. Esempio: fogli elettronici, basi di dati, giochi. Software di sistema I Fornisce l’ambiente in cui risiede il software applicativo. Luca Pulina (UNISS) Elaborazione 48 / 59 Software di sistema (1/2) Kernel I I Costituito da un insieme di programmi che operano direttamente sull’hardware del sistema. Gestisce tutte le risorse fisiche del calcolatore. File system: include i programmi e le strutture dati per l’organizzazione dei dati sui supporti di memorizzazione. Servizi di sistema: serie di funzioni utilizzabili da altri programmi che il sistema operativo mette a disposizione per consentire dall’esterno l’accesso alle risorse disponibili. Interprete dei comandi: programma di interfaccia che consente all’operatore di interagire con il sistema operativo ed eseguire direttamente un sottoinsieme dei servizi di sistema. Programmi di utilità: applicativi forniti con il sistema operativo e utili a risolvere problemi generici di installazione e configurazione. Luca Pulina (UNISS) Elaborazione 49 / 59 Il software di sistema (2/2) Suddiviso in due categorie: 1 2 Il sistema operativo stesso Software di utilità I I I Composto da programmi che eseguono attività fondamentali per la gestione dei computer ma che non sono inclusi nel sistema operativo. Software che “aumenta” le funzionalità del sistema operativo. Esempio: software per la scrittura di file su CD, software per la compressione dei dati. Luca Pulina (UNISS) Elaborazione 50 / 59 Componenti di un sistema operativo (2/2) Per poter eseguire le azioni richieste da un utente, un SO deve poter comunicare con l’utente stesso. La parte di SO che definisce l’interfaccia tra il SO e i suoi utenti è chiamata (shell). I I Compito della shell: comunicare con gli utenti di un computer. È l’interfaccia tra l’utente ed il cuore del SO. Le shell moderne comunicano tramite Graphical User Interface (GUI). I I File e programmi sono rappresentati da icone. Gli utenti possono immettere i comandi posizionando il cursore sopra l’icona e “clikkandoci” sopra. Luca Pulina (UNISS) Elaborazione 51 / 59 Window manager Componente fondamentale nelle shell GUI. Alloca parti dello schermo (le finestre) e tiene traccia di quale applicazione è associata ad ognuna di esse. Quando un’applicazione vuole visualizzare qualcosa sullo schermo: I I Avvisa il window manager. Indirizza l’uscita nella finestra assegnata all’applicazione. Luca Pulina (UNISS) Elaborazione 52 / 59 Il file system Organizza i dati all’interno del disco secondo una struttura logica “ad albero”. I dati sono raggruppati all’interno di archivi logici chiamati “directory”. Insiemi di dati coerenti formano un “file”. Si definisce il “percorso” (path) per accedere ad un file o directory, come l’attraversamento dell’albero fino al punto desiderato. I Il percorso può essere assoluto oppure relativo. Luca Pulina (UNISS) Elaborazione 53 / 59 File manager Componente che coordina l’uso delle funzionalità relative alla memoria di massa. Esegue una funzione di base del computer, ed è contenuto in una parte interna del SO chiamata kernel. Il file manager gestisce I I I L’archiviazione ed il reperimento dei file archiviati nella memoria di massa. Le informazioni inerenti alla collocazione dei file. L’elenco degli utenti che possono accedere al file. Luca Pulina (UNISS) Elaborazione 54 / 59 Directory e percorsi I file manager prevedono che i file siano raggruppati in directory. I I Questo approccio permette agli utenti di organizzare i file. Le directory possono contenere a loro volta delle directory, consentendo un’organizzazione gerarchica. Una catena di directory collocate all’interno di altre directory è chiamata percorso (path). Luca Pulina (UNISS) Elaborazione 55 / 59 Gerarchie Ogni file della gerarchia è specificato con un path name. La gerarchia inizia da una root directory I I In UNIX è indicata con “/” In WINDOWS abbiamo una root per ogni drive (C:, D:, ...) Luca Pulina (UNISS) Elaborazione 56 / 59 Driver di periferica Driver Unità software che comunicano con le periferiche (tramite i controller) per eseguire operazioni sui dispositivi collegati al computer. I driver si trovano all’interno del kernel. Ogni driver è progettato univocamente per una specifica periferica e per uno specifico SO. Luca Pulina (UNISS) Elaborazione 57 / 59 Il SO come gestore delle risorse Il lavoro del SO è fornire un’allocazione ordinata dei dispositivi (processori, memorie, dischi, mouse, stampanti, ...) fra i vari programmi che li richiedono. I moderni SO permettono di eseguire molteplici programmi contemporaneamente. Esempio: gestione della stampante Tre programmi in esecuzione sul medesimo PC vogliono stampare contemporaneamente dalla stessa stampante. Soluzione: il SO mette ordine bufferizzando in maniera opportuna anzichè stampare casualmente. Luca Pulina (UNISS) Elaborazione 58 / 59 Sicurezza Il SO gioca un ruolo fondamentale nel proteggere le risorse del computer da accessi non autorizzati. Se un computer è utilizzato da più persone, tale obiettivo si raggiunge stabilendo gli account I I Il SO memorizza il nome utente, la password ed i privilegi di ogni utente. I dati dell’account sono verificati durante la procedura di login. Gli account vengono creati da un amministratore (superuser), che ha un accesso di alto livello. Luca Pulina (UNISS) Elaborazione 59 / 59