Tecnologie per il web e lo sviluppo multimediale 1cm Sistemi per l

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