24
1 Software e Sistemi Operativi Software e Sistemi Operativi SOFTWARE SOFTWARE L’hardware è la parte che si può prendere a calci; il software quella contro cui si può solo imprecare”. SOFTWARE E’ l’insieme dei dati e dei programmi che rendono possibile l’inserimento dei dati e dei comandi da parte dell’utente, volti all’elaborazione da lui desiderata e perseguita. I programmi si dividono in sistemi operativi (che svolgono le funzioni di base) e programmi applicativi (nati per funzioni specifiche) .

Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

1

Software e Sistemi OperativiSoftware e Sistemi Operativi

SOFTWARESOFTWARE

“L’hardware è la parte che si può prendere a calci; il software quella contro cui si può solo imprecare”.

SOFTWAREE’ l’insieme dei dati e dei programmi che rendono possibile l’inserimento dei dati e dei comandi da parte dell’utente, volti all’elaborazione da lui desiderata e perseguita.I programmi si dividono in sistemi operativi (che svolgono le funzioni di base) e programmi applicativi (nati per funzioni specifiche) .

Page 2: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

2

Introduzione SO Introduzione SO −− 11

Il software può essere diviso in due grandi classi:i programmi di sistemaprogrammi di sistema, che gestiscono le funzionalità del sistema di calcoloi programmi applicativiprogrammi applicativi, che risolvono i problemi degli utenti

L’insieme dei programmi di sistemaprogrammi di sistema viene comunemente identificato con il nome di Sistema OperativoSistema Operativo (SO)

DefinizioneDefinizioneUn sistema operativo è un programma che controlla lcontrolla l’’esecuzione di esecuzione di programmi applicativiprogrammi applicativi ed agisce come interfaccia fra le applicazioni e interfaccia fra le applicazioni e ll’’hardwarehardware del calcolatore

Tutte le piattaforme hardware/software richiedono un sistema operativoQuando si accende un elaboratore, occorre attendere alcuni istanti per poter iniziare a lavorare: durante questa pausa il computer carica il SO

Introduzione SO Introduzione SO −− 22

Page 3: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

3

Scopo del sistema operativoScopo del sistema operativo

Gestione EFFICIENTE delle risorse del sistema di elaborazione

Rendere AGEVOLE l’interfaccia tra l’uomo e la macchina

Gestione dei processiGestione della memoria principaleGestione della memoria di massa (file system)Realizzazione dell’interfaccia utenteGestione dell’accesso simultaneo di più utenti alla stessa macchinaEsecuzione simultanea di più processi sulla stessa macchinaRilevamento e gestione degli erroriAccounting

Compiti del sistema operativoCompiti del sistema operativo

Page 4: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

4

Esempio: il SO come gestore risorse Esempio: il SO come gestore risorse –– 11

Si consideri un ristorante con un capo–cuoco (che dirige la cucina) ed i suoi aiutanti, camerieri e clienti:

I clienti scelgono un piatto dal menùUn cameriere prende l’ordine e lo consegna al capo–cuocoIl capo–cuoco riceve l’ordine e assegna uno o più aiutanti alla preparazione del piattoOgni aiutante si dedicherà alla preparazione di un piatto, il che potrà richiedere più attivitàdiverseIl capo–cuoco supervisiona la preparazione dei piatti e gestisce le risorse (limitate) disponibili

Esempio: il SO come gestore risorse Esempio: il SO come gestore risorse –– 22

Il capoIl capo––cuoco cuoco èè il sistema operativo!il sistema operativo!

I clienti sono gli utentiLe ricette associate ai piatti sono i programmiIl menù ed il cameriere costituiscono l’interfaccia verso il sistema operativo (grafica e non)Gli aiutanti sono i processiLa cucina è il computer; pentole, fornelli, etc. sono le componenti hardware

Page 5: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

5

Esempio: il SO come gestore risorse Esempio: il SO come gestore risorse –– 33

Problemi del capo–cuoco:Esecuzione fedele delle ricetteAllocazione efficiente delle risorse esistenti (aiutanti, fornelli, etc.) Coordinamento efficiente degli aiutantiLicenziamento degli aiutanti che non si comportano secondo le regole

Problemi del sistema operativo:Efficienza nell’uso delle risorse (processori, memoria, dischi, etc.)Protezione nell’uso delle risorseCoordinamento dei processi

Tipologie di SOTipologie di SO

Tipologie di SO:Sistemi mono-utente - sistemi multi-utente

i sistemi mono-utente sono destinati ad elaboratori per usi personale (tipo PC) mentre i sistemi multi-utente sono destinati ad elaboratori utilizzati da piu` utenti contemporaneamente

Sistemi mono-programmati - sistemi multi-programmatii sistemi mono-programmati gestiscono l’esecuzione di un solo

programma alla volta, mentre i sistemi multi-programmatigestiscono piu` programmi contemporaneamente

Sistemi interattivi-sistemi batchclassificazione basata sull’ interazione con l’utente

Page 6: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

6

Il SO come macchina estesa Il SO come macchina estesa –– 11

Visione a strati delle componenti hardware/software che compongo un elaboratore

Il SO come macchina estesa Il SO come macchina estesa –– 22

Il SO può essere inteso come uno strumento che virtualizzavirtualizzale caratteristiche dell’hardware sottostante, offrendo all’utente la visione di una macchina astrattamacchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibileIn questa visione, un SO…

…nasconde a programmatori/utenti i dettagli dell’hardware e fornisce un’interfaccia conveniente e facile da usare…agisce come intermediario tra programmatore/utente e hardware

Parole chiaveIndipendenza dall’hardwareComodità d’usoProgrammabilità

Page 7: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

7

Il SO come macchina estesa Il SO come macchina estesa –– 33

L’utente è in grado di utilizzare la macchina fisica senza conoscere i dettagli della sua struttura interna e del suo funzionamento

1.1. HardwareHardware — fornisce le risorse fondamentali dicalcolo (CPU, memoria, device di I/O)

2.2. SistemaSistema OperativoOperativo — controlla e coordina l’utilizzodelle risorse hardware da parte dei programmiapplicativi dell’utente

3.3. ProgrammiProgrammi ApplicativiApplicativi — definiscono le modalitàdi utilizzo delle risorse del sistema, per risolvere i problemi di calcolo degli utenti (compilatori, database, video game, programmi gestionali)

4.4. UtentiUtenti — persone, altri macchinari, altri elaboratori

Hardware

Sy

stems software

Applications software

Visione Visione ““a cipollaa cipolla”” del sistema del sistema di calcolodi calcolo

I SO sono costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzioneI vari moduli del SO interagiscono tra loro secondo regole precise, al fine di realizzare le funzionalità di base della macchina

Architettura del sistema operativoArchitettura del sistema operativo

KERNELKERNEL

Gestore dei ProcessiGestore dei Processi Gestore della Gestore della Memoria CentraleMemoria Centrale

Gestore dellGestore dell’’I/OI/O Gestore del Gestore del File SystemFile System

Interfaccia utenteInterfaccia utente L’insieme dei moduli per la gestione della CPU e della memoria centrale è il kernelkernel

Page 8: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

8

Ancora sul sistema operativoAncora sul sistema operativo

Si ha a che fare con file, directory, etc., e non ci si deve preoccupare di come i dati sono memorizzati sul disco

EsempioEsempio: il filesystemfilesystem

Riassumendo: Il sistema operativo fornisce un ambiente per eseguire programmi in modo conveniente ed efficiente; funge infatti da…

AllocatoreAllocatore di risorsedi risorse — controlla, distribuisce ed alloca le risorse (in modo equo ed efficiente)Programma di controlloProgramma di controllo — controlla l’esecuzione dei programmi utente e le operazioni sui dispositivi di I/O

Windows & GUIWindows & GUI

Menu a discesa

Barra degli

strumenti

Icone

Page 9: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

9

EsempioEsempio

• Per ogni carattere immesso tramite la tastiera viene generato un codice corrispondente• Il codice, grazie ad una componente hardware, viene memorizzato in un’area di memoria riservata(buffer) e viene inviato un segnale alla CPU (interrupt)• Quando la CPU riceve l`interrupt dalla tastiera attiva un modulo (un piccolo programma) chiamato terminal driver• Il terminal driver invia al monitor una copia del codice del carattere immesso per visualizzare il carattere

Software: device driverSoftware: device driver

I driver di periferica (device driver, appunto) sonoprogrammi specializzati nella gestione di un particolarecomponente hardware.

E’ il sistema operativo a caricarli in memoria durante la procedura di avvio di un computer.

Page 10: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

10

Software: Software: applicazioniapplicazioni

Sono tutti quei programmi che svolgono funzioni specifiche, e che vengono “lanciati” dall’interno dei sistemi operativi:

1. fogli di calcolo2. elaborazione testi3. fotoritocco, disegno, grafica 3D4. editing o riproduzione audio5. editing o riproduzione video6. “utilities” (compressione, antivirus, ecc.)

Elaboratore testiElaboratore testi

Page 11: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

11

Foglio elettronicoFoglio elettronico

DatabaseDatabase

Page 12: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

12

PresentazioniPresentazioni

Desktop Desktop PublishingPublishing

Page 13: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

13

Agenda, Posta, Calendario, RubricaAgenda, Posta, Calendario, Rubrica

PROCEDURA DI AVVIO DI UN COMPUTERPROCEDURA DI AVVIO DI UN COMPUTER

Quando si accede un computer la memoria RAM è vuota.La memoria ROM contiene il BIOS che permette alla macchina di compiere le prime operazioni di verifica ed enumerazione dei componenti installati (memoria, video, dischi, tastiera,ecc…) e di comunicazione tra gli stessi.In questa fase viene compiuta un’operazione di diagnosi del sistema (conteggio memoria, controllo periferiche, assegnazione irq, ecc..) ed avviata la procedura di BOOTSTRAP da disco. In una particolare traccia del disco fisso (o, se presenti, dal floppy o dal cd-rom) è contenuto il codice di avvio del sistema operativo installato.Il bootstrap termina con l’avvio del caricamento dell’intero sistema operativo.Una volta terminato il caricamento del sistema operativo, il computer èpronto ad essere utilizzato, e possono essere avviati i programmi applicativi per elaborare i documenti.

Page 14: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

14

ALGORITMIALGORITMI

Un algoritmo è una sequenza finita, non ambigua, di passi eseguibili e ripetibili un numero finito di volte per portare alla soluzione di un dato problema. Un algoritmo, a partire da informazioni in ingresso, produrrà un risultato in uscita.Esempi di algoritmi: ricette di cucina, istruzioni di montaggio di un oggetto, calcolo dell’ipotenusa dai cateti, calcolo del Massimo Comun Divisore, procedura per cambiare una ruota forata, ordinamento di una rubrica, pagamento di un bollettino postale, ecc...Il metodo più naturale per esprimere un algoritmo è descriverne i passi da seguire nel linguaggio naturale.Vediamo un esempio di espressione della procedura per pagare un bollettino postale:

recarsi ad un ufficio postalecompilare il bollettino di conto corrente postaleeffettuare il pagamento

NON AMBIGUITANON AMBIGUITA’’ DI UN ALGORITMODI UN ALGORITMO

La sequenza precedentemente vista non rappresenta un algoritmo in maniera corretta in quanto non è priva di ambiguità. Infatti non indica quale ufficio postale, che cifra indicare, non verifica che si disponga di tale contante, ecc…L’algoritmo andrebbe riscritto come:

recarsi al più vicino ufficio postaleconsultare la tabella degli importi da pagarecompilare il bollettino di ccpassicurarsi di avere la cifra necessaria al pagamentoeffettuare il pagamento

Tale descrizione è più dettagliata, ma non è ancora del tutto priva di ambiguità. Ciò è dovuto alla natura stessa del linguaggio naturale. Sono stati pertanto definiti dei linguaggi specifici per la definizione degli algoritmi, chiamati linguaggi di programmazione.

Page 15: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

15

Rappresentazione di un algoritmoRappresentazione di un algoritmoDIAGRAMMA A BLOCCHI 1/4 DIAGRAMMA A BLOCCHI 1/4

Il metodo dei diagrammi a blocchi consiste in una descrizione grafica; esso permette un visione immediata dell’intero procedimento e dell’ordine di esecuzione delle varie istruzioni

I diagrammi a blocchi sono formati da simboli di forma diversa, ciascuna con un proprio significato; all’interno di ogni simbolo e presente un breve testo sintetico. Linee orientate con frecce, che uniscono fra loro i vari simboli, indicano il flusso delle operazioni.

startendistruzioni I/O

elaborazionecondizione

condizionesì no

sottoprogramma

Assegnamento ed istruzioni aritmetico-logiche

A=5 A=A+1 A=5sì no

Istruzioni di I/O

leggi A scrivi A

DIAGRAMMA A BLOCCHI 2/4DIAGRAMMA A BLOCCHI 2/4

Page 16: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

16

Strutture di controllo

CONDIZIONE A DUE VIE

condizionesì

blocco 1

no

blocco 2

DIAGRAMMA A BLOCCHI 3/4DIAGRAMMA A BLOCCHI 3/4

Strutture di controllo

ITERAZIONE: CICLO A CONDIZIONE INIZIALE

condizionesì

blocco istruzioni

no

viene valutata prima la condizione di ciclo e poi EVENTUALMENTE entra nel blocco istruzioni

continua a ciclare fintanto che la condizione è vera. Esce dal ciclo quando la condizione è falsa

DIAGRAMMA A BLOCCHI 4/4DIAGRAMMA A BLOCCHI 4/4

Page 17: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

17

LA PSEUDOCODIFICALA PSEUDOCODIFICA

La pseudocodifica è la descrizione di un algoritmo ottenuta utilizzando termini e parole del linguaggio comune, ma applicando una serie di regole che permettono di organizzare un tipo di testo formalmente rigoroso e strettamente orientato alla stesura degli algoritmi.

La pseudocodifica utilizza delle regole per strutturare il testo:Le parole chiavi che aprono e chiudono il testo di un algoritmo sono

INIZIO e FINE. Altre parole chiavi sono A, ALLORA, ALTRIMENTI, CASO, DA, DI, ESEGUI, FINCHE’, MENTRE, PASSO, PER, RIPETI, SE.

Ogni istruzione è indicata con una frase del linguaggio corrente e può contenere un’espressione di tipo aritmetico o logico

Le istruzioni leggi(lista di variabili) e scrivi(variabili e costanti) vengono utilizzate per descrivere le operazione di immissione ed emissione dei dati

La richiesta all’utente per acquisire i dati necessari all’elaborazione può essere indicata con chiedi(lista dei dati che servono)

Le variabili, le costanti vengono indicate da parole in minuscolo dette identificatori

Strutture di controllo

CONDIZIONE A DUE VIE

se condizione{

/* blocco 1 */...

}altrimenti{

/* blocco 2 */...

}

LA PSEUDOCODIFICALA PSEUDOCODIFICA

Strutture di controllo

ITERAZIONE: CICLO A CONDIZIONE INIZIALE

finchè condizione{

/* blocco istruzioni */...

}

Page 18: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

18

ESEMPIOESEMPIO

h

bA= b × h

Dati input

Base e altezza del rettangolo

Dati outputArea del rettangolo

Algoritmo rettangoloINIZIO

Chiedi(base, altezza)Leggi(base, altezza)Area ← base * altezzaScrivi area

FINE

ESEMPIOESEMPIO

h

bA= b × h

Dati input

Base e altezza del rettangolo

Dati outputArea del rettangolo

Inizio Inizio

Fine Fine

Chiedi base, altezzaChiedi base, altezza

Leggi base altezzaLeggi base altezza

Scrivi areaScrivi area

Area ←base * altezzaArea ←base * altezza

Page 19: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

19

RAPPRESENTAZIONE DI UN ALGORITMORAPPRESENTAZIONE DI UN ALGORITMO

Per rappresentare il flusso di esecuzione di un algoritmo può essere utile ricorrere ai diagrammi a blocchi che indicano graficamente la sequenza di operazioni da eseguire. Vediamo due modi equivalenti di esprimere lo stesso algoritmo (di Euclide) per il calcolo del M.C.D.

1. Prendi i valori da tastiera VAL1 e VAL2

2. Se VAL1<VAL2 allora scambiali

3. Metti in RESTO il resto tra VAL1 e VAL2

4. Ripeti finchè RESTO<>0

5. Metti in VAL1 il contenuto di VAL2

6. Metti in VAL2 il contenuto di RESTO

7. Metti in RESTO il resto tra VAL1 e VAL2

8. Fine Ripeti

9. Mostra il MCD che è pari a VAL2

inizio

INPUT:VAL1, VAL2

RESTO:=VAL1 MOD VAL2

seVAL1 < VAL2

scambia VAL1 e VAL2

Vero VAL1:=VAL2VAL2:=RESTO

RESTO:=VAL1 MOD VAL2

finchèRESTO<>0

OUTPUT:“MCD:” VAL2

fine

Vero

Falso

Falso

CENNI SUL M.C.DCENNI SUL M.C.D

In matematica il MCD (a,b) di due numeri interi a e b, che non siano entrambi uguali a zero è il numero più grande per il quale possono essere entrambi divisi.

Esempi: MCD (12, 18)=6 MCD (-4, 14)=2 MCD (5, 0)=5Algoritmo di Euclide dice che dati due numeri naturali val1 e val2 si controlla se val2 è zero, se val2 è zero allora val1 è il MCD. Se non lo è, controllo che val1 > val2 se non èverificata questa ipotesi, scambio val1 con val2 e viceversa, quindi divido val1/val2 e si assegna ad r il resto della divisione.Se r=0 allora val2 è il MCD altrimenti occorre assegnare val1=val2 e val2=resto e si ripete di nuovo la divisione fino a quando r=0

Page 20: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

20

Esempi calcolo MCD (1/4)Esempi calcolo MCD (1/4)

1) MCD (12, 18)val1=12 e val2=18

val1>val2 ? No! Quindi scambio i due valori

val1=18 e val2=1218:12= 1 con resto = 6Resto è uguale a 0? No!!val1=12 e val2=6 val1>val2 ? Si! Quindi divido 12:6=2 con resto = 0Resto è uguale a 0? Si!! MCD = val2=6

Esempi calcolo MCD (2/4)Esempi calcolo MCD (2/4)

2) MCD (-4, 14)val1=4 e val2=14

val1>val2 ? No! Quindi scambio i due valori

val1=14 e val2=414:4= 3 con resto = 2Resto è uguale a 0? No!!val1=4 e val2=2 val1>val2 ? Si! Quindi divido 4:2=2 con resto = 0Resto è uguale a 0? Si!! MCD = val2=2

Page 21: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

21

Esempi calcolo MCD (3/4)Esempi calcolo MCD (3/4)3) MCD (216, 117)val1=216 e val2=117

val1>val2 ? Sì! Quindi non scambio i due valorival1=216 e val2=117

216:117= 1 con resto = 99Resto è uguale a 0? No!!val1=117 e val2=99 val1>val2 ? Si! Quindi divido 117:99=1 con resto = 18Resto è uguale a 0? No!!val1=99 e val2=18val1>val2 ? Si! Quindi divido99:18=5 con resto = 9Resto è uguale a 0? No!!val1=18 e val2=9val1>val2 ? Si! Quindi divido18:9 = 2 con resto 0Resto è uguale a 0? Sì!!MCD = val2=9

Esempi calcolo MCD (4/4)Esempi calcolo MCD (4/4)

3) MCD (150, 123)val1=150 e val2=123

val1>val2 ? Sì! Quindi non scambio i due valorival1=150 e val2=123

150:123= 1 con resto = 27Resto è uguale a 0? No!!val1=123 e val2=27 val1>val2 ? Si! Quindi divido 123:27=4 con resto = 15Resto è uguale a 0? No!!val1=27 e val2=15val1>val2 ? Si! Quindi divido27:15=1 con resto = 12Resto è uguale a 0? No!!val1=15 e val2=12val1>val2 ? Si! Quindi divido15:12 = 1 con resto 3Resto è uguale a 0? No!!val1=12 e val2=3val1>val2 ? Si! Quindi divido12:3=4 con resto 0Resto è uguale a 0? Sì!!MCD = val2=4

Page 22: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

22

LINGUAGGI DI BASSO LIVELLOLINGUAGGI DI BASSO LIVELLO

Come esprimere un algoritmo affinché un computer possa interpretarlo ed eseguirlo?In realtà la CPU è in grado di eseguire un numero molto ristretto di operazioni estremamente semplici. E tali istruzioni sono espresse in termini numerici, cioè ad ogni istruzione corrisponde un numero. Il linguaggio di programmazione le cui istruzioni hanno una corrispondenza biunivoca con le operazioni svolte dal microprocessore si chiama LINGUAGGIO MACCHINA.Questo linguaggio si dice di BASSO LIVELLO in quanto èstrettamente legati alle istruzioni della CPU, quindi poco naturale per l’uomo.

LINGUAGGI DI ALTO LIVELLOLINGUAGGI DI ALTO LIVELLO

Fortunatamente, per facilitare l’implementazione degli algoritmi, a partire dalla metà degli anni ’50, sono stati creati anche dei linguaggi di programmazione più evoluti, più simili al linguaggio umano, e non legati all’architettura dell’elaboratore sul quale vengono utilizzati. Tali linguaggi si dicono di alto livello.Tali linguaggi devono essere convertiti in linguaggio macchina affinché la cpu possa eseguirli. Tuttavia, essendo le istruzioni di questi linguaggi molto potenti e simili al linguaggio umano, a ognuna corrispondono molte istruzioni in linguaggio macchina.

Page 23: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

23

CALCOLO DEL MCD IN PASCALCALCOLO DEL MCD IN PASCAL

Questo programma, scritto nel linguaggio ad alto livello Pascal viene trasformato, grazie al COMPILATORE, in linguaggio macchina.Si ottiene così un FILE ESEGUIBILE (estensione .EXE nei sistemi windows) formato da migliaia di istruzioni direttamente comprensibili per la CPU.

program CalcoloMCD(input,output);

var VAL1,VAL2,RESTO:long;function Scambia(var V1, V2:long);var VTMP: long;begin

VTMP:=V1; V1:=V2;V2:=VTMP

end;

begin (* main *)readln(V1);

readln(V2);if (V1<V2) then Scambia(V1,V2);RESTO:= V1 mod V2;while RESTO<>0 dobegin

V1:=V2;V2:=RESTO;RESTO:=V1 mod V2

end;writeln(‘Il MCD è ‘,V2)

end.

Shareware & FreewareShareware & Freeware

Shareware - È software reso disponibile gratuitamente per un breve periodo (per consentire delle valutazioni). A conclusione di tale lasso temporale, sarà necessario corrispondere una somma in denaro per proseguirne l’utilizzo. Una volta pagato e registrato, sono spesso rese disponibili funzionalità aggiuntive non incluse nella versione di valutazione.Freeware - È software reso disponibile gratuitamente (come i browser Web MS Internet Explorer e Netscape Navigator). Lo sviluppatore potrebbe aver comunque posto delle limitazioni (per esempio per evitare utilizzo commerciale).

Page 24: Software e Sistemi Operativi - Unisalento.itsara.unisalento.it/~mirto/beniculturali/page3/files/4... · 2012-07-05 · Il capo–cuoco supervisiona la preparazione dei piatti e gestisce

24

Licenze FreeLicenze Free

Free “as in beer”: gratis

Free “as in speech”: libero

Open Source non significa automaticamente software libero

Protezione & PrivacyProtezione & Privacy

Il diritto alla privacy è stato definito per cittadini della Comunità Europea da una specifica direttiva, la 95/46/CE del 24 ottobre 1995, per la "tutela delle persone fisiche con riguardo al trattamento dei dati personali, nonché alla libera circolazione di tali dati".Ogni stato europeo l’ha poi coniugata in legge del proprio parlamento. In Italia, la direttiva è stata tradotta nella Legge 675/96 Tutela delle persone e degli altri soggetti rispetto al trattamento dei dati personali.Vi è inoltre un organismo preposto a garanzia dell’attuazione di tale legge: in proposito si può consultare il sito www.garanteprivacy.it.