Operating systems

A.Y. 2018/2019
12
Max ECTS
120
Overall hours
SSD
INF/01
Language
Italian
Learning objectives
Il corso consentirà allo studente di comprendere i principali concetti su cui è basata la realizzazione di un sistema operativo, le sue funzionalità principali nonchè acquisire padronanza nell'uso delle principali API del sistema operativo Linux. Al fine di fornire agli studenti una migliore comprensione dei diversi temi affrontati verrà affrontato lo studio delle componenit principali di un sistema operativo didattico: il sistema operativo JOS. L'ispezione del codice sorgente di JOS, permetterà agli studenti di apprendere come sono implementate su architetture reali le principali funzionalità di un sistema operativo e le relazioni che intercorrono tra i vari componenti del sistema operativo. In laboratorio gli studenti saranno messi in grado di modificare il codice sorgente del kernel di JOS modificando o aggiungendo alcune funzionalità. In tal modo potranno anche imparare le nozioni di base della programmazione di sistema.
Expected learning outcomes
Undefined
Course syllabus and organization

Milan

Responsible
Lesson period
Second semester
Course syllabus
PART I: General Concepts

Introduction to operating systems: principles, structure and historical evolution
Processes: concepts and implementation
Process management API
Process scheduling techniques
Memory management
Virtual memory techniques: pagination, segmentation, paginated segmentation
Memory management API
Introduction to concurrent programming
Threads: concepts and implementation
API for thread management
Solutions to the problem of mutual exclusion
The mechanisms of Interprocess communication
Deadlock: the problem and the solutions
Techniques for managing INPUT / OUTPUT devices
The File system

PART II: Implementation aspects
Introduction to the IA-32 architecture
GNU ASSEMBLER LANGUAGE
Exceptions and Interrupts in IA-32
Analysis and implementation of an elementary bootstrap program and a bootloader
Analysis and implementation of an exception manager
Analysis and implementation of an interrupt handler
Analysis and implementation of a memory manager
Analysis and implementation of a process manager
Analysis and implementation of a syscall manager
INF/01 - INFORMATICS - University credits: 12
Laboratories: 48 hours
Lessons: 72 hours
Shifts:
Turno cognomi A-I
Professor: Monga Mattia
Turno cognomi L-Z
Professor: Re' Matteo
Professor(s)
Reception:
send an email to danilo[dot]bruschi[at]unimi[dot]it
Room P115, Via Comelico
Reception:
By appointment only
Office 5004, Via Celoria 18, Milan