Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software...

27
Il Software

Transcript of Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software...

Page 1: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

Il Software

Page 2: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

2

Software di base Programmi di gestione del sistema(Sistema Operativo)

Software Applicativo

Programmi che permettono di svolgere compiti specifici (elaborazioni testi, fogli elettronici, browser, gestione di database, elaborazione di immagini, ecc…)

Software

Hardware

Macrocomponenti dell’elaboratore

Page 3: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

Il Software

Il Sistema Operativo

Page 4: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

4

Il Sistema Operativo

Il Sistema Operativo (SO) è un insieme di programmi finalizzati a rendere utilizzabile l’elaboratore.

Le funzioni principali del SO sono: nascondere all’utente i dettagli dell’hardware della

macchina presentando una interfaccia amichevole. controllare l’utilizzo di tutte le risorse

dell’elaboratore (Gestore di risorse).

Page 5: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

5

Il SO come interfaccia utente

Interfaccia: mezzo di interazione, tramite dispositivi di input e di output, tra utente ed elaboratore.

Tipi di interfaccia Interfaccia a caratteri

Offre la possibilità di eseguire un comando esclusivamente mediate l’uso della tastiera.

Usata nei primi sistemi operativi (es. DOS). Interfaccia grafica

Caratterizzata da finestre, ognuna delle quali può contenere un programma applicativo o un documento (es. WINDOWS).

Offre la possibilità di eseguire un comando puntando e cliccando l’ icona che lo rappresenta mediante l’uso del mouse.

Impiega la tecnologia WYSIWYG (What You See Is What You Get) che consente di visualizzare sullo schermo i documenti nel modo in cui saranno stampati.

Page 6: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

6

Il SO come interfaccia utente

Interfaccia a stilo Usa uno schermo sensibile al tatto su cui si può

scrivere o puntare un comando usando uno stilo (usata nei sistemi operativi per palmari).

Interfaccia a touchscreen Consente di operare puntando con un dito le

immagini o le icone presenti sullo schermo.

Interfaccia conversazionale Consente di eseguire comandi vocali o immettere

dati mediante programmi di riconoscimento vocale.

Page 7: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

7

Il SO come gestore di risorse

Gestore dei processi

Gestore dei file

Nucleo

Gestore della memoria

HWGestore delle

periferiche

Interprete deicomandi

SW applicativoProgrammi di utilità

Page 8: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

8

Il SO come gestore di risorse

Il SO è composto da diverse parti interagenti fra loro che consentono di gestire l’uso di tutte le risorse da parte degli utenti e del software applicativo:

Gestore del processore (Nucleo) Gestore della memoria centrale Gestore delle periferiche Gestore dei file (File system) Gestore dell’interfaccia utente e dei relativi

comandi (Shell on Interprete dei comandi) Gestore della rete

Page 9: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

9

Elementi di un Sistema Operativo

Page 10: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

10

Compiti del sistema operativo

Controllare l’esecuzione delle applicazioni Coordinare la comunicazione tra le componenti del

computer Memorizzare dati e programmi Gestire l’uso delle risorse dell’elaboratore Gestire i malfunzionamenti

Page 11: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

11

Il BIOS All’accensione dell’elaboratore (bootstrap), parte

l’esecuzione del BIOS (Basic Input Output System), un programma residente su una ROM, che:

esegue i programmi di diagnostica, che verificano la presenza di tutti i dispositivi hardware e l’assenza di guasti;

carica dalla memoria di massa una parte del Sistema Operativo che a sua volta ne carica una maggiore, e così via fino a quando tutti i programmi sono caricati;

attiva l’interprete dei comandi.

Essendo installato permanentemente nel sistema, il BIOS è considerato una via di mezzo tra HW e SW, ossia è FIRMWARE

Page 12: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

12

Sistemi Operativi Multitasking

I SO multitasking permettono all’utente di eseguire più programmi contemporaneamente.

Come operano: poiché l’elaboratore è dotato di un solo processore, il SO assegna l’uso della CPU alternativamente tra i vari programmi, passando rapidamente da un programma all’altro, a seconda delle necessità e di eventuali priorità

In realtà in ogni istante è in esecuzione un solo programma per volta.

Page 13: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

13

Altri tipi di Sistemi Operativi

Sistemi Operativi Multithreading Consentono ai programmi applicativi di svolgere più

operazioni contemporaneamente Il multitheading è una sorta di multitasking applicato

ad un singolo programma. SO Multiutente

Permettono il collegamento simultaneo di più utenti ad una stessa macchina

SO Multiprocessore Gestiscono sistemi dotati di più processori

Page 14: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

Il SW

La programmazione

Page 15: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

15

Elaborazione automatica dell’informazione

Procedura di elaborazione (algoritmo) sequenza finita di azioni che consente di risolvere

un problema in un tempo finito. Elaboratore

macchina capace di eseguire le azioni specificate dall’algoritmo

Programma (SW) codifica della procedura di elaborazione in un

linguaggio comprensibile alla macchina

Page 16: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

16

Programma

Un programma è un insieme di frasi (ISTRUZIONI ) che specificano la procedura di elaborazione in un particolare linguaggio “comprensibile” dall’elaboratore, detto linguaggio di programmazione.

Un elaboratore offre un supporto per Un elaboratore offre un supporto per realizzare (implementare) programmirealizzare (implementare) programmi

Page 17: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

17

Linguaggi di programmazione

Problema: Distanza notevole fra il linguaggio adottato dall’uomo per esprimere la procedura di elaborazione e il linguaggio adottato dalla macchina (linguaggio binario)

Soluzione: introduzione di un livello intermedio di linguaggio (linguaggio di

programmazione) più vicino alla logica dell’uomo e più comprensibile del linguaggio macchina

Page 18: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

18

Linguaggi di programmazione

HardwareHardware

SoftwareSoftware

Procedura di elaborazione in linguaggio

naturale

Se a è maggiore di 100 incrementa b di 3

Linguaggio macchina0101001010101010

1101011010101110

Linguaggio di programmazione

if (a>100) then b:=b+3;

Page 19: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

19

Linguaggi di programmazione

Ogni linguaggio di programmazione ha un numero fisso di parole (le istruzioni) e una sintassi che determina come queste parole possono essere combinate tra loro per formare delle frasi.

Page 20: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

20

Traduzione di programmi

Per poter essere eseguito sulla macchina reale, un programma scritto in linguaggio di programmazione deve essere tradotto in un programma equivalente scritto in un linguaggio macchina

Ogni istruzione in linguaggio di alto livello è sostituita (tradotta) da una sequenza di istruzioni in linguaggio macchina

Solo programmi in linguaggio macchina possono essere eseguiti direttamente dai circuiti elettronici senza bisogno di traduzione

Page 21: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

21

I linguaggi di basso livello

I primi linguaggi introdotti per semplificare la programmazione sonop stati i linguaggi di basso livello o assemblativi

linguaggi simbolici dipendenti dalla macchina specifica

ogni istruzione macchina è rappresentata da un nome mnemonico più facile da ricordare rispetto ad una stringa di bit

Page 22: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

22

Traduzione del linguaggio assemblativo

Un programma scritto in linguaggio assemblativo (codice sorgente) viene tradotto nell’equivalente programma in linguaggio macchina (codice oggetto) da un programma, detto assemblatore

L’assemblatore trasforma ogni istruzione del linguaggio assembly nella corrispondente istruzione in linguaggio macchina

Traduzione 1 a 1

Page 23: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

23

I linguaggi di alto livello

Il vocabolario di un linguaggio assemblativo si riduce al ristretto insieme di istruzioni che un processore può eseguire

È complicato realizzare programmi complessi I linguaggi di alto livello (es. Java, C, Fortran, Cobol,

Pascal,…) sono stati introdotti per agevolare lo sviluppo di grossi programmi:

linguaggi simbolici indipendenti dalla macchina, con un insieme di istruzioni molto ampio

Page 24: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

24

Traduzione di un linguaggio di alto livello

Un programma scritto in linguaggio di alto livello (codice sorgente) viene tradotto nell’equivalente programma in linguaggio macchina (codice oggetto) da un programma, detto compilatore

Il compilatore converte ogni istruzione in linguaggio ad alto livello in una sequenza di istruzioni in macchina

Traduzione 1 a molti

Page 25: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

25

Traduzione di un linguaggio di alto livello

I compilatori traducono tutto il codice sorgente in un codice oggetto che viene successivamente eseguito

Per alcuni linguaggi di programmazione (es. BASIC, Matlab, Java), la traduzione di programmi è effettuata da un interprete che legge, traduce ed esegue ogni singola istruzione del codice sorgente, senza produrre un codice oggetto

L’esecuzione è più lenta rispetto ad un programma compilato

Page 26: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

26

La programmazione

Il processo di creazione di un programma prende il nome di programmazione e comprende:

La scrittura del programma: significa convertire le specifiche (descrizioni accurate) di un problema in una sequenza di istruzioni dettagliate che permettono di risolvere tale problema per mezzo di un computer.

Tali istruzioni descrivono come devono essere strutturati i dati e specificano passo passo la procedura di elaborazione (algoritmo).

La verifica del programma.

Page 27: Il Software. 2 Software di base Programmi di gestione del sistema (Sistema Operativo) Software Applicativo Programmi che permettono di svolgere compiti.

27

Sviluppo di programmi

Il processo di sviluppo di un programma (programmazione) comprende diverse fasi

Definizione del problema Progettazione del programma

Uso dei diagrammi di flusso Codifica del programma Verifica del programma (debugging) Documentazione del prodotto finito