Che materia stai cercando?

Evoluzione della tecnologia informatica: dal bit ad internet, Marengo, Scalera - Definizioni

Definizioni del libro "Evoluzione della tecnologia informatica: dal bit ad internet" di V. Marengo e M. Scalera per l’esame del prof. Michele Scalera sui seguenti argomenti: struttura dell'elaboratore elettronico; i sistemi di numerazione; l'algebra di Boole; i circuiti logici; gli algoritmi; i file di dati; i linguaggi a basso livello; i linguaggi simbolici ad alto livello; i sistemi operativi;... Vedi di più

Esame di Informatica e sistemi informativi docente Prof. M. Scalera

Anteprima

ESTRATTO DOCUMENTO

CODIFICA BINARIA DEI DATI:

• Sistema di codifica grandezza e segno: permette di rappresentare i numeri interi

positivi e negativi. La parola di memoria è infatti divisa in due parti:

il primo bit rappresenta il segno (0 per i numeri positivi, 1 per quelli negativi);

o tutti gli altri bit sono utilizzati per la rappresentazione del valore assoluto del

o numero.

Esempio: si vuole rappresentare i numeri +23 e -23 utilizzando 8 bit.

Conversione del numero decimale |23| in binario 10111

Codifica del numero +23 in 8 bit 00010111

Codifica del numero -23 in 8 bit 10010111

• Sistema di codifica complemento a uno: anche questo sistema permette di rappre-

sentare i numeri interi positivi e negativi.

Esempio: si vuole effettuare in binario, con il numero minimo di bit, la seguente ope-

razione aritmetica -10-11=-21 utilizzando il sistema di codifica complemento a uno.

Innanzitutto, per individuare il numero minimo di bit, bisogna convertire nel sistema

di numerazione binario il numero più grande tra quelli che compaiono

nell’operazione: il numero di bit necessari per rappresentarlo, aumentato di 1, costi-

tuirà il numero minimo di bit necessari per la realizzazione dell’operazione.

Calcolo del numero 21 in binario 10101

Numero di bit per rappresentare 21 5

Numero di bit minimo per realizzare l’operazione 5+1=6

infatti, con 5 bit, l’intervallo dei valori rappresentabili è:

5 5

[-(2 )+1;2 -1] = [-31;+31]

Realizziamo quindi l’operazione con 6 bit

Conversione del numero 10 in binario 1010

Calcolo del numero +10 in complemento a uno 001010

Calcolo del numero -10 in complemento a uno 110101

Conversione del numero 11 in binario 1011

Calcolo del numero +11 in complemento a uno 001011

Calcolo del numero -11 in complemento a uno 110100

Effettuare l’operazione -10-11 utilizzando 6 bit

-31 16 8 4 2 1 Pesi

1 0 1 0 0 Riporti

1 1 0 1 0 1 + -10

1 1 0 1 0 0 = -11

1 1 0 1 0 0 1 + Risultato

1 = Il riporto si somma

1 0 1 0 1 0

Verifica:

1•(-31) + 0•16 + 1•8 + 0•4 + 1•2 + 0•1 = -31 +8 +2 = -31 +10 = -21

• Sistema di codifica complemento a due: anche questo sistema permette di rappre-

sentare i numeri interi positivi e negativi.

Esempio: si vuole effettuare in binario, con il numero minimo di bit, la seguente ope-

razione aritmetica -10-11=-21 utilizzando il sistema di codifica complemento a due.

Calcolo del numero 21 in binario 10101

Numero di bit per rappresentare 21 5

Numero di bit minimo per realizzare l’operazione 5+1=6

infatti, con 5 bit, l’intervallo dei valori rappresentabili è:

  8  

5 5

[-(2 );2 -1] = [-32;+31]

Realizziamo quindi l’operazione con 6 bit

Conversione del numero 10 in binario 1010

Calcolo del numero +10 in complemento a uno 001010

Calcolo del numero -10 in complemento a uno 110101+1 = 110110

Conversione del numero 11 in binario 1011

Calcolo del numero +11 in complemento a uno 001011

Calcolo del numero -11 in complemento a uno 110100+1 = 110101

Effettuare l’operazione -10-11 utilizzando 6 bit

-32 16 8 4 2 1 Pesi

1 0 1 0 0 Riporti

1 1 0 1 1 0 + -10

1 1 0 1 0 1 = -11

1 0 0 1 0 1 1 + Risultato

Il riporto si trascura

Verifica:

1•(-32) + 0•16 + 1•8 + 0•4 + 1•2 + 1•1 = -32 +8 +2 +1 = -32 +11 = -21

• Sistema di codifica BCD (Binary Coded Decimal): è il sistema decimale codificato in

binario, secondo il quale ogni cifra decimale e il segno del numero occupano cia-

scuno 4 bit.

• Sistema di codifica floating point: sistema con cui è possibile rappresentare i numeri

reali; in tale sistema infatti i numeri vengono trasformati in forma normalizzata, ven-

gono cioè espressi come prodotti di due fattori:

il primo fattore (mantissa) è un numero, in valore assoluto, maggiore di 0 e

o minore di 1;

il secondo fattore (caratteristica) è una potenza di 2.

o

Inoltre, normalmente una rappresentazione di questo tipo occupa 4 byte, ovvero 32

bit.

Esempio: si vuole rappresentare il numero -123,4 in floating point.

3

Il numero normalizzato è -0,1234*10

Per cui i 4 byte assumeranno i seguenti valori:

1° byte:

o bit 1 1 segno negativo della mantissa

bit 2 0 segno positivo dell’esponente

bit 3-8 000011 valore dell’esponente, 3.

2°-4° byte:

o 00000000 00000100 11010010 valore della mantissa,1234.

I quattro byte avranno quindi la seguente configurazione:

10000011 00000000 00000100 11010010

• Codifica dei caratteri:

codice EBCDIC, acronimo di Extended Binary Coded Decimal Interchange

o Code (codice esteso di scambio decimale codificato in binario), utilizzato dai

calcolatori di grandi dimensioni;

codice ASCII, acronimo di American Standard Code for Information Inter-

o change (codice americano standard per lo scambio di informazioni), utilizzato

sui mini e personal computer.

  9  

C 3 – L’ B

APITOLO ALGEBRA DI OOLE

PROPOSIZIONI: frasi affermative che si differenziano dalle altre perché possono essere

vere o false. Una proposizione non ulteriormente scomponibile è detta proposizione ele-

mentare; ma se a questa si aggiungono i cosiddetti connettori logici, rappresentati dai

∧, ∨

simboli ~, (rispettivamente not, e, o), si possono ottenere nuove proposizioni compo-

ste.

VARIABILE BOOLEANA: entità che può assumere solo due valori (1 o 0; Vero o Falso; On

o Off).

OPERAZIONI SULL’INSIEME DELLE VARIABILI BOOLEANE: le variabili booleane indi-

pendenti sono “legate” tra loro mediante operatori booleani, questi ultimi regolati da una

tabella chiamata “tabella di verità”, divisa in due sezioni: la sezione input (costituita da un

numero di colonne pari al numero di variabili indipendenti presenti nella funzione boolea-

na), e la sezione output (costituita sempre da una colonna); inoltre le righe della tabella di

n

verità dovranno essere pari a 2 dove n è il numero di variabili indipendenti.

Esempio: sia F = (A,B) una funzione booleana in cui sono presenti due variabili indipen-

denti legate tra loro da operatori booleani (qui non specificati).

Input Output

A B F

0 0

0 1

1 0

1 1

Sulle variabili booleane si possono eseguire sei operazioni elementari:

• operazione NOT: si applica a una sola variabile booleana; quindi se C=NOT(A) = A,

la variabile booleana C assumerà valore opposto ad A;

A C

0 1

1 0

• operazione OR: si può indicare anche con il termine “somma logica” e si applica a

due variabili booleane; quindi se C = OR(A,B) = A + B = A B, il valore di C risulte-

rà vero nel momento in cui almeno una delle due variabili indipendenti A e B assu-

me valore vero, mentre sarà falso solo quando le due variabili booleane A e B sono

contemporaneamente false;

A B C

0 0 0

0 1 1

1 0 1

1 1 1

• operazione AND: si può indicare anche con il termine “prodotto logico” e si applica

• ∧

a due variabili booleane; quindi se C = AND(A,B) = A B = A B, il valore di C ri-

sulterà vero nel momento in cui le variabili indipendenti A e B sono contempora-

neamente vere, mentre sarà falso quando almeno una delle due variabili indipen-

denti assume valore falso;

A B C

0 0 0

0 1 0

1 0 0

1 1 1

• operazione NOR: si ottiene combinando le operazioni NOT ed OR; quindi se

  10  

C = NOR(A,B) = NOT(OR(A,B)) = A + B, il valore di C risulterà vero nel momento in

cui le variabili indipendenti A e B sono contemporaneamente false; mentre assume-

rà valore falso negli altri tre casi;

A B A + B C

0 0 0 1

0 1 1 0

1 0 1 0

1 1 1 0

• operazione NAND: si ottiene combinando le operazioni NOT e AND; quindi se

C = NAND(A,B) = NOT(AND(A,B)) = A B, il valore di C risulterà falso nel momento

in cui le variabili indipendenti A e B sono contemporaneamente vere; mentre assu-

merà valore vero negli altri tre casi; •

A B C

A B

0 0 0 1

0 1 0 1

1 0 0 1

1 1 1 0

• operazione OR ESCLUSIVO: si applica a due variabili booleane; quindi se

C = XOR(A,B) = A B, il valore di C sarà vero nel momento in cui i valori delle due

variabili indipendenti A e B sono diversi e falso quando assumono valore uguale.

A B C

0 0 0

0 1 1

1 0 1

1 1 0

PROPRIETÀ DELL’ALGEBRA BOOLEANA: sono dimostrabili con il metodo delle tabelle

di verità; la proprietà infatti risulta verificata quando la colonna dell’output del primo mem-

bro è uguale a quella del secondo membro.

• Proprietà commutativa:

A + B = B + A

• •

A B = B A

⊕ ⊕

A B = B A

• Proprietà associativa:

A + (B + C) = (A + B) + C

• • • •

A (B C) = (A B) C

⊕ ⊕ ⊕ ⊕

A (B C) = (A B) C

• Proprietà distributiva:

• •

A + (B C) = (A + B) (A + C)

• • •

A (B + C) = (A B) + (A C)

TEOREMI DELL’ALGEBRA BOOLEANA:

• A + 0 = A

• •

A 1 = A

• A + 1 = 1

• •

A 0 = 0

• A + A = A

• •

A A = A

• ⊕

A A = A

• A + A = 1

• •

A A = 1

  11  

• A = A

• •

A + B = A B (1° Teorema di De Morgan)

• •

A B = A + B (2° Teorema di De Morgan)

FUNZIONI BOOLEANE: espressioni algebriche che legano una variabile (dipendente) ad

altre (indipendenti) connesse tra loro tramite operatori booleani. La funzione booleana è

governata da cinque regole di priorità delle operazioni:

• parentesi ();

• NOT, NAND, NOR;

• AND;

• XOR;

• OR. • ⊕ •

Esempio: risolvere la funzione booleana F = A B + C B A.

COLONNE INPUT COLONNE INTERMEDIE COLONNA

OUTPUT

1 2 3 4 5

• • • ⊕ •

A B C B F

A B A B B A C B A

0 0 0 0 1 1 0 0 1

0 0 1 0 1 1 0 1 1

0 1 0 0 1 0 0 0 1

0 1 1 0 1 0 0 1 1

1 0 0 0 1 1 1 1 1

1 0 1 0 1 1 1 0 1

1 1 0 1 0 0 0 0 0

1 1 1 1 0 0 0 1 1

In una funzione booleana si chiama:

• termine prodotto, ogni prodotto di due o più variabili booleane;

• termine somma, ogni somma di due o più variabili booleane;

• termine canonico, un termine prodotto o un termine somma che contiene tutte le va-

riabili da cui essa dipende.

Inoltre, la rappresentazione algebrica di una funzione booleana si dice:

• in forma normale, se è espressa come somma di termini prodotto o come prodotto

di termini somma;

• in forma canonica, se essa è in forma normale e se ogni termine, somma o prodot-

to, è canonico.

SINTESI DELLE FUNZIONI BOOLEANE: procedimento con cui è possibile determinare

l’espressione algebrica di una funzione booleana data la tabella di verità corrispondente.

In generale, se da una tabella di verità si vuole ottenere una rappresentazione algebrica

composta da:

• somme di prodotti, bisogna seguire le seguenti regole:

considerare le righe, dove la funzione assume valore 1;

o la rappresentazione algebrica avrà tanti termini prodotto quanti sono gli 1

o nella colonna di output;

ogni termine prodotto sarà un termine canonico, in cui le variabili avranno va-

o lore negato se nella riga il loro valore corrispondente è 0 oppure avranno va-

lore non negato se nella riga il loro valore corrispondente è 1;

i termini prodotto così ottenuti vanno sommati tra loro per ottenere

o l’espressione finale della funzione booleana;

esempio: determinare dalla seguente tabella di verità la corrispondente funzione

booleana.

  12  

A B C F

Riga 1 0 0 0 0

Riga 2 0 0 1 1

Riga 3 0 1 0 0

Riga 4 0 1 1 1

Riga 5 1 0 0 0

Riga 6 1 0 1 0

Riga 7 1 1 0 1

Riga 8 1 1 1 1

• • • • • • • •

Per cui, F = A B C + A B C + A B C + A B C.

• prodotti di somme, bisogna seguire le seguenti regole:

considerare le righe, dove funzione assume valore 0;

o la rappresentazione algebrica avrà tanti termini somma quanti sono gli 0 nel-

o la colonna di output;

ogni termine somma sarà un termine canonico, in cui le variabili avranno va-

o lore negato se nella riga il loro valore corrispondente è 1 oppure avranno va-

lore non negato se nella riga il loro valore corrispondente è 0;

i termini somma così ottenuti vanno moltiplicati tra loro per ottenere

o l’espressione finale della funzione booleana. • • •

Per cui, riprendendo l’esempio precedente, F = (A+B+C) (A+B+C) (A+B+C)

(A+B+C).

  13  

C 4 – I

APITOLO CIRCUITI LOGICI

CIRCUITI LOGICI: circuiti utilizzati per la rappresentazione fisica delle funzioni booleane.

• Porta NOT:

• Porta OR:

• Porta AND:  

• Porta NOR:

• Porta NAND:

• Porta XOR:

SELETTORE: dispositivo logico che deve scegliere, tra due ingressi, quale di questi deb-

ba essere considerato in output.

Esempio: siano A e B due ingressi ed S il selettore che:  

• quando assume valore 0 in output si raccoglie il valore di A;

• quando assume valore 1 in output si raccoglie il valore di B.

Determinare la tabella di verità e il circuito logico corrispondente.

S A B O

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 0

1 1 1 1

  14  

Considerando i valori uguali a 1 nella colonna di output, otteniamo la funzione booleana

corrispondente:

• • • • • • • •

O = S A B + S A B + S A B + S A B

Riducendola in forma minima, si ottiene:

• • • •

O = S A (B + B) + S B (A + A) = A S + B S

Il circuito logico del selettore sarà quindi:

UNITÀ DI SOMMA: circuito logico che ha la capacità di effettuare la somma tra due nume-

ri binari; esso è costituito inoltre dal semisommatore che effettua invece la somma tra due

bit. A B Somma Riporto

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

Osservando la tabella di verità del semisommatore, possiamo notare che la colonna

“Somma” corrisponde all’output fornito dall’operatore booleano XOR, mentre la colonna

“Riporto” altro non è che la colonna di output dell’operatore AND. Pertanto, il circuito logico

del semisommatore sarà:

FLIP-FLOP RS: circuito di memorizzazione dati, costituito da:

• due ingressi, S (Set) e R (Reset) che hanno la funzione, rispettivamente, di memo-

rizzare un 1 logico e uno 0 logico nel circuito;

-1

• uno stato interno, Q che rappresenta il valore memorizzato nel circuito;

• un’uscita Q che corrisponde al valore dello stato interno. -1

R S Q Q

Riga 1 0 0 0 0

Riga 2 0 1 0 1

Riga 3 0 0 1 1

Riga 4 1 0 1 0

Riga 5 0 0 0 0

Riga 6 0 1 1 1

Riga 7 1 0 0 0

Riga 8 1 1 0 ?

Riga 9 1 1 0 ?

  15  

Dall’esempio si evince che:

• un 1 sul Set ha la capacità di memorizzare il valore 1 nel circuito di memorizzazio-

ne, indipendentemente dal valore in precedenza memorizzato;

• un 1 sul Reset ha la capacità di memorizzare il valore 0 nel circuito di memorizza-

zione, indipendentemente dal valore in precedenza memorizzato;

• se non arriva un impulso 1 sulla linea del Set o su quella del Reset il circuito ha la

capacità di ricordare lo stato precedente;

• un flip-flop può essere usato per memorizzare un bit di un dato;

• concettualmente non ha senso inviare, contemporaneamente, un 1 logico su en-

trambi gli ingressi R ed S.

Pertanto, il circuito logico del flip-flop RS sarà:

  16  

C 5 – G

APITOLO LI ALGORITMI

ALGORITMO: insieme ordinato e finito di istruzioni che, se eseguite da un esecutore,

permettono di conseguire un risultato. La progettazione di un algoritmo prevede quattro

fasi:

1. l’analisi dei requisiti del software, che serve per organizzare sia i dati di partenza in

base alle loro caratteristiche, che i risultati da conseguire in base alla forma richie-

sta;

2. la progettazione, che si pone l’obiettivo di individuare i dettagli procedurali che con-

sentano, sulla base dei dati disponibili in input, di ottenere i risultati richiesti;

3. la codifica dell’algoritmo in un linguaggio di programmazione;

4. il test del programma, che consente di scoprire e correggere eventuali errori.

COSTANTI: elementi di un algoritmo che si autodefiniscono e mantengono inalterato il lo-

ro valore durante l’esecuzione di un programma.

VARIABILI: elementi di un algoritmo che devono essere definite prima di essere utilizzate,

indicando tre parametri: il nome univoco, il tipo (numerico o alfanumerico), e la dimensio-

ne.

ISTRUZIONI: elementi di un algoritmo che possono essere distinti in sei categorie:

• istruzione di inizio programma;

• istruzioni di assegnazione (come ad es., A = 0);

• istruzioni di relazione con l’esterno (come ad es., visualizza ‘Ciao’);

• istruzioni condizionali, che consentono al computer di operare delle scelte sulla ba-

se della veridicità o meno di una condizione;

• istruzioni iterative, che consentono di eseguire più volte un certo numero di altre

istruzioni che fanno parte del programma;

• istruzioni di fine programma.

FORMALIZZAZIONE DEGLI ALGORITMI: può essere effettuata attraverso tre metodi:

• il linguaggio naturale, ossia quello umano (peraltro poco usato perché ambiguo,

complesso e poco adattabile);

• la pseudocodifica, che vincola l’utilizzatore nella descrizione delle strutture logiche

di controllo e lascia libertà nella descrizione delle azioni da eseguire;

• il diagramma a blocchi (o flow-chart), che consente di rappresentare graficamente

l’insieme ordinato di istruzioni mediante linee di connessione orientate.

  17  

C 6 – I

APITOLO LINGUAGGI A BASSO LIVELLO

LINGUAGGIO MACCHINA: linguaggio che ha un alfabeto composto da due simboli {0,1}.

Gli svantaggi dell’utilizzo di tale linguaggio di programmazione sono diversi:

• è sorgente di facili errori, poiché formato da soli due simboli;

• l’algoritmo deve essere scomposto in un alto numero di passi elementari;

• le eventuali modifiche al programma sono praticamente impossibili vista la natura

dell’algoritmo;

• richiede una conoscenza specifica dell’hardware, pertanto solo gli specialisti di si-

stema possono scrivere algoritmi;

• un programma scritto specificatamente per un computer non è portabile su altri

computer.

Di contro gli algoritmi scritti in linguaggio macchina, anche se complessi, hanno il vantag-

gio di essere, se ben scritti, efficienti: infatti essendo costituiti da passi elementari permet-

tono di utilizzare al meglio le risorse hardware del computer.

LINGUAGGI SIMBOLICI A BASSO LIVELLO: linguaggi la cui sintassi è strettamente cor-

relata con quella del linguaggio macchina. Tali linguaggi, chiamati dagli americani Assem-

bly, sono anche detti linguaggi uno a uno per la caratteristica di far corrispondere ad ogni

istruzione simbolica una sola istruzione in linguaggio macchina. Peraltro, i programmi scrit-

ti nel linguaggio Assembly continuano ad essere ostici per l’utente finale, in quanto l’unico

svantaggio che risolvono rispetto al linguaggio macchina è quello dell’utilizzazione di un

alfabeto più ricco rispetto a quello binario.

ASSEMBLER: software che traduce un programma scritto in Assembly in linguaggio mac-

china.

  18  

C 7 – I

APITOLO LINGUAGGI SIMBOLICI AD ALTO LIVELLO

LINGUAGGI SIMBOLICI AD ALTO LIVELLO: detti anche HLL (High Level Language), so-

no linguaggi che hanno il pregio, rispetto ai linguaggi simbolici a basso livello, di eliminare

molti svantaggi, infatti:

• permettono di progettare un programma con un minor numero di passi, poiché do-

tati di potenti funzioni/procedure;

• consentono di apportare facilmente eventuali modifiche;

• non richiedono una conoscenza specifica dell’hardware;

• permettono la progettazione di programmi portabili, ossia indipendenti dal compu-

ter.

Esistono quattro principali categorie di linguaggi ad alto livello:

• linguaggi algoritmici o procedurali (Pascal, Basic, Fortran, Cobol, C);

• linguaggi di quarta generazione (CLIPPER), che memorizzano i dati in database;

• linguaggi object oriented (Visual Basic, Visual C, Delphi), che non si basano più sul

concetto di algoritmo ma su quello di oggetto ed evento;

• linguaggi logici e funzionali, che sono utilizzati nella risoluzione di particolari classi

di problemi, come per esempio l’intelligenza artificiale e i sistemi esperti.

INTERPRETE: software che esegue un programma scritto in HLL nel momento stesso in

cui viene tradotto in linguaggio macchina; esso quindi non genera un codice eseguibile,

ossia quell’entità distinta dal codice sorgente in cui sono presenti le stesse istruzioni scritte

dal’uomo in linguaggio macchina.

COMPILATORE: software che, prima di eseguire un programma scritto in HLL, ne effettua

l’intera traduzione in linguaggio macchina. Peraltro, il risultato di una compilazione non è il

codice eseguibile ma il codice oggetto, ossia un codice che traduce in linguaggio macchi-

na tutte le istruzioni presenti in un programma, ma non gestisce le entità esterne (ossia

quelle entità non definite all’interno di un programma, ma memorizzate dall’utente in appo-

site librerie). Sarà infatti il linker, programma collegatore, che provvederà a prelevare la

giusta funzione dall’opportuna libreria per creare un file eseguibile e sostituirlo al simbolo

esterno utilizzato dal compilatore.

  19  

C 8 – I

APITOLO SISTEMI OPERATIVI

SISTEMA OPERATIVO: è formato da un insieme di programmi (software di base) che

hanno lo scopo di semplificare l’uso dell’elaboratore elettronico da parte dell’utente, non-

ché ottimizzare l’efficienza delle sue risorse.

SISTEMI OPERATIVI MONOTASKING: consentono di eseguire un solo programma-

utente alla volta (un tipico esempio è l’MS-DOS). Pertanto, è facile dedurre, che in un am-

biente monotasking, il programma in esecuzione (che prende il nome di task o processo),

dispone di risorse del computer che sottoutilizzerà; infatti:

• la zona di memoria libera rimarrà inutilizzata, dal momento che nessun altro pro-

gramma potrà accedervi;

• il processore, terminata l’esecuzione di un’istruzione, rimane fermo finché non glie-

ne sarà impartita un’altra;

• se il programma non prevede la generazione di tabulati su carta, la presenza di

un’eventuale stampate sarà superflua.

SISTEMI OPERATIVI MULTITASKING: consentono di eseguire più programmi-utente pa-

rallelamente; questi inoltre possono operare essenzialmente in due modalità:

modalità batch, che prevede la preparazione dei dati da elaborare prima

o dell’esecuzione del programma, attraverso la memorizzazione su dispositivi

di input come il nastro, il disco magnetico o le schede perforate (in tal modo

quindi l’utente, una volta inseriti i dati di partenza, perde la possibilità di inte-

ragire con l’elaboratore elettronico);

modalità interattiva, che consente all’utente di interagire, in tempo reale, con

o il computer.

MODELLO ONION SKIN: è denominato a buccia di cipolla, perché è costituito da sei stra-

ti, ciascuno contenente programmi del sistema operativo, che utilizzano le procedure im-

plementate negli strati sottostanti.

1. Il gestore del processore.

2. Il gestore della memoria.

3. Le periferiche virtuali che consentono di realizzare, attraverso l’utilizzo di compo-

nenti software chiamati driver, un’astrazione dall’hardware, permettendo al sistema

operativo di utilizzare i vari dispositivi senza sapere come essi funzionino, ma dia-

logandoci attraverso un’interfaccia standard. I driver permettono inoltre di gestire

eventuali conflitti che possono presentarsi nell’accesso ad una risorsa periferica,

come ad esempio l’arrivo di più richieste di stampa; in tal caso, infatti, attraverso il

meccanismo dello spooling (da SPOOL, acronimo di Simultaneous Peripheral Ope-

ration On Line), il driver fa sì che venga stampato il primo documento arrivato e

contestualmente accetta le altre richieste di stampa che memorizza su disco fisso

nell’area di spool e che evaderà successivamente in modo FIFO.

4. Il file system che si occupa della memorizzazione permanente dei dati in memoria

di massa nonché della loro gestione per nomi simbolici.

5. I programmi di libreria (compilatori, interpreti, gestori di database, ecc.) che formano

il c.d. API (Application Programming Interface), ossia un insieme di software che ef-

fettuano il collegamento tra gli strati inferiori e i programmi applicativi.

6. L’interfaccia utente che ha il compito di:

rendere visibile l’organizzazione dei file in memoria di massa;

o facilitare l’uso di comandi del sistema operativo evitando all’utente di digitare

o precise sequenze di caratteri;

facilitare l’avvio di programmi applicativi.

o

GESTORE DEL PROCESSORE: parte del sistema operativo più vicina all’hardware, che

ha il compito di avviare e terminare i processi, assegnare loro la CPU e sincronizzarli.

Durante l’esecuzione di un programma, infatti, un processo può assumere diversi stati:

  20  

• lo stato di new, quando attende di essere caricato in memoria centrale;

• lo stato di ready, quando attende che gli venga assegnata la CPU;

• lo stato di run, quando è in evoluzione;

• lo stato di stop, quando è stato completato e può essere tolto dalla memoria centra-

le;

• lo stato di wait, quando richiede un’operazione di I/O; inoltre dal momento che tale

richiesta può durare un tempo a priori non prevedibile, essendo un evento asincro-

no (ossia che dipende da fattori esterni), viene comunicata alla CPU attraverso un

particolare meccanismo, chiamato interrupt: in sostanza il dispositivo relativo

all’evento invia attraverso un’apposita linea elettrica un segnale alla CPU, la quale

interrompe la sua normale attività per eseguire quel compito specifico.

Inoltre, poiché il processore e le periferiche possono eseguire, in un determinato istante,

un solo compito, tale parte del sistema operativo è dotata di un particolare componente, lo

scheduler, che si occupa di gestire le varie code d’attesa create per ogni risorsa utilizzabi-

le dai processi. Esistono due tipi di scheduler:

• il long-term scheduler, che si occupa dell’immissione dei processi nella coda della

CPU, chiamata coda dei pronti, finché non è raggiunto il livello di multiprogramma-

zione (ossia il numero di processi che un computer è in grado di eseguire in paralle-

lo);

• lo short-term scheduler, che si occupa della scelta, dalla coda dei pronti, del pro-

cesso che deve andare nello stato di run. Questo tipo di scheduler adotta diversi

algoritmi di scheduling (criteri di scelta) a seconda del contesto in cui deve operare

il sistema operativo.

Algoritmo FIFO (First In First Out) o FCFS (First Come First Served): esegue

o i processi nello stesso ordine in cui essi richiedono l’uso della CPU.

Algoritmo SJF (Shortest Job First): esegue i processi partendo da quello con

o il tempo di esecuzione più breve.

Algoritmo di scheduling basato sulla priorità del processo: esegue i processi

o partendo da quello con priorità più alta.

Algoritmo Round Robin: esegue i processi nell'ordine d'arrivo, come il FCFS,

o ma esegue la prelazione del processo in esecuzione, ponendolo alla fine

della coda dei processi in attesa, qualora l'esecuzione duri più del quanto di

tempo stabilito (time slice), e facendo proseguire l'esecuzione al successivo

processo in attesa. I sistemi operativi che utilizzano tale algoritmo sono nor-

malmente denominati in “time-sharing” (a suddivisione di tempo).

In generale, se un sistema operativo gestisce l’assegnazione del time-slice tra i vari

processi allora si parla di sistema operativo multitasking preemptive (Windows ME,

Unix, Linux); se invece è il processo a gestire il time-slice (ovvero a rilasciare espli-

citamente il processore) allora si parla di sistema operativo multitasking cooperative

(Windows 3.1).

GESTORE DELLA MEMORIA: secondo livello del sistema operativo che permette a più

processi di condividere la memoria centrale di un elaboratore.

Innanzitutto, poiché l’indirizzo di memoria nel quale è allocato il processo varia di solito ad

ogni esecuzione, tale parte del sistema operativo deve essere in grado di effettuare la rilo-

cazione, posizionando cioè i processi in qualsiasi zona di memoria senza che l’esecuzione

risenta di tali spostamenti. Il meccanismo della rilocazione si occuperà quindi di tradurre

l’indirizzo logico generato dal programma in indirizzo fisico, ottenuto sommando ad ogni

indirizzo logico, l’indirizzo della prima locazione in cui risiede il processo in esecuzione (in-

dirizzo base); inoltre, a seconda che quest’ultimo si mantenga o meno inalterato per la du-

rata dell’esecuzione del processo, si parla rispettivamente di rilocazione statica o di riloca-

zione dinamica.

  21  

La memoria centrale poi, oltre che essere condivisa dai vari processi, è utilizzata anche

per la memorizzazione di una parte del codice del sistema operativo chiamato nucleo (o

monitor), che viene infatti caricato in memoria all’atto dello start-up del sistema (fase di av-

vio o bootstrap). L’indirizzo superiore che ha il compito di delimitare questa parte della

memoria centrale è individuato dal Fence Register; a partire da questo e verso il basso si

ha infatti la RAM disponibile per i processi in esecuzione.

Peraltro, la tecnica utilizzata dai primi sistemi operativi multitasking non consentiva la me-

morizzazione in memoria centrale di più processi; al contrario, quest’ultima ne poteva ospi-

tare solo uno, mentre tutti gli altri erano sul disco fisso pronti per essere selezionati dallo

scheduler. A tal fine il sistema operativo eseguiva tre operazioni:

• l’operazione di swap-out (scarico della memoria), che consisteva in una copia del

corrente stato di memoria su dispositivo magnetico di backing store;

• l’operazione di swap-in, che consisteva nel caricare in memoria centrale un altro

processo che risiedeva nel backing store;

• l’esecuzione del processo caricato in memoria centrale fino a una nuova interruzio-

ne.

Questo meccanismo era relativamente semplice da mettere in pratica, ma di scarsa effi-

cienza, poiché ogni operazione di swapping richiedeva l’intervento di un dispositivo ma-

gnetico, molto lento rispetto ai tempi caratteristici del processore.

Una prima evoluzione consistette quindi nella suddivisione della parte di memoria non oc-

cupata dal nucleo del sistema operativo, in altre tre regioni ben precise:

• la Running Region, che conteneva il processo in esecuzione;

• il Buffer Out, che conteneva il processo per lo swap-out;

• il Buffer In, che conteneva il processo per lo swap-in.

Fu questa la prima tecnica utilizzata dai sistemi operativi multitasking che consentiva di

memorizzare più processi contemporaneamente in memoria centrale. In seguito si pensò

allora di realizzare una tecnica basata sulla possibilità di eseguire un processo da una

qualsiasi delle partizioni di memoria disponibili, anziché solo dalla Running Region. I primi

sistemi operativi che sfruttarono tale tecnica prevedevano la progettazione a priori, da par-

te dell’esperto di sistema, di divisioni fisse di zone di memoria che potevano avere dimen-

sioni diverse tra loro, ma dovevano rimanere inalterate durante l’esecuzione del sistema e

potevano ospitare un solo processo. Tuttavia, proprio a causa di tali caratteristiche, il si-

stema a partizioni fisse fu poi abbandonato perché presentava ampi problemi di frammen-

tazione.

La frammentazione è infatti un indicatore della quantità di memoria centrale inutilizzabile a

seguito della strategia di gestione della memoria adottata e di una particolare configura-

zione dei processi presenti nel sistema. La frammentazione può essere di due tipi:

• interna, quando misura la quantità di memoria resa inutilizzabile all’interno di una

partizione;

• esterna, quando misura la quantità di memoria centrale di un’intera partizione rima-

sta inutilizzata.

I problemi analizzati portarono quindi i sistemi operativi ad evolvere verso la gestione della

memoria in partizioni variabili, che consentì di eliminare del tutto la frammentazione inter-

na; in questa nuova organizzazione, infatti, le partizioni di memoria non avevano dimen-

sioni predefinite perché erano create in base alla richiesta dei processi. Per decidere la

partizione in cui un processo doveva essere caricato, furono formulate tre diverse strate-

gie:

• la strategia first fit, che caricava il processo nella prima partizione libera abbastanza

grande per ospitarlo;

• la strategia best fit, che caricava il nuovo processo nella partizione più piccola per

contenerlo;

  22  

• la strategia worst fit, che caricava il processo nella partizione di memoria più grande

disponibile.

Tuttavia, indipendentemente dall’algoritmo scelto, anche questa tecnica di gestione della

memoria creava il problema della frammentazione esterna: un processo, infatti, per essere

eseguito doveva essere interamente memorizzato in un’unica zona contigua di memoria

centrale; di conseguenza tutte le piccole zone di memoria non contigue, che non erano in

grado di ospitare i processi di più grande dimensione, diventavano inutilizzabili.

Peraltro, anche quest’ultimo problema è stato poi finalmente risolto attraverso la tecnica

della memoria virtuale, ossia uno spazio di memoria di massa che viene utilizzato come se

fosse una parte della memoria centrale. I principali metodi di realizzazione della memoria

virtuale sono: la paginazione e la segmentazione. In particolare, con la tecnica della pagi-

nazione, il programma è diviso in parti uguali (pagine logiche) da piazzare in pagine di

uguale ampiezza della memoria centrale (pagine fisiche). All’atto del caricamento del pro-

cesso però solo una pagina sarà memorizzata in memoria centrale, le altre troveranno po-

sto in memoria di massa; se poi durante l’esecuzione è richiesta un’istruzione che risiede

nella memoria virtuale, la pagina logica che la contiene è caricata in memoria centrale in

una pagina fisica vuota; nel caso però non ci siano pagine libere, essa viene caricata al

posto di una pagina fisica in quel momento inutilizzata.

  23  

C 9 – I :

APITOLO SISTEMI OPERATIVI UN CASO DI STUDIO

SISTEMA OPERATIVO WINDOWS:

• Windows 2.x: prima versione di Windows uscita nel 1986 che peraltro non ebbe

molto successo perché, pur presentando alcuni degli aspetti tecnici evoluti che

avrebbero contraddistinto le successive versioni, si trovò a convivere con un parco

hardware installato ancora “grezzo”, poco adatto a prodotti avanzati;

• Windows 3.11: seconda versione di Windows che elimina molti degli svantaggi ca-

ratteristici del DOS; infatti:

è più intuitivo da usare perché l’interfaccia è grafica;

o tutte le applicazioni hanno un comportamento standard. Infatti mentre in am-

o biente DOS, ogni produttore di software definiva, per il proprio programma,

una sequenza di tasti per le varie funzionalità; in ambiente Windows invece

tutti i programmi ad esempio hanno una “barra del menu” che permette di

chiudere le applicazioni nello stesso modo;

consente di installare i driver necessari per l’interazione con le periferiche;

o è possibile integrare suoni e video;

o supporta il multitasking (seppur cooperative);

o permette l’interoperabilità, dal momento che i programmi possono scambiarsi

o dati, porzioni di testo, immagini, ecc., grazie alla tecnologia OLE (Object Lin-

king and Embedding), un avanzato protocollo di comunicazione tra applica-

zioni che permette di realizzare documenti che mantengono un link dinamico

con gli applicativi che li hanno generati;

comprende funzionalità multimediali che permettono di gestire schede audio,

o drive per CD-ROM, ecc.

• Windows 95: primo sistema operativo multitasking preemptive lanciato dalla Micro-

soft nel 1995. Le caratteristiche innovative di tale versione sono:

l’interfaccia, che è basata sul concetto di scrivania (desktop). Lo schermo è

o infatti utilizzato come piano dove poggiare gli oggetti (file, cartelle, ecc.) da

utilizzare durante il lavoro;

la nuova filosofia detta “Document Based”, che permette al sistema operativo

o di riconoscere quale programma ha generato un file mediate appropriate

icone ed estensioni;

la possibilità di utilizzare nomi lunghi per i file;

o il plug & play, che consente al sistema operativo di accorgersi, al riavvio del

o computer, della presenza di eventuali periferiche collegate;

la possibilità di disinstallare un programma non più utile.

o

• Windows 98: presenta alcune novità rispetto alla versione precedente; infatti:

l’esplorazione del contenuto del computer è più semplice grazie alle nuove

o opzioni del desktop, che consentono ad esempio di aprire i file con un singo-

lo clic del mouse;

ha la possibilità di gestire più monitor simultaneamente;

o consente, attraverso la tecnologia USB, di installare e utilizzare a computer

o acceso nuovi componenti hardware (fotocamere digitali);

è dotato di un software che consente la connessione guidata ad Internet.

o

  24  

C 10 – I

APITOLO FILE DI DATI

FILE DI DATI: raccolta organizzata di dati memorizzati in memoria di massa secondo una

struttura costituita da record (assimilabili alle righe di una tabella) e da field (o campi, as-

similabili alle colonne).

FILE SEQUENZIALI: prevedono come unica modalità di accesso quella sequenziale, pe-

raltro poco efficiente quando il numero di record è alto.

FILE SEQUENZIALI CON INDICI: detti anche file indexed, prevedono due possibilità di

accesso:

• quella sequenziale (insita nell’organizzazione);

• quella diretta, realizzata mediante la creazione di un file associato (file indice), che

funziona da puntatore all’archivio dati, consentendo in tal modo una visione ordina-

ta del file di dati in base ad un campo chiave primario.

OPERAZIONI SUI FILE DI DATI:

• Operazione di apertura di un file: è effettuata in modi diversi a seconda del tipo di

organizzazione dei file.

Operazione di apertura in scrittura di file sequenziali: consente la creazione

o del file se, al momento dell’esecuzione del programma, esso non esiste; se

invece il file esiste in data antecedente l’esecuzione del programma, esso

sarà ricreato ex-novo con la conseguente perdita dei record esistenti.

Operazione di apertura in lettura di file sequenziali: fa sì che il puntatore del

o file di dati punti al primo record dello stesso.

Operazione di apertura in scrittura di file indexed: consente la creazione di

o un file.

Operazione di apertura in lettura di file indexed: rende disponibile il file per

o operazioni di lettura.

Operazione di apertura in lettura-scrittura di file indexed: consente di effet-

o tuare operazioni di lettura, di scrittura, di riscrittura e di cancellazione di un

record.

• Operazione di lettura di un record: consente di prelevare un record dalla memoria di

massa, portarlo nella memoria centrale ed effettuare le operazioni del caso (come

ad es., la visualizzazione dei campi in esso contenuti). Tale operazione ha inoltre

l’effetto di spostare il puntatore del file di un numero di byte pari a quello della lun-

ghezza del record (quindi se il puntatore del file punta al primo record dopo

un’operazione di lettura punterà al record successivo, cioè al secondo).

• Operazione di scrittura di un record: consente di aggiungere un record in maniera

diversa a seconda del tipo di organizzazione data al file.

Operazione di scrittura di un record in un file sequenziale: posiziona il punta-

o tore del file, se questo è aperto in scrittura, al primo byte utile in cui sarà

possibile solo scrivere record; se invece il file è aperto in lettura, il puntatore

sarà posizionato al primo record memorizzato; pertanto bisognerà poi scorre-

re tutto il file, mediante successive operazioni di lettura, per portare il punta-

tore al primo byte utile dove effettuare la scrittura.

Operazione di scrittura di un record in un file indexed: consente, con la giusta

o chiave primaria, di scrivere direttamente il record.

• Operazione di modifica (riscrittura) di un record: consente di modificare uno o più

campi appartenenti ad un record, in maniera diversa a seconda del tipo di organiz-

zazione del file.

Operazione di modifica di un record in un file sequenziale: sostituisce il con-

o tenuto del file da modificare con quello di un secondo file appositamente

  25  


ACQUISTATO

5 volte

PAGINE

41

PESO

807.91 KB

PUBBLICATO

+1 anno fa


DESCRIZIONE APPUNTO

Definizioni del libro "Evoluzione della tecnologia informatica: dal bit ad internet" di V. Marengo e M. Scalera per l’esame del prof. Michele Scalera sui seguenti argomenti: struttura dell'elaboratore elettronico; i sistemi di numerazione; l'algebra di Boole; i circuiti logici; gli algoritmi; i file di dati; i linguaggi a basso livello; i linguaggi simbolici ad alto livello; i sistemi operativi; i sistemi operativi: tre casi di studio; i data base; il linguaggio SQL; le reti di computer.


DETTAGLI
Corso di laurea: Corso di laurea in economia e commercio (BARI, TARANTO)
SSD:
Università: Bari - Uniba
A.A.: 2011-2012

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Paola Mero di informazioni apprese con la frequenza delle lezioni di Informatica e sistemi informativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Bari - Uniba o del prof Scalera Michele.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Corso di laurea in economia e commercio (bari, taranto)

Appunti di Matematica Generale, docente Mauro Bisceglia
Appunto