Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi...

36
Sistemi di Calcolo

Transcript of Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi...

Page 1: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Sistemi di Calcolo

Page 2: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Architettura dei Sistemi Informatici

� Sistemi informatici PC, terminali e reti

� Architettura insieme delle componenti del sistema, descrizione delle loro funzionalità e della loro interazione

� Suddivisione principale hardware e software

Page 3: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Hardware I

� Unità di Elaborazione (Processore o CPU):� Svolge le elaborazioni

� Coordina il trasferimento dei dati

� Cioè esegue i programmi

� Memoria Centrale � Memorizza dati e programmi per l’elaborazione

� Volatile

� Accesso rapido

� Capacità limitata

Page 4: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Hardware II

� Memoria Secondaria (harddisk, floppy)� Grande capacità

� Persistente

� Accesso piu lento della RAM

� Unità Periferiche� Interfaccia verso l’esterno

� Terminali (tastiera, video) e Stampanti

� Bus di Sistema� Collega le altre componenti

Page 5: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Esempi: Personal Computer (PC)

� Contenitore con� CPU, RAM

� Memoria Centrale� Fisso

� Unità per Dischetti/CD

� Monitor

� Tastiera

Page 6: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Alcuni accessori per PC

� Lettore Floppy, CD, DVD

� Modem

� Mouse

� Stampante

� Scanner

� Joystick

Page 7: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Altri Sistemi Informatici

� Workstation� Calcolatore con elevate prestazioni

� Main-frame� Servono reti di terminali con centinaia di utenti

� Notebook (palmari) e palmari� Elaboratori portatili

Page 8: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Altri Sistemi Informatici

� Reti di Calcolatori

� Reti Locali� collegano terminali vicini tra loro (ad es. il nostro laboratorio)

� Reti Geografiche� collegano dei calcolatori a medio-grandi distanze (ad es. Internet)

Page 9: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Software

� Software di base: � Dedicato alla gestione dell’elaboratore

� Es. sistemi operativi: Windows XP/Vista, Unix, Linux

� Software applicativo:� Dedicato alla realizzazione di specifiche applicative

� Esempio: � programmi per scrittura,

� navigazione su internet, ...

Page 10: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Funzionamento dell’Elaboratore

Page 11: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Come funziona l’elaboratore?

� Un programma (sequenza di istruzioni) viene caricato in memoria centrale

� Si crea lo spazio per i dati necessari al programma

� La CPU estrae le istruzioni e i dati dalla memoria centrale, le decodifica e le esegue utilizzando registri interni (accesso veloce)

� L’esecuzione può comportare il trasferimento di dati in input e output tra memoria centrale e periferiche attraverso il bus di sistema

Page 12: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Elaboratore Ideale di Von Neumann

2:1:0:

:

RAM

decoder

RIC

PC

ACC

ALU

CPU

Page 13: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Registri

� Registro istruzione corrente (RIC) � contiene l’istruzione correntemente eseguita

� Contatore di Programma (PC)� indirizzo della prossima istruzione da eseguire

� Accumulatore (ACC)� Contiene valori utilizzati durante operazioni

� Decoder� Decodifica codice istruzione

Page 14: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Programma in Linguaggio Macchina

� Le istruzioni della macchina sono codificate in forma numerica ed inserite insieme agli altri dati nella memoria centrale

� Istruzione = operazione di base su registri e memoria

� Programma = Sequenza di istruzioni codificate

� Un programma viene interpretato sequenzialmente attraverso il registro PC che identifica la prossima istruzione da eseguire

Page 15: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Esecuzione tramite ciclo di fetch

Inizializzazione: memorizza 0 nel registro PC

Ciclo di Fetch:1. Valore nella cella PC � registro RIC (registro istruzione

corrente)

2. Somma 1 al valore contenuto in PC

3. Decodifica istruzione contenuta in RIC

4. Esegui l’istruzione

5. Torna al punto 1 oppure termina esecuzione

Nota: esecuzione sequenziale del programma

Page 16: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Astrazione dai dettagli hardware

� L’utente non si preoccupa di gestire direttamente l’esecuzione dei programmi (caricamento in memoria, ciclo di fetch, gestione I/O ed errori, ecc)

� Questi compiti sono demandati al software di base (sistema operativo) che fornisce all’utente solamente funzionalita’ ad alto livello

� Es. un comando – attraverso interfaccia grafica - per lanciare l’esecuzione di un programma

Page 17: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Sistema Operativo

Page 18: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Sistema Operativo

Il sistema operativo è un insieme di programmi che nasconde l’hardware agli utenti

� fornisce funzionalita’ ad alto livello (es. esecuzione di un programma)

� rende semplice l’uso della macchina

� sfrutta al meglio l’hardware

� fornisce un’organizzazione logica per i dati in memoria secondaria

Sistema operativo = macchina virtuale

Page 19: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Servizi del Sistema Operativo

� Multi-programmazione� Esecuzione contemporanea di diversi programmi anche su

macchine con un solo processore

� Memoria virtuale� Esecuzione di programmi di grandi dimensioni anche su elaboratori

con memoria principale di capacita’ ridotta

� Time-sharing� Esecuzione comtemporanea di processi di diversi utenti

� Protezione macchina e utenti� Login, connessioni di rete, memoria

Page 20: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Funzionalità

� Gestiome dei processi

� Gestione della memoria

� Gestione delle periferiche

� File system

� Interprete dei comandi

Page 21: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Gestore dei processi

� Gestisce l’esecuzione concorrente dei programmi(multi-programmazione)

� Le unità di esecuzione vengono chiamate processi

� Per eseguire un programma occorre mantenere il corrispondente processo attivo nella CPU

� Il gestore deve decidere a quale processo assegnare la CPU in ogni istante (scheduler)

� Inoltre deve reagire agli eventi esterni (es. le interruzioni provenienti dalle periferiche)

Page 22: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Processi: Definizione di processo

� Programma = lista di istruzioni = nozione statica

� Processo = programma in esecuzione = programma + stato corrente variabili = nozione dinamica

� Stato corrente=� valori in memoria centrale

� valori nei registri della CPU

� In un PC un solo processo in esecuzione alla volta

Page 23: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Gestione Memoria Centrale

� I processi si alternano durante l’esecuzione nella CPU

� Per ragioni di efficienza dobbiamo mantenere più programmi in memoria centrale

� Il sistema operativo si occupa di recuperare ed allocare spazio di memoria per l’esecuzione dei processi

� Trasformazione indirizzi logici di un programma in indirizzi di memoria: rilocazione dei programmi

Page 24: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Memoria Centrale: Compilatore, linker e loader

� Compilatore e Linker� Traducono programmi scritti in linguaggio ad alto livello in

programmi in linguaggio macchina che accedono dati (variabili ecc) utilizzando indirizzi logici indipendenti dalla posizione in memoria centrale

(Linker: si utilizza per compilare programmi divisi in moduli)

� Loader� carica il programma compilato in memoria centrale.

Page 25: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Memoria Centrale: Allocazione ai processi

� Segmentazione: La memoria centrale viene suddivisa in segmenti di lunghezza variabilecontenenti i programmi

� Paginazione: La memoria centrale e i programmi vengono suddivisi in pagine di lunghezza fissa.

� I programmi vengono caricati in memoria anche in pagine o segmenti non contigui

Page 26: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Memoria Virtuale

� Con la suddivisone del programma in pagine non è necessario mantenere tutto il programma in memoria centrale

� Paginazione a richiesta: � Se la pagina del programma che contiene la

prossima esecuzione da eseguire non è in memoria si carica da disco (page swapping)

� Indirizzi nei programmi diventano virtuali

Page 27: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Gestore delle periferiche

� Maschera le caratteristiche hardware delle periferiche

� Gestisce le operazioni di input e output

� Fornisce procedure ad alto livello � ad esempio per la lettura, scrittura di dati su memorie

secondarie

� scrittura su stampanti, ecc

Page 28: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

File System

� Gestisce i dati in memoria di massa

� Struttura i dati in modo gerarchico utilizzando file e directory

� Fornisce operazioni di alto livello per la gestione di file � ad esempio creazione di un nuovo documento,

directory ecc

� Protegge i dati da accessi esterni

� Garantisce la condivisione sicura dei dati

Page 29: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

File

� Nome:� Identifica il file spesso con una estensione che indica il tipo

di file

� es. Tesi.doc oppure somma.exe

� Struttura:� Sequenza di byte

� Sequenza di blocchi (record) di byte

� Tipo: � File di caratteri e binari (eseguibili)

� Directory

� Attributi: � nome, diritti di accesso,proprietario

Page 30: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Operazioni su File

� Il file system consente di effettuare le seguenti operazioni:

� creare, cancellare, spostare, recuperare, modificare documenti in memoria di massa (memoria persistente)

� Modificare gli attributi di un file

� Ridenominare i file

Page 31: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Directory

� E’ un file di tipo speciale che mantiene informazioni su altri file� permette di strutturare insiemi di file (dati) in maniera

gerarchica

� contiene la lista dei nomi e attributi dei file e directory al suo interno

� Quindi: il file system ha una struttura ad albero� Radice = radice del’intero file system

� Nodi interni = directory

� Foglie = documenti/programmi

Page 32: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Struttura ad albero

Page 33: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Struttura ad albero

Floppy da 3.5 A:

Applicazioni Biblioteca

Elab_imm Elab_suoni

Photoshop.exe file

directory

radice

Hard Disk C:

Page 34: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Path names

� In un’organizzazione ad albero i nomi devono contenere informazioni sui cammini sui quali si trovano i corrispondenti file� Nomi relativi:

� relativi ad una particolare directory

� Nomi assoluti: � specificano il cammino a partire dalla radice (root) del file

system (mai ambigui)

� Nei path names si possono utilizzare I due simboli speciali � Il punto (.) rappresenta la directory corrente

� I due punti (..) rappresentano la directory immediatamente superiore nel’albero

Page 35: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Esempio cammini

Floppy da 3.5 A:

Applicazioni

Elab_imm

Elab_suoni

Photoshop.exe A:\Applicazioni\Elab_imm\Photoshop.execammino assoluto

..\Elab_suoni

cammino relativo da Elab_imm

Page 36: Sistemi di Calcolo - unige.it · Sistemi di Calcolo. Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti ... Suddivisione principale hardware e software.

Interprete dei comandi

� Interpreta i comandi che l’utente invia alla macchina/sistema operativo:� attraverso l’interazione con l’ambiente grafico

� tramite una finestra di comando (command shell)

� Permette quindi l’invio di programmi, la navigazione nel file system, ecc.