Informatica
Download
1 / 50

Informatica - PowerPoint PPT Presentation


  • 104 Views
  • Uploaded on

Informatica. Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008. Computer. Hardware +. Software. Il software.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Informatica' - vlad


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Informatica

Informatica

Lezione 7

Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale)

Anno accademico: 2007-2008


Computer

Hardware +

Software


Il software
Il software

  • L’hardware da solo non è sufficiente per il funzionamento del computer ma è necessario introdurre il software

  • Componente del computer costituita dai:

    • programmi di base per la gestione del sistema

    • programmi applicativi per l’uso del sistema

  • Queste componente permettono di trasformare il hardware in un oggetto in grado di svolgere delle funzioni di natura diversa

  • La proprietà fondamentale dei computer è il fatto di essere programmabili


Il software1
Il software

  • Una programmazione diretta della macchina hardware da parte degli utenti creerebbe delle serie difficoltà


Il software2

LOAD 32 R2

Il software

ADD R1 84

  • Una programmazione diretta della macchina hardware da parte degli utenti creerebbe delle serie difficoltà

    • L’utente dovrebbe conoscere l’organizzazione fisica dell’elaboratore e il suo linguaggio macchina


Il software3

011100010111010101000011110

Il software

  • Una programmazione diretta della macchina hardware da parte degli utenti creerebbe delle serie difficoltà

    • L’utente dovrebbe conoscere l’organizzazione fisica dell’elaboratore e il suo linguaggio macchina

    • Ogni programma dovrebbe essere scritto utilizzando delle sequenze di bit ed ogni piccola differenza hardware comporterebbe una riscrittura del programma stesso


Il software4

011100010111010101000011110

Il software

Il software

  • Una programmazione diretta della macchina hardware da parte degli utenti creerebbe delle serie difficoltà

    • L’utente dovrebbe conoscere l’organizzazione fisica dell’elaboratore e il suo linguaggio macchina

    • Ogni programma dovrebbe essere scritto utilizzando delle sequenze di bit ed ogni piccola differenza hardware comporterebbe una riscrittura del programma stesso

Una programmazione diretta della macchina

hardware da parte degli utentinon è accettabile


0101010001110101000111101010001111000010101010001111000001110101101010100011101010001111010100011110000101010100011110000011101011

Il software

?

  • È necessario fornire un meccanismo per astrarre dall’organizzazione fisica della macchina

  • L’utente deve:

    • usare nello stesso modo (o comunque in un modo molto simile) macchine diverse dal punto di vista hardware

    • avere un semplice linguaggio di interazione con la macchina

    • avere un insieme di programmi applicativi per svolgere compiti diversi


La macchina virtuale

Hardware01010100011101010001111010100011110000101010100011110000011101011

011100010111010101000011110

La macchina virtuale

  • Nei moderni sistemi di elaborazione questi obiettivi vengono raggiunti grazie alla definizione di macchine virtualiche vengono realizzate al di sopra della macchina hardware reale

Utente

Macchina virtuale (software)


La macchina virtuale1
La macchina virtuale01010100011101010001111010100011110000101010100011110000011101011

  • Questa macchina si dice virtuale in quanto essa non esiste fisicamente

  • Si può fare in modo che macchine (fisicamente) differenti siano usabili in modo simile

    • Si tratta di costruire al di sopra delle diverse macchine fisiche la stessa macchina virtuale


La macchina virtuale2
La macchina virtuale01010100011101010001111010100011110000101010100011110000011101011

  • La macchina virtuale viene realizzata mediante il software (software di base)

  • L’utente interagisce con la macchina virtuale grazie ad un opportuno linguaggio di comandi


Linguaggio di comandi
Linguaggio di comandi01010100011101010001111010100011110000101010100011110000011101011

  • Ogni computer ha un linguaggio macchina le cui istruzioni sono direttamente eseguibili dalla macchina hardware

  • Al di sopra di questo linguaggio è possibile definire altri linguaggi

  • È anche possibile fornire delle regole per tradurne le istruzioni degli altri linguaggi in opportune sequenze di istruzioni in linguaggio macchina


Linguaggio di comandi1

Hardware01010100011101010001111010100011110000101010100011110000011101011

011100010111010101000011110

Linguaggio di comandi

  • La macchina virtuale si preoccupa della traduzionedi ogni comando impartito dall’utente nella sequenza di comandi che realizzano la stessa funzione e sono riconosciuti dalla macchina fisica sottostante

Utente

Traduzione

Macchina virtuale (software)


Linguaggio di comandi2
Linguaggio di comandi01010100011101010001111010100011110000101010100011110000011101011

  • Per esempio: interfaccia testuale

    • MS-DOS, Unix shell, Linux shell

    • Lavorando con una interfaccia testuale i comandi vengono impartiti mediante la tastiera

    • Ogni comando ha un suo nome e una sintassi ben precisa

C:> print foo1.doc

Can’t find file foo1.doc

C:>

prompt


Linguaggio di comandi interfaccia testuale

C:> print foo1.doc01010100011101010001111010100011110000101010100011110000011101011

Can’t find file foo1.doc

C:>

Linguaggio di comandi (interfaccia testuale)

Dai il messaggio di prompt all’utente

Quando arriva il comando, riconoscilo

Se è corretto, esegui l’azione corrispondente

Se è errato, dai un messaggio di errore

Al termine dell’operazione, torna all’inizio


Linguaggio di comandi interfaccia grafica
Linguaggio di comandi 01010100011101010001111010100011110000101010100011110000011101011(interfaccia grafica)

  • Per esempio: interfaccia grafica

    • Nei calcolatori con interfaccia grafica molti comandi sono impartiti mediante l’interazione attraverso il mouse e la tastiera

    • Cioè il clic (il doppia clic, …) del mouse su un’icona viene tradotto in una opportuna sequenza di istruzioni che il computer esegue per soddisfare la richiesta dell’utente


Linguaggio di comandi interfaccia grafica1
Linguaggio di comandi 01010100011101010001111010100011110000101010100011110000011101011(interfaccia grafica)

Microsoft Windows


Linguaggio di comandi interfaccia grafica2
Linguaggio di comandi 01010100011101010001111010100011110000101010100011110000011101011(interfaccia grafica)

Mac OSX di Apple


Linguaggio di comandi interfaccia grafica3
Linguaggio di comandi 01010100011101010001111010100011110000101010100011110000011101011(interfaccia grafica)

Linux


Il software di base
Il software di base01010100011101010001111010100011110000101010100011110000011101011

  • Software di base: realizza la macchina virtuale

  • Gli strumenti software che permettono all’utente (e ai programmi applicativi)

    • di interagire con l’elaboratore in modo semplice (funzioni di traduzione tra linguaggi diversi) e

    • di gestire le risorse fisiche

  • Il sistema operativo fa parte del software di base


Il sistema operativo
Il sistema operativo01010100011101010001111010100011110000101010100011110000011101011

  • È il componente software fondamentale di un computer

  • È formato da un insieme di programmi che interagiscono tra loro per realizzare due obiettivi

    • Creare un ambiente virtuale per l’interazione con l’utente

    • Gestire efficientemente l’elaboratore e i suoi dispositivi


Funzioni principali del sistema operativo
Funzioni principali del sistema operativo01010100011101010001111010100011110000101010100011110000011101011

  • Gestione del processore e dei programmi in esecuzione (detti processi)

  • Gestione della memoria principale

  • Gestione della memoria virtuale

  • Gestione della memoria secondaria

  • Gestione dei dispositivi di input/output

  • Interazione con l’utente


Il sistema operativo1

Hardware01010100011101010001111010100011110000101010100011110000011101011

011100010111010101000011110

Il sistema operativo

Utente

Avvio

Gestione: i processi, la memoria, i disp. di input/output

Interfaccia utente


Il sistema operativo2
Il sistema operativo01010100011101010001111010100011110000101010100011110000011101011

  • Dal punto di vista strutturale il sistema operativo è formato da un insieme di livelli, che formano la cosi detta “struttura a cipolla”

  • Idealmente l’utente è ignaro di tutti i dettagli delle operazioni svolte dai livelli inferiori della gerarchia e conosce solo le operazioni del livello più alto


Il sistema operativo3
Il sistema operativo01010100011101010001111010100011110000101010100011110000011101011

  • Mono-utente o multi-utente (mono/multi-user)

    • Si distingue tra elaboratori di tipo personale e elaboratori utilizzabili da più utenti contemporaneamente

  • Mono-programmati o multi-programmati (mono/multi-tasking)

    • Si distingue tra elaboratori in grado di eseguire un solo programma alla volta oppure più programmi “contemporaneamente”


Avvio dell elaboratore
Avvio dell’elaboratore01010100011101010001111010100011110000101010100011110000011101011

  • Il sistema operativo viene mandato in esecuzione al momento dell’accensione del computer

  • Questa fase prende il nome di bootstrap

  • In questa fase una parte del sistema operativo viene caricata nella memoria principale

  • In genere questa parte del sistema operativo comprende:

    • I programmi per la gestione del processore

    • I programmi per la gestione della memoria

    • I programmi per la gestione dell’input/output

    • I programmi per la gestione delle risorse hardware

    • I programma per la gestione del file system

    • Un programma che crea l’interfaccia verso l’utente


Avvio dell elaboratore1
Avvio dell’elaboratore01010100011101010001111010100011110000101010100011110000011101011

0

1

  • Una parte del sistema operativo deve essere sempre mantenuta in memoria principale e deve essere sempre pronta per l’esecuzione

2

S.O.

3

4

5

spazio

utente

N


Avvio dell elaboratore i virus
Avvio dell’elaboratore: i virus01010100011101010001111010100011110000101010100011110000011101011

  • Spesso durante questa fase sono eseguiti anche dei programmi che verificano l’eventuale presenza di virussul disco dell’elaboratore

  • I virus può danneggiare il funzionamento dell’elaboratore

  • I virus possono essere trasmessi da un elaboratore ad un altro


Funzioni principali del sistema operativo1
Funzioni principali del sistema operativo01010100011101010001111010100011110000101010100011110000011101011

  • Gestione del processore e dei programmi in esecuzione (detti processi)

  • Gestione della memoria principale

  • Gestione della memoria virtuale

  • Gestione della memoria secondaria

  • Gestione dei dispositivi di input/output

  • Interazione con l’utente


Sistemi mono utente mono programmati
Sistemi mono-utente, mono-programmati01010100011101010001111010100011110000101010100011110000011101011

  • Un solo utente può eseguire un solo programma alla volta

    • È forzato a “sequenzializzare” i programmi

    • Il programma viene lanciato, eseguito e quindi terminato

  • Il processore nonviene sfruttato al meglio: si spreca molto tempo

    • Il processore è molto più veloce dei supporti di memoria secondaria e delle altre periferiche

    • Passa la maggior parte del suo tempo in attesa

    • Durante l’attesa si dice che il processore è un uno stato inattivo (idle)


Esempio 1
Esempio 101010100011101010001111010100011110000101010100011110000011101011

  • Un processo è costituito da 1000=103 istruzioni

    • Ogni istruzione richiede 10-6 secondi per essere eseguita dal processore

    • Tempo totale di esecuzione: 103 * 10-6 = 10-3 = 1 millisecondo

  • A metà esecuzione è richiesta la lettura di un dato dal disco. Il tempo di lettura è 1 millisecondo

  • Tempo totale di esecuzione = 2 millisecondi

  • Idle time = 1 millisecondo: 50% del tempo totale di esecuzione è tempo sprecato


Esempio 2
Esempio 201010100011101010001111010100011110000101010100011110000011101011

  • Un processo è costituito da 1000=103 istruzioni

    • Ogni istruzione richiede 10-6 secondi per essere eseguita dal processore

    • Tempo totale di esecuzione: 103 * 10-6 = 10-3 = 1 millisecondo

  • A metà esecuzione è richiesta un dato al’utente. Il tempo di reazione è 1 secondo

  • Tempo totale dell’esecuzione = 1001 millisecondi

  • Idle time = 1 secondo: 99,9% del tempo totale di esecuzione è tempo sprecato


Esecuzione sequenziale
Esecuzione sequenziale01010100011101010001111010100011110000101010100011110000011101011

Processo P1

Processo P2

inizio

fine

inizio

fine

in attesa

esecuzione

Processore

attivo

idle


Esecuzione sequenziale1
Esecuzione sequenziale01010100011101010001111010100011110000101010100011110000011101011

  • Supponiamo che il nostro sistema sia un bar in cui il barista serve diversi clienti

  • Il barista è corrispondente del processore, i clienti sono l’equivalente dei processi da eseguire

  • Esecuzione mono-programmati:

Cliente 1

Cliente 2

Consumare

Consumare

Ordinare

Preparare

il caffè

Ordinare

Preparare

il caffè

Pagare

Pagare


Soluzione
Soluzione01010100011101010001111010100011110000101010100011110000011101011

  • In realtà (normalmente…) c’è alternanza tra i clienti:

Cliente 1

Cliente 2

Ordinare

(C1)

Ordinare

(C2)

Pagare

(C1)

Preparare

il caffè (C1)

Preparare

il caffè (C2)

Pagare

(C2)


Soluzione sistemi multiprogrammati
Soluzione: sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

  • Quando il processore è nello stato di idle la si può sfruttare per eseguire (parte di) un altro processo

  • Quando un processo si ferma (per esempio in attesa di un dato dall’utente) il processore può passare ad eseguire le istruzioni di un altro processo

  • Il sistema operativo si occupa dell’alternanza tra i processi in esecuzione


Sistemi multiprogrammati
Sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

Dal punto di vista dei processi

P1

P2

Dal punto di vista del processore

esecuzione P2

esecuzione P1


Sistemi multiprogrammati1
Sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

  • Più programmi sembrano essere eseguiti “contemporaneamente”

  • In realtà in esecuzione c’è sempre un soloprocesso

    • Ma, se l’alternanza è molto frequente, si ha un’idea di simultaneità


Sistemi multiprogrammati2
Sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

  • Un processo può trovarsi in tre diversi stati: in esecuzione, in attesa, pronto

esecuzione

Quando sta utilizzando

il processore

pronto

attesa

Quando è in attesa del verificarsi

di un evento esterno

Quando è potenzialmente in condizione

di poter utilizzare il processore che è

occupato da un altro processo


Sistemi multiprogrammati3
Sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

terminazione

esecuzione

richiesta I/O

o risorse

scambio

esecuzione

pronto

attesa

I/O terminato o

risorsa disponibile


Sistemi multiprogrammati4
Sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

  • Quando un processo viene creato viene

  • messo nello stato di pronto

  • in tale stato rimane fino a quando

  • non arriverà il suo turno

pronto


Sistemi multiprogrammati5
Sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

esecuzione

scambio

esecuzione

pronto

attesa


Sistemi multiprogrammati6
Sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni

esecuzione

pronto

attesa


Sistemi multiprogrammati7
Sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni

terminazione

esecuzione

Il processo termina

la sua esecuzione

e abbandona il sistema

pronto

attesa


Sistemi multiprogrammati8
Sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni

terminazione

esecuzione

richiesta I/O

o risorse

pronto

attesa

Il processore viene liberato e può essere

concesso ad un altro processo pronto


Sistemi multiprogrammati9
Sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni

terminazione

esecuzione

richiesta I/O

o risorse

scambio

esecuzione

pronto

attesa

Per realizzare in modo equo l’alternanza tra i processi, in certi casi può essere

opportuno fermare un processo e concedere il processore ad un altro processo


Sistemi multiprogrammati10
Sistemi multiprogrammati01010100011101010001111010100011110000101010100011110000011101011

  • In quali casi èopportuno fermare un processo e concedere il processore ad un altro processo?

    • Se un processo non si ferma mai in attesa di input/output o di una risorsa

    • Se più utenti vogliono usare il computer

  • In questi casi è necessario far sì che il processore sia distribuita tra i processi dello stesso utente e di utenti diversi

  • Si parla di scheduling del processore


Esempio di scheduling round robin
Esempio di scheduling: 01010100011101010001111010100011110000101010100011110000011101011Round Robin

  • Ad ogni processo viene assegnato un quanto di tempo del processore (time slice)

  • Terminato il quanto di tempo, il processo viene sospeso e rimesso nella coda dei processi pronti (al fondo della coda)

  • Il processore viene assegnata ad un altro processo pronto

  • Un processo può usare meno del quanto che gli spetta se deve eseguire operazioni di I/O oppure ha terminato la sua computazione


Esempio di scheduling round robin1
Esempio di scheduling: 01010100011101010001111010100011110000101010100011110000011101011Round Robin

Nel caso della politica di scheduling Round Robin

terminazione

esecuzione

richiesta I/O

o risorse

in esecuzione

quanto di

tempo scaduto

pronto

attesa

I/O terminato o

risorsa disponibile


Sistemi multi utente multi programmati
Sistemi multi-utente, multi-programmati01010100011101010001111010100011110000101010100011110000011101011

  • Più utenti possono usare allo stesso tempo il computer

    • … perché il processore viene assegnata periodicamente ai processi dei vari utenti (per esempio ogni 10 o 100 millisecondo)

  • All’aumentare del numero di processi e del numero di utenti le prestazioni del sistema possono degradare


ad