![Page 1: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/1.jpg)
Elaboratore e Sistemi Operativo
![Page 2: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/2.jpg)
Com’è fatto un elaboratore? Elaboratori basati sulla
Architettura di Von Neumannche consiste di: Un’unità di Elaborazione (CPU) Memoria Centrale (RAM) per istruzioni e
dati memorizzati come sequenze di dati Periferiche Bus di Sistema
![Page 3: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/3.jpg)
Programmi e dati I programmi (seq. istruzioni) e i dati
sono memorizzati in memoria di massa (lenta)
Per essere eseguito, un programma deve essere caricato in memoria centrale (veloce)
Occorre anche allocare spazio per i dati utilizzati dal programma (es. Variabili N,Ris) in memoria centrale
![Page 4: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/4.jpg)
Come funziona l’elaboratore? Un programma viene caricato in memoria
centrale Si alloca lo spazio per i dati necessari al
programma La CPU estrae le istruzioni e 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
L’esecuzione viene scandita dal clock
![Page 5: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/5.jpg)
Memoria Centrale (RAM) La RAM è una memoria utilizzata
esclusivamente per l’esecuzione di un programma Accesso rapido Volatile
La RAM è organizzata come una tabella di celle Cella = parola di memoria Parola = sequenza di byte Es. memoria da 16 bit (2 byte), 32 bit, 64 bit
![Page 6: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/6.jpg)
Indirizzo di memoria Indirizzo di memoria = posizione
relativa alla prima cella della memoria La CPU utilizza due registri di controllo:
Registro di indirizzamento (RI) serve per recuperare le parole di
memoria Registro dati (RD)
mantiene dati input e output
![Page 7: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/7.jpg)
Funzionamento RAM
RI RD
MEMORIA: parole da 16 bit
REG.INDIRIZZIK bit:
REG. DATI. 16 bit
012
:
K2
m12...0 K
![Page 8: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/8.jpg)
CPU: Central Processing Unit Rappresenta il cuore
dell’elaboratore Unità Aritmetico-Logica (ALU)
Circuiti per calcolo vero e proprio Registri
Accumulatore, Program Counter, ... Decodificatore di istruzioni
Tabella che estrae istruzioni
![Page 9: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/9.jpg)
Registri Registro istruzione corrente (RIC)
contiene l’istruzione correntemente eseguita Contatore di Programma (PC)
indirizzo della prossima istruzione da eseguire Registro interruzioni (RINT)
contiene informazioni riguardo lo status delle periferiche
Accumulatore (ACC) Contiene valori utilizzati durante operazioni
![Page 10: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/10.jpg)
Modello Semplificato
2:1:0:
:
RAM
decoder
RIC
PC
ACC
ALU
![Page 11: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/11.jpg)
Istruzioni della Macchina Le istruzioni della macchina sono
codificate in forma numerica ed inserite insieme agli altri dati nella memoria centrale
Istruzione = operazione di base sui registri e sulla RAM
Codifica delle istruzioni = Elenco ordinato Identificatore di un istruzione ~ Numero
d’ordine
![Page 12: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/12.jpg)
Esempio di Set Istruzioni Istruzione SUM con parametro N
Nuovo valore del reg. ACC = ACC + RAM[N]
Istruzione MOVE con parametro N Nuovo valore di RAM[N] = ACC
Istruzione LOAD con parametro N Nuovo valore di ACC = RAM[N]
Istruzione HALT: termina l’esecuzione
![Page 13: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/13.jpg)
Programma in Linguaggio Macchina
Sequenza di istruzioni Un programma viene interpretato
sequenzialmente attraverso il registro PC che identifica la prossima istruzione da eseguire
Per capire meglio occore introdurre il ciclo di interpretazione dei programmi
![Page 14: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/14.jpg)
Stato iniziale della macchina Supponiamo di aver caricato le
istruzioni nella RAM a partire dalla cella con indirizzo 0
Inoltre supponiamo di avere a disposizione una tabella che ci permette di recuperare l’istruzione e i relativi parameteri
![Page 15: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/15.jpg)
Esecuzione tramite ciclo di fetch
Inizializzazione: memorizza 0 nel registro PC Ciclo di Fetch:
1. Recupera il valore nella cella con indirizzo PC nella RAM e lo memorizza nel registro RIC (registro istruzione corrente)
2. Somma 1 al valore contenuto in PC e lo memorizza in PC
3. Decodifica il valore contenuto in RIC (estrae il codice operazione e il parametro)
4. Esegui l’istruzione 5. Torna al punto 1 a meno che l’istruzione non sia
quella di `fine programma’
![Page 16: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/16.jpg)
Esempio di programma Considerate la seguente conf. iniziale della RAM:
RAM[0]= LOAD 4 RAM[1]= SUM 5 RAM[2]= MOVE 4 RAM[3]= HALT RAM[4]= 21 RAM[5]= 9
dove SUM N: ACC ’ = ACC + RAM[N] MOVE N : RAM[N] ’ = ACC LOAD N : ACC ’ = RAM[N] HALT: termina esecuzione
N = parametro Cosa fa il programma?
![Page 17: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/17.jpg)
Soluzione Il programma precedente esegue i seguenti
passi: Copia il valore della cella 4 (=21) nel reg. ACC Somma il val. della cella 5 (=9) al valore in ACC e lo
memorizza di nuovo in ACC (=30) Copia il valore del reg. ACC nella cella 4 (=30)
Alla fine abbiamo che: ACC e RAM[4] contengono 30 RAM[5] contiene ancora 9
![Page 18: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/18.jpg)
Compilatore I programmi in realtà si scrivono in linguaggi più
semplici del linguaggio macchina chiamati linguaggi di programmazione ad alto livello (C, Java, Pascal)
I programmi scritti in linguaggi di alto livello vengono poi tradotti automaticamente in linguaggio macchina per poter essere eseguiti
Il compilatore di un linguaggio di programmazione (ad es. il compilatore C) è un programma che effettua la traduzione in linguaggio macchina
Un programma eseguibile (.exe in Windows) è il risultato della compilazione
![Page 19: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/19.jpg)
Programmi Esistono vari tipi di programmi Programmi di base:
servono per gestire le risorse della macchina
Es. Sistema operativo Windows Programmi applicativi:
aggiungono nuove funzionalità Es. Word, Excel, etc.
![Page 20: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/20.jpg)
Il Sistema Operativo
![Page 21: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/21.jpg)
Sistema Operativo (Software di base)
Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso indici
I sistemi operativi sono organizzati a strati
Strato = macchina virtuale che maschera la macchina fisica (hardware)
![Page 22: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/22.jpg)
Sistema operativo
Hardware
Sistema operativo
Interfaccia utenteutente
![Page 23: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/23.jpg)
Funzionalità Possiamo identificare 5 strati tra
macchina fisica e utente Gestore dei processi Gestore della memoria Gestore delle periferiche File system Interprete dei comandi
![Page 24: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/24.jpg)
Gestore dei processi Gestisce l’esecuzione dei programmi Le unità di esecuzione vengono chiamate
processi Per eseguire un programma occorre
mantenere il corrispondente processo attivo nella CPU
In ambiente multi-utente il gestore deve decidere a quale processo assegnare la CPU
Inoltre deve reagire agli eventi esterni (le interruzioni provenienti dalle periferiche)
![Page 25: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/25.jpg)
Cos’e’ un 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 26: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/26.jpg)
Gestore della memoria Il gestore della memoria deve
allocare la memoria partizionarla tra i processi che la richiedono
Grazie al gestore della memoria gli strati superiori hanno l’illusione che ogni processo abbia una memoria dedicata
![Page 27: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/27.jpg)
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: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/28.jpg)
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: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/29.jpg)
Interprete dei comandi Consente all’utente di attivare i
programmi Sfrutta le funzionalità degli strati
inferiori per cercare in memoria il programma invocato allocare la memoria richiesta dal
programma attivare un processo per eseguire il
programma
![Page 30: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/30.jpg)
Evoluzione dei Sistemi Operativi Sistemi batch con schede (50’s-60’s) System/360 IBM compatibili (65-70’s) Sistemi operativi UNIX e DOS (80’s) WINDOWS (90’s)
![Page 31: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/31.jpg)
Uno sguardo da vicino al sistema operativo
Il File System
![Page 32: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/32.jpg)
Gestione della Memoria Secondaria
La memoria di massa serve per gestire grandi quantità di dati Persistentenza Sicurezza Classificazione
Soluzione I dati vengono organizzati logicamente in file e gestiti dal sistema operativo
![Page 33: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/33.jpg)
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 34: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/34.jpg)
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 35: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/35.jpg)
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 36: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/36.jpg)
File System in DOS/Windows Esistono delle directory predefinite
che corrispondono alle unità di memoria secondaria Disco fisso indicato con C: Dischetto indicato con A:
![Page 37: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/37.jpg)
Struttura ad albero
![Page 38: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/38.jpg)
Struttura ad albero
Floppy da 3.5 A:
Applicazioni Biblioteca
Elab_imm Elab_suoni
Photoshop.exe file
directory
radice
Hard Disk C:
![Page 39: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/39.jpg)
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 40: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/40.jpg)
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 41: Elaboratore e Sistemi Operativo. Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione](https://reader036.vdocuments.pub/reader036/viewer/2022070312/5542eb4c497959361e8b97d8/html5/thumbnails/41.jpg)
Gestione File System File possono venire memorizzati con
Allocazione continua di blocchi di byte Allocazione collegata (un blocco contiene
l’indirizzo del prossimo) Allocazione con indice (si mantiene una
tabella in memoria per recuperare i blocchi) – DOS -
I-node: tabella con puntatori ad altre tabelle (combina le ultime due) – UNIX –