PROGRAMMA DISCIPLINARE SVOLTO a. s. 2015 / 2016 DOCENTI: TESTARDO CINZIA, VALERIO FELICI CLASSE 4 a IA DISCIPLINA TPSI MACROARGOMENTI che sono stati trattati nel corso del corrente anno scolastico (in riferimento a quanto deliberato nell area disciplinare). N.B. il programma è pubblico ad uso degli studenti e delle famiglie. 1. SISTEMI OPERATIVI (RIPASSO) Definizione di sistemi operativi Scopi di un sistema operativo Componenti e funzioni di un sistema operativo 2. FILE SYSTEM File e directory Struttura logica del file system Condivisione e protezione dei file Struttura del file system Metodi di allocazione Gestione dello spazio libero Coerenza del file system 3. MEMORIA SECONDARIA (HARD DISK) Struttura di un disco Scheduling del disco Scheduling FCFS Scheduling SSTF Scheduling SCAN e C-SCAN Scheduling LOOK e C-LOOK Sistemi RAID 4. I PROCESSI Concetto di processo Stati di un processo Process Control Block Context switch Modello: Mod_045PER Rev. 02_02/05/2016 Responsabile del procedimento:
Operazioni sui processi (syscall nei sistemi Unix) fork( ), getpid( ), getppid( ) exit( ) wait( ) e waitpid( ), le macro WIFEXITED( ) e WEXITSTATUS( ) la famiglia delle primitive exec: la primitiva execl( ) argomenti del main: argc e argv 5. COMUNICAZIONE TRA PROCESSI Processi indipendenti, cooperanti e in competizione Inter-Process Communication Sistema a memoria condivisa Scambio di messaggi Comunicazione diretta e indiretta Scambio di messaggi bloccante e non bloccante Buffering Esempi (modello client/server e pipe) 6. CONCORRENZA TRA PROCESSI La concorrenza tra processi (interleaving e overlapping) Sincronizzazione di processi (race condition) Il problema della sezione critica Sezione critica e kernel Soluzione software al problema della sezione critica (algoritmo di Peterson) Soluzione hardware al problema della sezione critica (uso di lock, disabilitazione interrupt, test&set) 7. I SEMAFORI Soluzione basata su sistemi operativi al problema della sezione critica (i semafori) Semafori binari e semafori contatori Semafori spinlock (il problema della attesa attiva) Implementazione dei semafori senza attesa attiva le syscall block() e wakeup() le implementazioni di wait() e signal() Problema dei produttori-consumatori con i semafori 8. COMANDI SHELL LINUX Installazione della VMware e VMware Tools Ripasso sui comandi shell Linux Il comando chmod I comandi: date, cut, sort e grep Regular expression Modello: Mod_045PER Rev. 02_02/05/2016 Responsabile del procedimento:
9. SVILUPPARE APP ANDROID Prima lezione del corso "Developing Adroid Apps" su Udacity Seconda lezione del corso "Developing Adroid Apps" su Udacity 10.SVILUPPARE SITI WEB CON WORDPRESS Installazione di XAMPP Installazione di Wordpress Tema child Bergamo, lì 04 / 06 /2016 I Docenti Cinzia Testardo, Valerio Felici Gli alunni: Matteo Grechi Marco Tagliafierro Modello: Mod_045PER Rev. 02_02/05/2016 Responsabile del procedimento:
Tecnologie e Progettazione di Sistemi Informatici e di Telecomunicazioni (quarta) Indicazioni per il recupero docente: Testardo Cinzia Di seguito sono elencati i macroargomenti affrontati durante l'anno con i relativi obiettivi da raggiungere. Dopo aver studiato i singoli argomenti sulle dispense distribuite durante l'anno fai gli esercizi indicati File system Conoscere il concetto di file e directory Conoscere la struttura logica di un file system Conoscere i metodi di allocazione dei file Conoscere come è gestito lo spazio libero Conoscere e saper usare i sistemi di protezione dei file Memoria secondaria (Hard Disk) Conoscere la struttura di un disco Conoscere i principali algoritmi di scheduling del disco Conoscere e saper usare i sistemi di protezione dei dati Compiti Esercizi Al driver di un disco arrivano, nell ordine, richieste per i cilindri 38, 23, 59, 3, 63, 22, 2, 11, 45. Si utilizzino FCFS, SSTF e SCAN (decrescente) e si stabilisca la distanza totale (in cilindri) percorsa dal braccio del disco per soddisfare tutte le richieste in attesa. Si assuma per tutti i casi, che il braccio si trovi inizialmente posizionato sul cilindro 15 e il numero totale di cilindri è 100 (numerati da 0 a 99) Al driver di un disco arrivano, nell ordine, richieste per i cilindri 51, 80, 90, 140, 1, 45, 165, 85. Si assuma che il braccio si trovi inizialmente posizionato sul cilindro 100, il numero totale di cilindri è 200 (numerati da 0 a 199) e il seek time per lo spostamento tra cilindri adiacenti è 1 ms. Si utilizzi SSTF e si stabilisca il seek time totale per soddisfare tutte le richieste in attesa. Si tenga conto che l'ultima richiesta arriva dopo 13 ms. Si consideri un disco gestito con politica LOOK (crescente) e CSCAN (crescente). Inizialmente la testina è posizionata sul cilindro 24, il numero totale di cilindri è 100 (numerati da 0 a 99) e lo spostamento ad una traccia adiacente richiede 1 ms. Al driver di tale disco arrivano richieste per i cilindri 77, 43, 30, 80, rispettivamente agli istanti 0 ms, 20 ms 50 ms, 55 ms. si stabilisca in quale ordine sono servite le richieste e il tempo di seek time complessivo. I processi Conoscere il concetto di processo
Saper descrivere il ciclo di vita di un processo Conoscere i modelli di elaborazione dei processi Conoscere e saper usare le principali system call dei sistemi Unix Compiti Esercizi Scrivi un programma C++ in cui è lanciata una fork( ) e sia il padre che il figlio stampino a video il proprio PID e il PID del padre, differenziando il codice del padre e del figlio. Modifica l'esercizio precedente in modo che muore prima il figlio (suggerimento: usa sleep( )) Modifica l'esercizio precedente in modo che muore prima il padre (suggerimento: usa sleep( )) Scrivi un programma C++ in cui è richiesto in input un numero intero. Poi è lanciata una fork( ). Il figlio aggiunge 10 a tale numero e lo stampa a video, mentre il padre sottre 10 e lo stampa a video. Differenziare il codice del padre da quello del figlio Un processo padre P0 genera N figli. Considera due diverse gerarchie: N processi fratelli e 1 solo padre; N processi ciascuno figlio del precedente (N+1 livelli: padre, figlio, nipote, ecc.). Crea una struttura globale per tener traccia dei PID di tutti i processi (int pid[n+1]). Descrivi con quali valori è riempito tale vettore nei due casi. Scrivi un programma in cui il padre genera N figli e attende la fine della loro esecuzione Prova a modificare il programma precedente in modo tale che il processo padre attenda il completamento dei processi figli nello stesso ordine in cui sono stati creati. Scrivi un programma in C++ in cui il padre crea N figli e attende la terminazione di uno qualsiasi dei suoi figli Scrivi un programma in C++ in cui il padre crea N figli e attende la terminazione solo dell'ultimo creato Si scriva un programma che crei un figlio. Il figlio deve mandare in esecuzione il comando che mostra data e ora corrente in output. Il padre attende la terminazione del figlio. (Si supponga che il codice del comando si trova nella directory /bin ). Comunicazione tra processi Conoscere il modello di comunicazione a memoria condivisa e a scambio di messaggi Conoscere il modello di comunicazione a scambio di messaggi Conoscere le tipologie dei meccanismi a scambio di messaggi Conoscere le primitive send( ) e receive( ) Concorrenza tra processi
Acquisire il concetto di programmazione concorrente Acquisire il concetto di interazione tra processi Comprendere l'esigenza di sincronizzazione Comprendere il concetto di indivisibilità di una primitiva Avere il concetto di regione critica e mutua esclusione Sapere la differenza tra interleaving e overlapping Avere il concetto di starvation e deadlock Conoscere le varie soluzioni al problema della sezione critica I semafori Conoscere il concetto di semaforo Conoscere la differenza tra semafori binari e semafori contatori Conoscere i semafori spinlock Sapere il funzionamento dei semafori di Dijkstra ATTENZIONE PER COLORO CHE HANNO AVUTO LA SOSPENSIONE DEL GIUDIZIO RIPASSARE TUTTI GLI ARGOMENTI PRESENTI NEL PROGRAMMA SVOLTO.(IN PARTICOLARE QUELLI IN CUI LO STUDENTE NON HA RAGGIUNTO LA SUFFICIENZA DURANTE L'ANNO SCOLASTICO) FARE GLI ESERCIZI SU UN QUADERNO CONSEGNARE IL QUADERNO IL GIORNO DELL'ESAME LA PUNTALITÀ NELLA CONSEGNA, L'ORDINE, LA QUALITÀ E LA QUANTITÀ DEL LAVORO SVOLTO RIENTRERANNO TRA GLI ELEMENTI CHE SARANNO PRESI IN CONSIDERAZIONE IN SEDE DI VALUTAZIONE