COMPLEMENTI DI SISTEMI OPERATIVI
Canale 1
GIORGIO GRISETTI
Scheda docente
Programmi - Frequenza - Esami
Programma
Introduzione ai Sistemi Operativi [00, 01, 02a, 02b]
* storia
* servizi
* funzionalita'
Complementi di programmazione in C per Sistemi Operativi [03]
- implementazione di concetti OOP
- strutture dati polimorfiche
- allocatori di memoria
Architetture hardware [04a, 04b]
- cpu/memoria/bus dati e indirizzi
- esempio di bare metal programming su microcontrollore
Interrupts [03]
- motivazioni
- sviluppo in interrupt handler su microcontrollore
Stack e context switch [04]
* motivazioni
* context switch su microcontrollore
* context switch in user space
Processi e Strutture del Kernel [05]
- motivazioni
- dual mode, meccanismo delle system call
- implementazione di spawn, exec, wait
- creazione di uno scheduler preemptive in user space
Thread
- motivazioni
- concetti in pthread
- scheduling di thread
CPU Scheduling
- motivazioni
- metriche
- FIFO, SJF, SRJF, Round Robin, Round Robin con Priorita'
- controllare lo scheduler in PTHREAD
IPC
- motivazioni
- mutex
- semafori
- code
- memoria condivisa
Memoria
- motivazioni
- proezione della memoria
- metriche
- segmentazione
- paginazione
- traduzione di indirizzi
Memoria Virtuale
- motivazioni
- metriche
- analisi delle prestazioni
- algoritmi di rimpiazzamento delle pagine
- copy on write
File System
- motivazioni
- interfaccia al file system
- controllo degli accessi
- operazioni sui file
Implementazione del File System
- motivazioni
- virtual file system
- Esempi: FAT, Inodes
[potenziali]
SCAN (in i/o scheduling)
mmap types
brk in gestione memoria
Prerequisiti
Conoscenza di basi di algoritmi e strutture dati
- liste/ alberi/ mappe associative
Conoscenza del linguaggio C e della CPU
Conoscenza del modello di macchina (Von Neumann) e rudimenti di assembly
Familiarita' con il sistema operativo Linux ed i suoi strumenti
Testi di riferimento
Tutto il materiale e' disponibile sul sito del corso.
https://sites.google.com/diag.uniroma1.it/sistemi-operativi-2023-24
Videolezioni sono disponibili nel sito dell'aa 2021/22
https://sites.google.com/diag.uniroma1.it/sistemi-operativi-2020-21
[Obbligatorio]
Slide e programmi di esempio.
DA ESEGUIRE SUL PROPRIO COMPUTER
forniti sul sito del docente tramite repository git.
[Suggeriti]
Examples of past exams on the course webpage
[Opzionali]
Operating System Concepts
Ninth Edition
Avi Silberschatz
Peter Baer Galvin
Greg Gagne
Modalità insegnamento
Tutte le informazioni del corso AGGIORNATE sono disponibili presso la pagina del corso, aggionrata ad ogni lezione.
https://sites.google.com/dis.uniroma1.it/grisetti/teaching
E cliccare sulla versione piu recente del corso di sistemi operativi.
A titolo di esempio, il sito dell'anno corrente e' questo: https://sites.google.com/diag.uniroma1.it/sistemi-operativi-2019-20
Il corso e' svolto mediante lezioni in aula, ed erogato in streaming.
Le informazioni qui riportate sono pertanto da ritenersi non aggiornate.
Frequenza
La frequenza del corso e' caldamente raccomandata.
Le lezioni del periodo di pandemia sono communque disponibili su youtube
Modalità di esame
L'esame consta di una prova scritta E la presentazione di un progetto.
Nella prova scritta vengono proposti 8 esercizi da svolgersi in circa un ora e trenta minuti.
Il progetto consta nella realizzazione di un programma concordato con il docente e va svolto in C/C++.
E' ammesso lo svolgimento di un progetto in piccoli gruppi.
I contrbuti individuali dei singoli componenti di un gruppo verranno tracciati mediante sistemi di versioning.
Modalità di erogazione
Tutte le informazioni del corso AGGIORNATE sono disponibili presso la pagina del corso, aggionrata ad ogni lezione.
https://sites.google.com/dis.uniroma1.it/grisetti/teaching
E cliccare sulla versione piu recente del corso di sistemi operativi.
A titolo di esempio, il sito dell'anno corrente e' questo: https://sites.google.com/diag.uniroma1.it/sistemi-operativi-2019-20
Il corso e' svolto mediante lezioni in aula, ed erogato in streaming.
Le informazioni qui riportate sono pertanto da ritenersi non aggiornate.
- Codice insegnamento10606850
- Anno accademico2024/2025
- CorsoIngegneria Informatica e Automatica
- CurriculumInformatica (percorso formativo valido anche per il conseguimento del doppio titolo italo-venezuelano)
- Anno3º anno
- Semestre2º semestre
- SSDING-INF/05
- CFU6
- Ambito disciplinareIngegneria informatica