Idee per possibili progetti: 1) Riprodurre le misurazioni della latenza del kernel mostrate in http://retis.santannapisa.it/luca/SOAvanzati/Slides/rtos.pdf (slide 46) usando hardware e software piu' recenti. Per la misurazione, si puo' usare cyclictest (https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start), misurando la latenza su: - Kernel Linux standard compilato come kernel non-preemptive - Kernel Linux standard compilato con "Voluntary Kernel Preemption" attiva - Kernel Linux standard compilato come preemtpable - Preempt-RT Consultare https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start per vedere come generare latenze alte 2) Come 1), ma confrontando con Xenomai (o RTAI, o EVL) o un sistema a microkernel (l4re, SEL4, ...) 3) Sviluppare un'applicazione piu' complessa usando SEL4 o l4re 4) Riprodurre l'esperimento con Xenomai mostrato a lezione, usando versioni piu' moderne del software (opzionale: usare RTAI o EVL invece di Xenomai) 5) Esperimenti di scheduling di VM (basate su QEMU/KVM) con scheduler sperimentali (chiedere informazioni via email se interessati) ed eventuali misure di consumo energetico 6) Estendere l'esempio "trap and emulate" (http://retis.santannapisa.it/luca/SOAvanzati/Src/TrapAndEmu-1.tgz) per usare VT-x (analogamente a quanto fatto dal modulo di Linux mostrato a lezione --- http://retis.santannapisa.it/luca/SOAvanzati/Src/vmxdemo.tgz) 7) Estendere l'esempio di utilizzo di VT-x visto a lezione (http://retis.santannapisa.it/luca/SOAvanzati/Src/vmxdemo.tgz) per supportare EPT 8) Sviluppare esempi simili a http://retis.santannapisa.it/luca/SOAvanzati/Src/vmxdemo.tgz o http://retis.santannapisa.it/luca/SOAvanzati/Src/TrapAndEmu-1.tgz per architettura ARM o ARM64 9) Estendere l'esempio di utilizzo di KVM visto a lezione (http://retis.santannapisa.it/luca/SOAvanzati/Src/kvm-test-1.tgz)