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

Post on 01-May-2015

214 views 0 download

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

Il Software

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

Il Software

Il Sistema Operativo

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).

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.

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.

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à

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

9

Elementi di un Sistema Operativo

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

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

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.

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

Il SW

La programmazione

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

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

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

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;

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.

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

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

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

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

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

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

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.

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