Escolar Documentos
Profissional Documentos
Cultura Documentos
Parte frazionaria
nf bit
Segno esponente
Mantissa
(nM bit)
Esponente
(nE bit)
Sia la mantissa che lesponente hanno un numero finito di cifre e quindi gli intervalli
rappresentati sono sempre limitati
[min_real, max_real]
in funzione del numero di bit.
In ogni caso avremo degli errori dovuto allarrotondamento.
In generale se m il peso della cifra meno significativa lerrore massimo che si
commette :
sia ha la condizione di
overflow quando x> 9.99999 1099
underflow quando x< 1.00000 10-99
16. Gli operatori booleani
Sulle stringhe di bit sono definiti gli operatori booleani che lavorano bit a bit e sono:
AND (prodotto logico): dati due bit, restituisce il valore:
1 se e solo se i bit sono posti a 1
0 in tutti gli altri casi
OR (somma logica): dati due bit, restituisceil valore:
0 se e solo se i bit erano posti a 0
1 in tutti gli altri casi
NOT (operatore di negazione): dato un bit, restituisce il valore
0 se esso posto a 1
1 se esso era posto a 0
a
0
0
1
1
b
0
1
0
1
Not a
1
1
0
0
a AND b
0
0
0
1
a OR b
0
1
1
1
Tali operazioni richiedono un tempo di accesso sempre superiori ai tempi necessari alle
elaborazione che avvengono nella CPU. Per compensare tale differenza, tra memoria
centrale e CPU interposta una memoria cache, che fa da buffer per il trasferimento
di informazioni tra CPU e memoria centrale.
La memoria cache realizzata a due livelli: un primo L1 interno alla PCU, un secondo
L2 esterno, con memorie di solito pi lente rispetto a quelle della L1 (4 -5 volte), ma
sempre pi veloci (20 -30 volte) della memoria centrale.
Nella memoria centrale anche previsto un buffer per lo scambio di informazioni con
le memorie di massa, in genere di natura magnetica e quindi con tempi di accesso
maggiori
La selezione dei registri della memoria centrale di tipo casuale, ossia il tempo di
accesso non dipende dalla posizione del registro.
In memoria centrale troviamo sia memorie di lettura e scrittura che di sola lettura
(ROM).
Si tratta quindi di memorie RAM (Random Access Memory); in effetti comunemente
con il termine RAM si intendono (impropriamente) solo memorie di tipo volatili, ossia
che perdono le informazioni che si perdono quando si spegne il computer.
Pi precisamente le memorie possono classificarsi secondo:
1. modalit di accesso
a. casuale (RAM)
b. sequenziale (quando il tempo di accesso dipende dalla posizione)
2. operazioni possibili
a. lettura e scrittura
b. solo lettura (ROM)
3. alterabilit
a. memorie volatili
b. memorie permanenti, necessariamente di tipo ROM (ROM, EPROM,
EEPROM)
I principali parametri di valutazione per la memoria centrale di un elaboratore sono:
Capacit: numero totale di celle della memoria (1-4 GB)
Velocit, che pu essere espressa come
o Tempo di accesso alla memoria: tempo necessario per un singolo accesso in
memoria ( dellordine dei ns = miliardesimo di sec)
o Ciclo di memoria: Numero di accessi per unit di tempo
o Velocit di trasferimento (Transfer rate): bit/secondo trasferiti
Costo per bit: (che si quantifica in /MB)
37. Domanda: Gerarchia delle memorie e loro gestione
Nel modello modificato di Von Neumann (figura) troviamo
Una memoria centrale
Una memoria di massa
La memoria centrale deve contiene:
La CPU
Le memorie di massa
La CPU esegue sulla memoria centrale operazioni di load e di store, che richiedono un
tempo di accesso superiori ai tempi necessari alle elaborazione che avvengono nella
CPU. Per compensare tale differenza, tra memoria centrale e CPU interposta una
memoria cache, che fa da buffer per il trasferimento di informazioni tra CPU e
memoria centrale.
La memoria cache realizzata a due livelli: un primo L1 interno alla PCU, un secondo
L2 esterno, con memorie di solito pi lente rispetto a quelle della L1 (4 -5 volte), ma
sempre pi veloci (20 -30 volte) della memoria centrale.
La memoria di massa una memoria ausiliarie caratterizzata da unelevata capacit.
Essa non comunica direttamente con la CPU, ma le informazioni devono prima
transitare nella memoria centrale.
Per quanto riguarda le tecnologia di realizzazione:
la memoria centrale di tipo elettronico (circuiti flip flop a semiconduttori)
le memorie di massa sono di tipo magnetico o ottico) con tempi di accesso maggiori.
Per compensare tale differenza nei tempi di accesso, lo scambio di informazioni fra
memoria centrale e memoria di massa avviene tramite un apposito buffer.
Si stabilisce quindi tra le memorie una gerarchia con:
tempi di accesso crescenti, capacit di accesso, costo decescente, a partire dalla CPU
principali
caratteristiche
dei
sistemi
operativi
loro
Anni 50
Viene prodotto il primi S.O. IBM 701.
I tempi di inattivi della CPU vengono ridotti:
o
caricando insieme pi programmi in gruppi (batch) su supporto
magnetico.
o Gestendo tramite un opposito linguaggio JCL (Job Control Language)
Anni 60
Attraverso la multiprogrammazione si eliminano i tempi morti della CPU durante le
operazione di I/O. Ci reso possibile
dallintroduzione di processori in grado di gestire autonomamente le operazione
di I/O
dalla tecnica delle interruzioni
Anni 60 70
Il grado di multiprogrammazione viene ottimizzata mediante la tecnica dello
swapping, che estende la memoria virtuale dellutilizzatore
Anni 70
Sistemi Time sharing (sistemi multi utente): la CPU assegna in successione quanti di
tempo (time slice) ad ogni utente, consentendo a questi di accedere direttamente e
contemporaneamente ai programmi in esecuzione.
Ci determina:
un miglioramento del throughput complessivo
un peggioramento del tourn around time
Anni 80
Si sviluppano S.O.
per pc
transazionali, ossia per particolare dedicati a particolare applicazioni
Anni 90 2000
Si sviluppano S.O.
Anni 2000
ad oggi S.O. per dispositivi mobili (palmari, cellulari) con interfacia grafica evoluta e
risparmio energetico.
51. Domanda: il kernel
Un processo una sequenza di istruzioni da eseguire da parte della CPU.
In un sistema multriprogrammato in memoria risiedono pi processi, che risultano
quindi concorrenti, ossia si contendono le stesse risorse (CPU, memoria, input,
output).
Il sistema operativo deve pertanto risolvere problematiche quali:
Interferenza tra processi.
Competizione, che rallenta lesecuzione dei processi.
Cooperazione, tramite uno scambio messaggi tra i processi che ne consente la
sincronizzazione.
Affinch il sistema operativo possa gestire un sistema multiprogrammato, esso deve
acquisire prima dellesecuzione di ciascun processo, il descrittore del processo che
un record contenente le informazioni necessarie per definire il processo e il suo stato.
La componente del sistema operativo che gestisce i processi il kernel.
Le sue funzionalit sono:
creazione dei processi (allinterno del sistema operativo), ad esempio tramite
- le primitive di fork che generano un nuovo processo (figlio) per svolgere
determinate operazioni.
- le primitive di join che consentono al processo padre di sincronizzarsi con i
processi figli.
Sincronizzazione dei processi: consente di risolvere i problemi di cooperazione,
competizione ed interferenza.
I sistemi operativi seguono due modelli:
o a memoria comune: i diversi processi accedono a risorse comuni
(hardware e software) che si trovano in un'unica memoria condivisa.
Per la gestione di tali risorse, si ricorre ad un semaforo, ossia di
apposite procedure in grado di regolare laccesso alle risorse.
o a scambio di messaggi: ciascun processo genera primitive in grado di
realizzare un reciproco scambio di messaggi (send e receive).
Schedulind (schedulatore) dei processi: consente di scegliere quali processi
devono essere assegnati alla CPU ed ha lo scopo di ottimizzare i parametri
caratteristici di un sistema operativo (troughput, tourn around time, tempo di
attesa e tempo di risposta).
Gli algoritmi di scheduling si basano su una strategia di:
FIFO primo processo in coda il primo ad essere servito oppure, se esistono pi
code di processi, vengono serviti sulla base della priorit.
SJF (short job first): sono serviti i processi che durano di meno.
I processi possono trovarsi nello stato di
- Running: sono in esecuzione,
CONDIZIONALE
If (condizione)
Then istruzione a
Else istruzione b
Case (espressione)
Valore 1: istruzione 1
Valore 2: istruzione 2
..
Valore n: istruzione n
end
While (condizione)
Do
Istruzione 1
Istruzione 2
..
istruzione m
COSTRUTTI ITERATIVI
For i: i1 to i1
Istruzione 1
Istruzione 2
.
istruzione m
end