PROGRAMMA SVOLTO TPI 4DI 2014-15 PROFESSORI: COBELLO GRAZIA E TORNIERI MARCO CONTENUTI: Rispasso architettura dell'elaboratore; gestione dell'I/O, polling, interruzioni esterne e interne (classificazione). Gestione delle interruzioni con Polling, Priority encoder Il pic; Comunicazione con le periferiche. PIC e DMAC; Architetture hardware e parallelismo; pipelining; Modularità dei sistemi operativi e mecchanismo di chiamata di sistema. System call; concetto di api in programmazione, sys call wrapper; Classificazione dei sistemi operativi: workstation, dipartimentali e systemi legacy. Migrazione a sistemi distribuiti basati su rete. Virtualizzazione:VMM ospitati e di sistema; problemi del ring deprivileging e ring compression Virtualizzazione: macchine naturalmente virtualizzabili, macchine non naturalmente virtualizzabili, fast binary translation, paravirtualizzazione, virtualizzazione a livello di sistema operativo; Sistemi operativi time-sharing con gestione di code a priorità differenti; sistemi transazionali; Scheduling dei processi Scheduling Non preemptive e preempitive; algoritmi di scheduling FCFS, SJF, RR, valutazione dei tempi medi di permanenza nel sistema (througthput) e tempi medi di attesa dei processi. Politiche di scheduling con feedback con code multiple e priorità dinamica Programmazione multithreading; I thread: differenze con i processi cooperazione, concorrenza; confronto tra subroutine e coroutine Programmazione concorrente: processi concorrenti e cooperanti, mutua esclusione, regione critica, semafori Concorrenza: lock(x), unlock(x), wait(s), signal(s); I semafori, primitive wait e signal, Deadlock; problema del produttore-consumatore e soluzione con semafori Depositato e Consumato, Deadlock, tecniche di recupero, condizioni che determinano un deadlocki e analisi delle prestazioni di un sistema. algoritmi di scheduling: FCFS, SJF, RoundRobin, gestione dinamica delle priorità con code multiple. Attività di laboratorio: Introduzione a Windows Cmd ; Uso della riga di comando; Accesso al File System da shell; Comandi della shell cmd.exe e caratteri speciali (*,?, &,|,>,>>); Variabili di sistema; Linguaggio di scripting shell cmd (parametri, variabili); Istruzioni di scripting: if, goto, rem; Istruzioni di scripting: for – utilizzo goto per creare cicli iterativi (while. do while); Powershell - introduzione ed esercizi; Introduzione a Linux – installazione S.O. su macchina virtuale; Comandi della shell bash; Linguaggio di scripting della shell bash; Introduzione al linguaggio c; primi programmi c lanciati da interfaccia cli di linux; Approfondimento linguaggio C : stringhe con array e puntatori; Primi comandi linux per la gestione dei processi; stati di un processo; Creazione di processi e sottoprocessi (fork); Programmazione multi-trading in java; Programmazione concorrente – mutua esclusione, modello produttore-consumatore. FIRME RAPPRESENTANTI DEGLI STUDENTI ____________________________________________ ____________________________________________ FIRME DOCENTI ____________________________________________ ____________________________________________