Download
informatica per scienze biologiche parte 2 a a 2000 2001 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Informatica per scienze biologiche -- parte 2 -- A.A. 2000/2001 PowerPoint Presentation
Download Presentation
Informatica per scienze biologiche -- parte 2 -- A.A. 2000/2001

Informatica per scienze biologiche -- parte 2 -- A.A. 2000/2001

110 Vues Download Presentation
Télécharger la présentation

Informatica per scienze biologiche -- parte 2 -- A.A. 2000/2001

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

  1. Informatica per scienze biologiche -- parte 2 --A.A. 2000/2001 Docente: Prof. Francesca Rossi E-mail: frossi@math.unipd.it Tel: 049-8275982 10 ore di lezione 10,15,16,17, 22 Maggio 10:30-12:15, aula E 4 ore di laboratorio 4 gruppi: 28, 29, 30, 31 Maggio 14:30-18:30

  2. Sommario degli argomenti Sistemi operativi: DOS, Unix/Linux,Windows Word processors: Word Fogli elettronici: Excel Sistemi per la gestione di basi di dati: Access Reti: TCP/IP, Internet, ftp, telnet, posta elettronica WWW: http, Netscape, HTML, motori di ricerca

  3. Sistemi Operativi Insieme di programmi che gestiscono l’hardware Hardware: Processori Memorie Dispositivi di I/O Detto software di base Software applicativo: insieme dei programmi scritti dall’utente

  4. Bootstrap Fase iniziale che carica il SO in memoria principale (RAM) Prima una parte, che poi ne carica un’altra, ..., fino a che tutto il SO e’ in memoria e in esecuzione

  5. Comandi al SO Attivano l’esecuzione di un programma del SO Il program counter viene modificato per contenere l’indirizzo d’inizio del programma Alla fine si puo’ dare un nuovo comando

  6. Shutdown Memorizza su memoria di massa (non volatile) tutte le informazioni temporaneamente in RAM Se non viene effettuata (es.: guasto)  queste informazioni vengono perse

  7. SO di oggi Possono gestire: Piu’ utenti anche con un solo processore Piu’ programmi per ogni utente Senza che gli utenti se ne rendano conto Macchina virtuale: tanti processori virtuali, uno per ogni programma

  8. Virtualizzazione Molti programmi in esecuzione  simultanea presenza in memoria centrale possibili conflitti  memoria virtuale (come si si avesse piu’ memoria di quella reale) Anche dispositivi di I/O virtuali gestione simultanea di piu’ richieste (es., stampe)

  9. Indipendenza dall’hardware SO sempre piu’ indipendenti dall’hardware Riduce la prozione di codice da modificare per poter usare un SO su un altro calcolatore Programmi applicativi piu’ portabili

  10. Vari SO Negli anni ’80, molti SO Poi, convergenza su pochi SO: DOS (Microsoft) Unix e Linux Windows (Microsoft)

  11. Modalita’ utente/supervisore Nei primi SO, ogni programma poteva attivare ogni altro programma Per dare una struttura, solo Modalita’ utente: permesso di attivare solo alcune procedure Modalita’ supervisore: tutto permesso

  12. SO strutturati In seguito, struttura in livelli Ogni livello si appoggia a quello inferiore Livello piu’ basso: nucleo (kernel) Il nucleo gestisce le funzioni di base

  13. Modello client/server Macchine con caratteristiche diverse collegate in rete Su ogni macchina, vengono eseguiti i programmi che piu’ si adattano alle sue caratteristiche Interfaccia utente e grafica su PC (cliente) Gestione risorse condivise e programmi pesanti su macchine piu’ potenti (server) Un server e molti client

  14. Vantaggi e svantaggi Riduzione del carico sui sistemi centrali Maggiori garanzie di sicurezza e integrita’ Maggiore modularita’ e uniformita’ Maggiore flessibilita’ Necessita’ di rete veloce Maggior oneri di gestione dell’intero sistema

  15. Funzioni del SO Da 100 Kilobyte a 100 megabyte Programmi suddivisi in moduli Ogni modulo ha una funzione diversa Funzioni piu’ importanti: gestione processori gestione processi gestione memoria (principale e secondaria) gestione dispositivi di I/O

  16. Servizi richiesti dagli utenti al SO Interfaccia nucleo verso l’esterno File system Gestore I/O Gestore processi Gestore memoria Gestore processori nucleo hardware Struttura di un SO

  17. Gestione dei processi Controlla la sincronizzazione, interruzione e riattivazione dei programmi in esecuzione Piu’ programmi si alternano nell’uso della CPU Ogni programma puo’ essere: Eseguito Sospeso Fatto ripartire Struttura che mantiene lo stato di avanzamento di ogni programma: processo.

  18. Esempio: esecuzione di una ricetta Ricetta = programma Noi = processore Ingredienti = dati in input Attivita’ di leggere la ricetta, usare gli ingredienti, mescolare, cuocere = processo Telefonata durante l’esecuzione della ricetta = interrupt Il processo interrompre l’esecuzione, prende nota del punto (riga della ricetta, ...) e gestisce l’evento Alla fine della telefonata, l’esecuzione riprende e viene conclusa Dolce = output

  19. Vari processi in esecuzione • Bisogna gestire anche • Condivisione risorse fisiche (CPU, memoria) • Condivisione risorse logiche (dati) • Modularita’: piu’ processi per una singola operazione • Maggiore velocita’ per parallelismo tra processi • Anche piu’ processi per un programma • Es.: piu’ programmatori usano lo stesso editore di testi

  20. Ambiente monotasking • Viene gestita l’esecuzione di un solo programma per volta • L’esecuzione non puo’ essere sospesa (per assegnare la CPU ad un altro programma)  prima bisogna terminare l’esecuzione in corso • Alla terminazione di un programma, si puo’ attivare un altro programma • Piu’ programmi attivati con un solo comando: job

  21. Svantaggi del monotasking • Lentezza: • la CPU non puo’ essere usata da nessun processo mentre il programma in esecuzione svolge operazioni di I/O (molto piu’ lente di letture/scritture in Memoria) • DOS e’ un SO monotasking: non si puo’ fare niente altro mentre si formatta un floppy o si memorizzano dati su disco

  22. Ambiente multitasking • SO che permettono l’esecuzione contemporanea di piu’ programmi • Se una sola CPU esecuzione contemporanea virtuale (una sola istruzione alla volta) • Minimizzano il tempo di inattivita’ ella CPU durante le operazioni di I/O, che possono anche occupare l’80% del tempo

  23. Time sharing • Ripartizione del tempo di CPU tra tutti i processi che la vogliono • Durata del quanto di tempo: tra 100 e 200 millisecondi  granularita’ molto fine • A ciascun utente sembra di avere la CPU tutta per lui, solo piu’ lenta

  24. Coda dei processi pronti • I processi sono messi in una coda • Il processo in cima alla coda ha a disposizione la CPU per un quanto di tempo, fissato e uguale per tutti • Quando il tempo finisce, viene interrotto e messo in fondo alla coda • Se richiede un’operazione di I/O, va nel gruppo dei processi sospesi, quando l’operazione finisce viene rimesso in coda per la CPU • La CPU va al primo in coda

  25. Stati dei processi • Durante la vita di un processo, vari stati: • In esecuzione: quando usa la CPU (solo un processo alla volta) • Pronto: quando aspetta la CPU • Bloccato: in attesa di un evento (es.: fine di op. di I/O) • Passaggio da uno stato ad un altro: context switching

  26. In esecuzione richiesta di I/O schedulazione fine tempo, evento esterno pronti bloccati conclusione I/O Coda ordinata in attesa della CPU Insieme in attesa di eventi Transizioni tra stati

  27. Interrupt • Segnali hardware • Collegati al verificarsi di un evento • Provocano l’esecuzione immediata di un programma del SO (vettore di interrupt) che serve a gestire l’evento • Una CPU puo’ gestire piu’ interrupt • Interrupt anche per fine di quanto di tempo (generato dal timer)

  28. Tipi di interrupt • Rilevazione malfunzionamento hardware • Fine del quanto di tempo • Arrivo di dati in input • Rilevazione di segnali da sensori • Rilevazione di errori software Ogni interruzione ha la sua priorita’, cosi’ il processo che la gestisce puo’ interrompere solo processi con priorita’ inferiore

  29. Tabelle dei processi • Ogni processo ha una sua tabella che lo descrive, che contiene: • Identificativo • Indirizzo prossima istruzione • Contenuto registri CPU • Stato corrente (pronto, bloccato, esecuzione) • Collocazione programma e dati in memoria • Priorita’ • Ammontare CPU time gia’ speso • …

  30. Operazioni sui processi • La tabella e’ sempre in memoria centrale (per accedervi velocemente) • Usando le informazioni contenute nella tabella, si possono fare varie operazioni: • Creazione di nuovi processi • Cambio di priorita’ • Blocco • Assegnamento della CPU • Terminazione

  31. Processi concorrenti • Necessita’ di sincronizzazione e comunicazione • Threads: cammini di esecuzione della CPU su un programma • Piu’ thread possono condividere codice, dati, memoria, file, … • Task: insieme di thread e delle cose condivise tra loro • Processo tradizionale: un solo task con un solo thread

  32. Processi indipendenti o concorrenti • Processi indipendenti: • L’esecuzione di un processo non e’ influenzata da quella degli altri processi • Dipende solo dall’input (deterministica) • Processi cooperanti o concorrenti: • Lo stato puo’ essere influenzato da altri processi, e dati condivisi • Esecuzione non deterministica (dipende dalle velocita’ relative dei processi)

  33. Pipe • Permette il passaggio dei dati tra due processi • I dati sono messi da una parte di un ‘’tubo’’ (pipe) da un processo ed estratti dall’altro lato, nello stesso ordine, da un altro processo • Molto usato nel SO Unix

  34. Coda di messaggi • Esplicite funzioni per scambio messaggi: (send e receive) • Scambio di messaggi tra piu’ processi • Messaggi gestiti secondo il loro arrivo in coda

  35. Condivisione di memoria • Forma di comunicazione piu’ veloce • Pero’ anche piu’ difficile da implementare: bisogna evitare che piu’ processi modifichino contemporaneamente gli stessi dati • Meccanismi piu’ usati: semafori, monitor, rendez-vous

  36. Gestione dei processori • Criteri in base ai quali i processori vengono assegnati ai processi • Programma schedulatore: • Distribuisce il tempo di CPU tra i processi • Decide l’avvicendamento dei processi

  37. Criteri per lo schedulatore • Massimo tasso di uso della CPU • Massimo numero di processi completati per unita’ di tempo (throughput) • Minimo tempo tra la sottomissione di un processo e il suo completamento • Minimo tempo passato in attesa nella coda dei processi pronti

  38. Gestione della coda dei pronti:FIFO • FIFO (first in, first out): • Secondo l’ordine di arrivo, senza interruzione • Implementazione banale • Tempo di attesa non minimizzato

  39. Gestione della coda dei pronti:altri metodi • SJF (Shortest Job First): prima i processi piu’ corti • Round-robin: con quanti di tempo associati a FIFO • Scadenza: prima i processi con la scadenza piu’ vicina • SRT (Shortest Remaining Time): prima i processi a cui manca meno tempo per finire

  40. Gestione della memoria principale • Criteri per allocare la memoria principale tra piu’ entita’ che la richiedono: • SO • Processi • Buffer di I/O • …

  41. Vari tipi di memoria • Memoria principale: • Veloce da accedere • Volatile • Piccola • Programmi da eseguire devono risiedere qui • Granularita’fine (bit o byte) • Memoria di massa (o secondaria): • Molto piu’ grande e meno costosa • Non volatile • Lunghi tempi di accesso • Granularita’ non fine (blocchi di byte)

  42. SO programma dati Gestione della memoria reale • Alloco una prima parte di M per il SO • Poi una parte contigua successiva al programma in esecuzione e ai suoi dati •  Limiti alla grandezza del programma • Overlay: • carico il M solo la sezione del programma che serve ora • Il programmatore deve suddividere il programma in sezioni

  43. Partizioni della memoria reale • Piu’ task  partizioni della memoria • Partizioni fisse:un pezzo fisso di memoria per ciascun processo • Partizioni variabili: minimo spazio per l’esecuzione di un processo • Frammentazione: • Dopo vari caricamenti e scaricamenti, nessuna porzione libera e’ grande abbastanza per il prossimo programma •  ricompattamento delle parti libere (garbage collection)

  44. Memoria virtuale • Tecnica per • Svincolare il codice di un programma dalla sua collocazione in memoria • Funzionare come se si avesse piu’ memoria di quella reale • Da indirizzi virtuali (usati dai programmi) a indirizzi reali (per l’accesso alla RAM)

  45. Indirizzi virtuali e reali -- esempio • Processore a 32 bit 232 indirizzi, da 0 a 232(4 gigabyte) • RAM di solito con alcun centinaia di megabyte • Il programma puo’ usare tutti gli indirizzi, anche se non ci sono cosi’ tante celle di memoria • Gli indirizzi sono virtuali e vengono poi tradotti in indirizzi fisici • Basta che non tutti gli indirizzi fisici siano usati assieme

  46. Gestione della memoria secondaria • Fatta dal modulo del SO detto file system, che si occupa di: • Associare un nome di file ad una parte dello spazio di memoria • Fornire metodi per accedere ai file • Rendere trasparente la struttura fisica della memoria • Ottimizzare l’occupazione di memoria

  47. File • Unica unita’ logica di informazione usata dal SO • Fisicamente: • sequenza di byte che contiene informazioni omogenee • Es.: programma, testo, dati simili, … • Byte = 8 bit • Tutti i dati vengono suddivisi in file • I file vengono memorizzati nelle memorie di massa

  48. Modi di accesso a un file -- 1 • Byte-stream: • File = sequenza di byte • Soprattutto per file di testo • Sequenziale: • File = sequenza di record di lunghezza fissa o variabile • Record = sequenza di byte • Accesso sequenziale ai record

  49. Modi di accesso a un file -- 2 • Diretto: • File = sequenza di record di lunghezza fissa • Accesso immediato ai record • A indice: • File = sequenza di record ordinati secondo un indice • Record = valore dell’indice + informazione • Due file: uno per i record, e uno per indici + indirizzo fisico del record con qull’indice • Accesso veloce, ma piu’ spazio

  50. Organizzazione dei file • Organizzazione gerarchica • Solo logicamente, nessuna relazione con la posizione fisica sulle memorie di massa • Directory: gruppo di file e altre directory, piu’ elenco