Informatica Lezione 7 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico: 2006-2007 Funzioni principali del sistema operativo • Avvio del computer • 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, monoprogrammati • 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 non viene 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 • 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 • 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 Processo P1 inizio Processo P2 fine inizio fine in attesa esecuzione Processore attivo idle Esecuzione sequenziale • 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 Ordinare Preparare il caffè Consumare Pagare Cliente 2 Ordinare Preparare il caffè Consumare Pagare Soluzione • In realtà (normalmente…) c’è alternanza tra i clienti: Cliente 1 Cliente 2 Ordinare (C1) Ordinare (C2) Preparare il caffè (C1) Preparare il caffè (C2) Pagare (C1) Pagare (C2) Soluzione: sistemi multiprogrammati • 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 Dal punto di vista dei processi P1 P2 Dal punto di vista del processore esecuzione P1 esecuzione P2 Sistemi multiprogrammati • Più programmi sembrano essere eseguiti “contemporaneamente” • In realtà in esecuzione c’è sempre un solo processo – Ma, se l’alternanza è molto frequente, si ha un’idea di simultaneità Sistemi multiprogrammati • Un processo può trovarsi in tre diversi stati: in esecuzione, in attesa, pronto esecuzione pronto Quando è potenzialmente in condizione di poter utilizzare il processore che è occupato da un altro processo Quando sta utilizzando il processore attesa Quando è in attesa del verificarsi di un evento esterno Sistemi multiprogrammati terminazione esecuzione richiesta I/O o risorse scambio esecuzione pronto I/O terminato o risorsa disponibile attesa Sistemi multiprogrammati 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 multiprogrammati esecuzione scambio esecuzione pronto attesa Sistemi multiprogrammati Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni esecuzione pronto attesa Sistemi multiprogrammati 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 multiprogrammati 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 multiprogrammati Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni terminazione esecuzione scambio esecuzione pronto richiesta I/O o risorse 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 multiprogrammati • 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 • 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 Robin Nel caso della politica di scheduling Round Robin terminazione esecuzione in esecuzione quanto di tempo scaduto pronto I/O terminato o risorsa disponibile richiesta I/O o risorse attesa Sistemi multi-utente, multiprogrammati • 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 Esercizio 1a • Supponiamo di avere nella coda dei processi pronti tre processi P1, P2 e P3 con i seguenti “comportamenti” in termini di computazione e tempi di attesa calcolo P1 10 P2 10 P3 10 40 10 30 20 10 10 10 in attesa 10 • Quante unità di tempo ci vogliono per portare a termine tutti e tre i processi in un sistema mono-programmato? Esercizio 1a: soluzione • Quante unità di tempo ci vogliono per portare a termine tutti e tre i processi in un sistema mono-programmato? 10 40 10 10 20 30 Tot(P1)=60, Tot(P2)=60, Tot(P3)=50 Tot(P1+P2+P3) = 60 + 60 + 50 = 170 10 10 10 10 10 Esercizio 1b • Supponiamo di avere nella coda dei processi pronti tre processi P1, P2 e P3 con i seguenti “comportamenti” in termini di computazione e tempi di attesa calcolo P1 10 P2 10 P3 10 40 10 30 20 10 10 10 in attesa 10 • Quante unità di tempo ci vogliono per portare a termine tutti e tre i processi in un sistema multi-programmato, se si applica l’alternanza tra i processi? Esercizio 1b: una soluzione • Quante unità di tempo ci vogliono per portare a termine tutti e tre i processi in un sistema multi-programmato, se si applica l’alternanza tra i processi? P1 10 P2 10 P3 10 40 10 30 20 10 10 10 10 In questo caso, quando un processo va in attesa, il processore viene assegnato al primo processo pronto Totale = 100 P1 in attesa P2 in attesa P3 in attesa P3 in attesa Esercizio 1b: un’altra soluzione • Quante unità di tempo ci vogliono per portare a termine tutti e tre i processi in un sistema multi-programmato, se si applica l’alternanza tra i processi? P1 10 P2 10 P3 10 40 10 30 20 10 10 10 10 P1 in attesa P2 in attesa P3 in attesa P3 in attesa Totale = 100 Esercizio 1b: una soluzione ottimale • Quante unità di tempo ci vogliono per portare a termine tutti e tre i processi in un sistema multi-programmato, se si applica l’alternanza tra i processi? P1 10 P2 10 P3 10 40 10 30 20 10 10 10 10 Totale = 90 P1 in attesa P2 in attesa P3 in attesa P3 in attesa Esercizio 2 • Supponiamo di avere nella coda dei processi pronti i processi – P1 durata = 40 unità di tempo – P2 durata = 10 unità di tempo – P3 durata = 60 unità di tempo – P4 durata = 30 unità di tempo • Qual è una sequenza di esecuzione con una politica di scheduling Round Robin e quanto di tempo pari a 20 unità? Esercizio 2: una soluzione – P1 durata = 40 unità di tempo – P2 durata = 10 unità di tempo – P3 durata = 60 unità di tempo – P4 durata = 30 unità di tempo P1 0 P2 20 30 P3 P4 50 P1 70 P3 90 P4 P3 110 120 Non consideriamo eventuali tempi di attesa 140 Funzioni principali del sistema operativo • Avvio del computer • Gestione del processore e dei processi • Gestione della memoria principale • Gestione della memoria virtuale • Gestione della memoria secondaria • Gestione dei dispositivi di input/output • Interazione con l’utente Gestione della memoria secondaria • La memoria secondaria serve per memorizzare programmi e dati in modo permanente • Il file system: quella parte del sistema operativo che si occupa di gestire e strutturare le informazioni memorizzate sulla memoria secondaria Processore Stampante Memoria principale Memoria secondaria Il file system • I file vengono utilizzati come supporto per la memorizzazione dei programmi e dei dati – Un file può corrispondere ad un programma, o ad un insieme di dati omogenee – Diversi tipi di file contengono diversi tipi di informazione – Un file deve avere un nome logico È meglio usare nomi significativi È meglio non usare caratteri speciali e lo spazio bianco mio.doc, a.txt prima pagina.html, mia foto.jpg tesi.doc, inf_lezione9.ppt index.html, montagne.gif Il file system • Un file ha anche una estensione Esempi: .doc .txt .html .jpg .gif .pdf Le estensioni sono importanti perché di solito indicano il tipo del file (quindi danno informazioni sul programma applicativo in grado di manipolarlo) Il file system • Mediante il file system il sistema operativo fornisce una visione astratta dei file su disco Utente 011100010 Hardware 111010101 000011110 Avvio Gestione: i processi, la Interfaccia utente memoria, i disp. di input/output Il file system • Il file system permette all’utente di: – Identificare ogni file mediante il suo nome – Operare sui file mediante opportune operazioni – Effettuare l’accesso alle informazioni grazie ad operazione di alto livello, che non tengono conto del tipo di memorizzazione • Per esempio, si deve accedere allo stesso modo ad un file memorizzato sul disco rigido oppure su un CD-ROM – Strutturare i file, organizzandoli in sottoinsiemi secondo le loro caratteristiche, per avere una visione “ordinata” e strutturata delle informazioni sul disco – Proteggere i propri file in un sistema multi-utente, ossia per impedire ad altri utenti di leggerli, scriverli o cancellarli Organizzazione gerarchica dei file • Un unico spazio (“contenitore”) di file è scomodo – La scelta dei nomi diventa difficile perché non è possibile avere due file con lo stesso nome nella stessa contenitore – Le operazioni di ricerca dei file diventano onerose • L’idea è quella di raggruppare i file in sottoinsiemi • Questi sottoinsiemi di file vengono memorizzati all’interno di contenitori dette cartelle (directory) • I nomi dei file sono locali alle directory – Si possono avere due file con lo stesso nome perché siano in due directory diverse Organizzazione gerarchica dei file • I computer sono dotati di più unità di memoria secondaria, per esempio: – Unità per floppy disk: A – Unità per disco fisso: C – Unità per CD-ROM: D • DOS e Windows usano dei nomi per distinguere le unità Organizzazione gerarchica dei file Photoshop.exe radice dell’albero A: Applicazioni Biblioteca Elab_imm Premiere.exe Elab_testi Winword.exe Narrativa-Fra libro1.pdf libro2.pdf Narrativa-Ing libro1.pdf Narrativa-Ita libro1.pdf foglie libro2.pdf Utenti Bianchi … Rossi … Indice Pautasso … Questa struttura viene chiamata albero Mainframe Switching node Reti di computer Server Reti di computer • Tipi di reti: – Locale: di un’università, azienda, scuola, ecc. – Geografiche: per esempio Internet (la rete delle reti) • Cambiamenti portato da Internet (da Snyder): – – – – – Nessun luogo è remoto Le persone sono interconnesse Le relazioni sociali stanno mutando L’inglese sta diventando un linguaggio universale La libertà di parola e di associazione si è estesa Reti di computer • Perché collegare i computer nelle reti? – Condivisione risorse: • Risorse fisiche: per esempio non è economico comprare 1 stampante laser per ogni personal • Dati e programmi: per esempio base di dati a cui molti utenti (da diversi computer) possono accedere – Sistema di prenotazioni e assegnamento posti di una compagnia aerea, sistema informativo di una banca, ecc. – Comunicazione tra utenti in locazioni fisiche differenti (scambio di messaggi e dati) • Comunicazioni in ambito di ricerca, lavoro cooperativo, possibilità di volgere attività di lavoro a casa (tele-lavoro), ecc. Il modello centralizzato • Anni ’70: modello centralizzato (time-sharing multi-utente) – Il collegamento di molti utenti ad un unico elaboratore potente (centralizzato) attraverso terminali • Terminale: usato solo per inserire dati e ricevere dati per la visualizzazione (per esempio, con tastiera, schermo, mouse, ma senza capacità di elaborazione) • Svantaggio: più utenti necessità di usare computer (centralizzati) più potenti Il modello distribuito • Anni ’80: il modello distribuito – Collegare in rete gli elaboratori (di varie potenze, tipi, nella stessa località o in località diverse) • Vantaggi rispetto al modello centralizzato: – Flessibilità: • In un sistema centralizzato, in caso di guasto all’elaboratore centrale nessuno può lavorare • Nel caso distribuito invece, la rottura di una macchina blocca un solo utente mentre gli altri possono continuare a lavorare – Economicità: • In termini di costi, è più conveniente acquistare molti elaboratori personali e collegarli in rete Internet • Nato da ARPAnet (creato alla fine degli anni ’60, una rete singola e chiusa) e altre reti (reti proprietarie) • Rete delle reti: basato sull’interconnessione delle reti (eterogenee) già esistente (inter-networking) – Idea di interconnessione tra le reti è dei primi anni ’70 Router Router Router Router Rete 1 Rete 2 Rete 3 Internet • Anni ’90: esplosione di Internet – In particolare, negli primi anni ’90: creazione del World Wide Web • 2006: 1,08 bilioni di persone hanno accesso ad Internet (circa 37% in Asia, 28% in Europa, 22% in America del Nord) • Principalmente, studieremo Internet in questa parte del corso Tipi di comunicazione • Comunicazione sincrona: il mittente e il destinatario sono attivi nello stesso momento – Per esempio, una conversazione telefonica • Comunicazione asincrona: l’invio e la ricezione hanno luogo in istanti diversi – Per esempio, una cartolina • Comunicazione broadcast: un singolo mittente e molti destinatari – Per esempio, la radio, la TV • Comunicazione multicast: un singolo mittente e un numeri limitato di destinatari: – Per esempio, le riviste • Comunicazione point-topoint: un singolo mittente e un singolo destinatario – Per esempio, il telefono Tipi di comunicazione • Internet può essere considerato come un mezzo di comunicazione universale – Asincrona point-to-point: per esempio, la posta elettronica – Sincrona point-to-point: per esempio, Instant Messaging, Voice over IP – Multicast: per esempio, gruppi di piccola o media dimensione possono comunicare nelle chat – Broadcast: per esempio, le pagine web