prima di iniziare… durata attività: due lezioni frontali + una lezione laboratorio + compiti per...

26
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori concetto di algoritmo, struttura dati coda conoscenza base linguaggio di programmazione

Upload: felice-furlan

Post on 02-May-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Prima di iniziare…

• Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa

• Prerequisiti:• elementi base architettura dei calcolatori• concetto di algoritmo, struttura dati coda• conoscenza base linguaggio di programmazione• cosa è un sistema operativo • shell comandi linux

Page 2: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Test preliminari

1. In architettura degli elaboratori con PC si indica:

a) personal computer

b) program counter

c) power controller

2. I diagrammi di flusso servono per:

a) descrivere algoritmi

b) scrivere programmi

c) per entrambe le precedenti

Page 3: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Test preliminari

3. Cosa è un sistema operativo:

a) parte dell’hardware del computer

b) insieme di componenti software

c) il desktop che appare all’accensione del pc

Page 4: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Task manager

Page 5: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Programma

Insieme di istruzioni che eseguite su un computer/calcolatore produce soluzioni per una data classe/insieme di problemi

Page 6: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Programma

EsempioCodifica in linguaggio di programmazione dell’algoritmo che calcola l'area di un triangolo dati base ed altezza.

Programa CalcoloAreaVARb, h, area: real; /* base, altezza, area */ BEGINwriteln(“Inserisci la misura base in cm”);readln(b);writeln(“Inserisci la misura altezza in cm”);readln(h);

area = (b * h) / 2;writeln(area);END.

Page 7: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Programma

Programma quindi…tecnicamente è la codifica di un algoritmo in un certo linguaggio di programmazione realizzata da un programmatore (quindi da voi!)

Page 8: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Programa CalcoloAreaVARb, h, area: real; /* base, altezza, area */ BEGINwriteln(“Inserisci la misura base in cm”);readln(b);writeln(“Inserisci la misura altezza in cm”);readln(h);

area = (b * h) / 2;writeln(area);END.

Programma

I programmi vanno quindi scritti rispettando le regole (sintassi e semantica) del particolare linguaggio di programmazione scelto!

Errore!

Page 9: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Programma

Compilazione

areaTriangolo.pas eseguibile

Page 10: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Processo

Un processo (o job o task) è un'istanza di un programma in esecuzione in modo sequenziale (una istruzione per volta!):rappresenta per il sistema una specifica esecuzione di un programma

Calcolatore

Sistema operativo

Page 11: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Processo

o Ogni processo è identificato da un PID (Process Identifier)

o Entità dinamica (vedi program counter) che per eseguire il proprio compito necessita di alcune risorse (tempo cpu, memoria, file, dispositivo di I/O)

o Un processo include:• sezione codice/testo• program counter (indirizzo prossima istruzione da

eseguire)• registri del processore• stack con dati temporanei (parametri di funzioni, variabili

temporanee, …)• sezione dati con variabili globali

Page 12: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Stato processo

Durante l’esecuzione un processo subisce dei cambiamenti di stato che può essere:

• new/nuovo: il processo viene creato• running/esecuzione: il processore sta

eseguendo le istruzioni del processo (ricorda: su ciascun processore può essere running/esecuzione solo un processo per volta)

• waiting/bloccato: il processo è in attesa di qualche evento (come il completamento di un I/O)

• ready/pronto: il processo è pronto per essere eseguito• terminated/terminato: il processo ha terminato l'esecuzione

Page 13: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Diagramma stati processo

new terminated

ready running

waiting

ammessouscita

dispatch

interrupt

completamento I/Oo verificarsi di un evento

attesa I/O o di un evento

Page 14: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Process Control Block (PCB)

Ogni processo è rappresentato nel sistema da una struttura, unica per ogni processo, detto PCB:

informazioni periferiche in uso, file aperti, …

program counterstato del processoPID

registri di CPU

informazioni sulla priorità del processo

informazioni sulla memoria del processo

Page 15: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Tipi di processi

I processi possono essere classificati come:

processi I/O bound – basso uso della CPU e elevato uso dell’I/O (es. text editor)

processi CPU bound – elevato uso della CPU e basso uso dell’I/O (es. programmi di calcolo matematico, compilatore)

Page 16: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Scheduling processi

Multiprogrammazione: esecuzione contemporanea di più processi per massimizzare l'utilizzo della CPU

Timesharing: commutare la CPU tra i processi così frequentemente che gli utenti possano interagire con ogni programma mentre è in esecuzione

Page 17: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Context switch/commutazione

• Context switch: operazione di passaggio della CPU da un processo all’altro (salvataggio stato processo vecchio e caricamento stato processo nuovo)

• Il tempo di context switch è un costo: il sistema non effettua lavoro utile per nessun processo utente

Page 18: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Code di scheduling

Problema:

Sistema con singolo processore →

in esecuzione un processo per volta →

i processi pronti per l'esecuzione devono aspettare che la CPU sia libera

Page 19: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Code di scheduling

Il sistema tiene traccia dei vari processi usando delle code di processi

Ready queue: processi pronti per l'esecuzione (manca solo la CPU)

Coda dispositivo: un processo in esecuzione vi rimane per un dato tempo e prima o poi esce, viene interrotto, o si mette in attesa di un particolare evento (completamento di I/O, ...).Una richiesta di I/O può essere diretta ad un dispositivo condiviso (es. disco).Molti processi in esecuzione -> il disco può essere occupato con la richiesta di I/O di un altro processo -> il processo deve attendere il discoL'elenco dei processi in attesa di un particolare dispositivo di I/O è chiamato coda del dispositivo. Ogni dispositivo ha la propria coda.

Page 20: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Operazione sui processi

• I processi vengono eseguiti concorrentemente (si contendono le risorse) e devono essere creati ed eliminati dinamicamente:

il sistema offre un meccanismo per creare ed eliminare un processo

Page 21: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Operazione sui processi

• I processi vengono eseguiti concorrentemente (si contendono le risorse) e devono essere creati ed eliminati dinamicamente:

il sistema offre un meccanismo per creare ed eliminare un processo

Page 22: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Operazione sui processi: creazione

• Un processo (padre) può creare altri processi (figli) che possono crearne altri e così via:

albero dei processi

P6

P1

P2 P3

P5

Page 23: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Operazione sui processi: terminazione

• Un processo termina eseguendo l’ultima istruzione e chiede al sistema operativo di essere cancellato

• Il padre di un processo ne chiede la terminazione (compito assegnatogli non più richiesto, ha usato risorse in eccesso, …)

In entrambi i casi le risorse del processo sono deallocate dal sistema operativo

Page 24: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Task manager

Un po’ di pratica…1. Avviate il browser che usate per navigare

su Internet

2. Accedete al task manager

Page 25: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Task manager

Provate a rispondere alle seguenti domande:

1. Qual è il pid assegnato al processo?

2. Quant’è il tempo di cpu utilizzato dal processo?

3. Che priorità ha il processo?

4. Qual è il percorso/path del programma a cui è associato?

5. Quanta memoria sta usando il processo?

6. Come posso terminare il processo?

Page 26: Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori

Task manager

Suggerimento: comandi ps e top con relative opzioni

E se siamo su …?