Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[W001244] - SISTEMI OPERATIVI DEDICATISPECIAL PURPOSE OPERATING SYSTEMS
Aldo Franco DRAGONI
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea Magistrale - [IM11] INGEGNERIA ELETTRONICA (Curriculum: Electronics for Digital Signal Processing) Master Degree (2 years) - [IM11] ELECTRONICS ENGINEERING (Curriculum: Electronics for Digital Signal Processing)
Dipartimento: [040040] Dipartimento Ingegneria dell'InformazioneDepartment: [040040] Dipartimento Ingegneria dell'Informazione
Anno di corsoDegree programme year : 2 - Secondo Semestre
Anno offertaAcademic year: 2023-2024
Anno regolamentoAnno regolamento: 2022-2023
Crediti: 9
Ore di lezioneTeaching hours: 72
TipologiaType: C - Affine/Integrativa
Settore disciplinareAcademic discipline: ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

LINGUA INSEGNAMENTO LANGUAGE

ITALIANO

Italian


PREREQUISITI PREREQUISITES

Non si possono comprendere i contenuti del corso senza aver prima
appreso i concetti fondamentali della programmazione ed aver acquisito
le conoscenze di base in tema di "Sistemi Operativi"

It is not possible to understand the contents of the course without first
learning the fundamentals of computer programming and acquiring the
basic knowledge about "Operating Systems".


MODALITÀ DI SVOLGIMENTO DEL CORSO DEVELOPMENT OF THE COURSE

Il corso si svolge mediante lezioni ed esercitazioni in aula con l'ausilio di
materiale videoregistrato dal docente disponibile sul sito di e-learning.

The course is held through lectures and classroom exercises with the help
of video material available on the e-learning site


RISULTATI DI APPRENDIMENTO ATTESI LEARNING OUTCOMES
Conoscenze e comprensione.

Il corso arricchisce la competenza in tema di Sistemi Operativi
aggiungendo conoscenze relative ad alcune tematiche specifiche con
particolare riferimento alle problematiche relative alla schedulazione dei
processi in contesti "real-time" ed alla elaborazione concorrente in
contesti distribuiti (con o senza memoria condivisa). Esso entra anche nel
dettaglio della programmazione a livello "kernel" di Linux, ovvero del più
diffuso sistema operativo disponibile "open source" .


Capacità di applicare conoscenze e comprensione.

L’apprendimento dei contenuti teorici viene verificato in aula tramite esercizi online ed approfondito direttamente sui propri dispositivi mediante scrittura, compilazione ed esecuzione di programmi. Alla conclusione del corso gli studenti sono quindi in grado di implementare alcune funzionalità tipiche dei sistemi distribuiti e di quelli in tempo reale utilizzando i concetti ed i linguaggi appresi.


Competenze trasversali.

Le conoscenze impartite durante il corso sono particolarmente orientate
verso aspetti ingegneristici dell'informatica vicina all'hardware, cioè
appunto il sistema operativo. Al termine del corso lo studente avrà
acquisito le competenze di base per programmare applicazioni in tempo
reale e distribuite. Si tratta di competenze informatiche utili
trasversalmente in campi che riguardano la realizzazione di sistemi“cyber physical” in cui l’elaboratore deve gestire o interfacciarsi con
sistemi fisici le cui funzionalità sono dettate da tempistiche
imprescindibili ed in cui gli apparati sono geograficamente distribuiti.


Knowledge and Understanding.

The course enriches the competence in the field of Operating Systems by
adding knowledge on some specific issues with particular reference to
issues related to the scheduling of processes in "real-time" contexts and
concurrent processing in distributed contexts (with or without shared
memory). It also goes into the detail of programming at the kernel level
of Linux, i.e. the most widely available open source operating system.


Capacity to apply Knowledge and Understanding.

The learning of theoretical content is verified in the classroom through online exercises and deepened directly on their devices through
writing, compiling and executing programs. At the end of the course the students are therefore able to implement some typical
functionalities of the distributed systems and those in real time using the concepts and languages learned.


Transversal Skills.

The knowledge imparted during the course is particularly oriented
towards engineering aspects of information technology close to the
hardware, i.e. the operating systems. By the end of the course the
student will have acquired the basic skills to program applications in real
time and distributed. These are computer skills that are useful across the
board in fields that concern the creation of "cyber physical" systems in
which the computer must manage or interface with physical systems
whose functions are dictated by essential timeframes and in which the
equipment is geographically distributed.



PROGRAMMA PROGRAM

SISTEMI DISTRIBUITI.
Programmazione Concomitante: principi,
indeterminismo. Metodologia di approccio all'analisi dei programmi
concomitanti, sezione critica per 2 processi: algoritmo di Decker, verifica
della correttezza, logica temporale lineare, “model checker”, algoritmo
del fornaio, semafori. PTHREADS: descrizione e gestione dei threads,
schedulazione dei threads sotto Linux, gestione del “tempo” sotto Linux,
gestione threads periodici, mutua esclusione. Sezione critica in sistemi
distribuiti: assenza di memoria condivisa e coordinamento mediante
messaggi, messaggistica periodica, saturazione del buffer di memoria,
buffers ciclici asincroni, coordinatore centrale, algoritmi di Ricart-
Agrawala “basato su messaggio” e “basato su token”. Agent-Oriented
Programming (AOP) e Sistemi Multi-Agente. IEEE standard FIPA. Java
Agent DEvelopment framework (JADE): agenti e behaviours, scheduling
dei behaviours, OneShotBehaviour, CyclicBehaviour, WakerBehaviour,
TickerBehaviour. AOP e “Internet of Things”. Protocollo di trasmissione
MQTT.
SCHEDULAZIONE DEI PROCESSI IN TEMPO REALE. Evoluzione dei sistemi
“embedded”. “Disappearing Computing” e “Smart Objects”. “Real-time
systems”, controllo ed implementazione. “Real-Time Operating Systems –
RTOS”. Responsabilità. Real-Time ≠ Fast. Sorgenti di indeterminismo. La
legge di Murphy e sua giustificazione. Modeling Real-Time Activities:
tasks, processor states, schedule. Real-time tasks and jobs. Periodic
tasks, aperiodic tasks, sporadic task. Predictability vs. efficiency. Timing
constraints. Precedence constraints. Resorce constraints. Scheduling
anomalies. Real Time scheduling for Aperiodic Tasks: Earliest Due Date,
Earliest Deadline First (EDF), Bratley’s Algorithm, Spring, Latest Deadline
First, EDF*. Real Time scheduling for Periodic Tasks: proportional share
algorithm: timeline (cyclic) scheduling, Priority Scheduling, Rate
Monotonic (RM), utilization upper bound, Hyperbolic Bound, Deadline
Monotonic, Response Time Analysis, EDF with D ≤ T and Processor
Demand criterion. Hybrid Task Sets Scheduling: Aperiodic Servers, Polling
Server (PS), Deferrable Server (DS), Sporadic Server (SS), Total
Bandwidth Server (TBS), TBS*, Tunable Bandwidth Server, Constant
Bandwidth Server (CBS). Handling Shared Resources: problems caused
by mutual exclusion and critical sections, how to deal with priority
inversion, Non Preemptive Protocol (NPP), Highest Locker Priority (HLP),
Priority Inheritance Protocol (PIP), Priority Ceiling Protocol (PCP), Stack
Resource Policy (SRP). Panoramica sui vari RTOSs. Standards for RTOS:
RT-POSIX,
OSEK/VDX,
AUTOSAR
(AUTomotive
Open
System
Architecture), ARINC 653 (Avionics Application Standard Software
Interface), μ-ITRON and TOPPERS. Commercial RTOS: VxWorks, OSE, QNX
. Linux related RTOS: RTLINUX, RTAI, Xenomai. Open Source RTOS: ERIKA
ENTERPRISE.
LINUX KERNEL. Compilazione e configurazione del kernel Linux.
Generalita' sui moduli del kernel Linux. Compilazione di un nuovo
componente del kernel Linux. Scrittura di modulo del kernel.
Compilazione del modulo. Caricamento e rimozione del modulo.
Parametri del modulo. Interfacciamento dei moduli. Importazione ed
esportazione dei simboli. Debugging del kernel e /proc filesystem. Stati di
un processo e gestione del tempo. Tasklets e kernel preemption.
Scheduling dei processi in Linux. I/O ed implementazione di un semplice
driver.

DISTRIBUTED
SYSTEMS.
Concomitant
Programming:
principles,
indeterminism. Methodology of approach to the analysis of concomitant
programs, critical section for 2 processes: Decker algorithm, verification
of correctness, linear time logic, "model checker", baker's algorithm, traffic lights. PTHREADS: description and management of threads,
scheduling of threads under Linux, management of "time" under Linux,
management of periodic threads, mutual exclusion. Critical section in
distributed systems: no shared memory and message coordination,
periodic messaging, memory buffer saturation, asynchronous cyclic
buffers, central coordinator, Ricart-Agrawala "message based" and "token
based" algorithms. Agent-Oriented Programming (AOP) and Multi-Agent
Systems. IEEE FIPA standard. Java Agent DEvelopment framework (JADE):
agents and behaviours, behaviours scheduling, OneShotBehaviour,
CyclicBehaviour, WakerBehaviour, TickerBehaviour. AOP and Internet of
Things. Transmission protocol MQTT.
SCHEDULAZIONE DEI PROCESSI IN TEMPO REALE. Evoluzione dei sistemi
“embedded”. “Disappearing Computing” e “Smart Objects”. “Real-time
systems”, controllo ed implementazione. “Real-Time Operating Systems –
RTOS”. Responsabilità.
Real-Time ≠ Fast. Sorgenti di indeterminismo.
La legge di Murphy e sua giustificazione. Modeling Real-Time Activities:
tasks, processor states, schedule. Real-time tasks and jobs. Periodic
tasks, aperiodic tasks, sporadic task. Predictability vs. efficiency. Timing
constraints. Precedence constraints. Resorce constraints. Scheduling
anomalies. Real Time scheduling for Aperiodic Tasks: Earliest Due Date,
Earliest Deadline First (EDF), Bratley’s Algorithm, Spring, Latest Deadline
First, EDF*. Real Time scheduling for Periodic Tasks: proportional share
algorithm: timeline (cyclic) scheduling, Priority Scheduling, Rate
Monotonic (RM), utilization upper bound, Hyperbolic Bound, Deadline
Monotonic, Response Time Analysis, EDF with D ≤ T and Processor
Demand criterion. Hybrid Task Sets Scheduling: Aperiodic Servers, Polling
Server (PS), Deferrable Server (DS), Sporadic Server (SS), Total
Bandwidth Server (TBS), TBS*, Tunable Bandwidth Server, Constant
Bandwidth Server (CBS). Handling Shared Resources: problems caused
by mutual exclusion and critical sections, how to deal with priority
inversion, Non Preemptive Protocol (NPP), Highest Locker Priority (HLP),
Priority Inheritance Protocol (PIP), Priority Ceiling Protocol (PCP), Stack
Resource Policy (SRP). Panoramica sui vari RTOSs. Standards for RTOS:
RT-POSIX, OSEK/VDX, AUTOSAR (AUTomotive Open System Architecture),
ARINC 653 (Avionics Application Standard Software Interface), μ-ITRON
and TOPPERS. Commercial RTOS: VxWorks, OSE, QNX . Linux related
RTOS: RTLINUX, RTAI, Xenomai. Open Source RTOS: ERIKA ENTERPRISE.
LINUX KERNEL. Compiling and configuring the Linux kernel. General
information about the Linux kernel modules. Compilation of a new
component of the Linux kernel. Writing kernel module. Fill out the form.
Loading and removal of the module. Module parameters. Interfacing of
modules. Importing and exporting symbols. Kernel debugging and /proc
filesystem. States of a process and time management. Tasklets and
kernel preemptions. Scheduling of processes in Linux. I/O and
implementation of a simple driver.


MODALITÀ DI SVOLGIMENTO DELL'ESAME DEVELOPMENT OF THE EXAMINATION
Modalità di valutazione dell'apprendimento.

L'apprendimento viene valutato sulla base di una prova scritta e della
realizzazione di un progetto a scelta del candidato.


Criteri di valutazione dell'apprendimento.

I due momenti della valutazione (prova scritta e progetto) vengono
valutati indipendentemente, tipicamente con 24 punti a disposizione per
la prima e 8 punti per il progetto.


Criteri di misurazione dell'apprendimento.

valutazione in trentesimi


Criteri di attribuzione del voto finale.

Tipicamente 24 punti per la prova scritta e 8 punti per il progetto


Learning Evaluation Methods.

Learning is assessed on the basis of a written test and the realisation of a
project at the candidate's choice.


Learning Evaluation Criteria.

The two phases of the evaluation (written test and project) are evaluated
independently, typically with 24 points available for the first and 8 points
for the project.


Learning Measurement Criteria.

evaluation in thirtieths


Final Mark Allocation Criteria.

Typically 24 points for the written test and 8 points for the project.



TESTI CONSIGLIATI RECOMMENDED READING

Silberschatz, Galvin, Gagne, "Sistemi Operativi" VI° Ed., Addison-Wesley,
2002.

Giorgio C. Buttazzo, "Sistemi In Tempo Reale", Pitagora Editrice Bologna
2008.

Carmine Noviello,
"Mastering STM32 - A step-by-step guide to the most complete ARM Cortex-M platform, using the official STM32Cube development environment"

Meteriale Didattico disponibile sul sito: https://learn.univpm.it

Silberschatz, Galvin, Gagne, "Sistemi Operativi" VI° Ed., Addison-Wesley,
2002.

Giorgio C. Buttazzo, "Sistemi In Tempo Reale", Pitagora Editrice Bologna
2008.

Carmine Noviello,
"Mastering STM32 - A step-by-step guide to the most complete ARM Cortex-M platform, using the official STM32Cube development environment"

Slides and other support available at the following URL: https://learn.univpm.it


Scheda insegnamento erogato nell’A.A. 2023-2024
Le informazioni contenute nella presente scheda assumono carattere definitivo solo a partire dall'A.A. di effettiva erogazione dell'insegnamento.
Academic year 2023-2024

 


Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427