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