The course, which is taught in English during the first semester of the first year of the Master of Science in Cybersecurity, serves as a compulsory introduction to the fundamentals of computer architecture and operating systems, with a primary emphasis on embedded systems architecture.
The main objective of the course is to enhance understanding of system architecture design, specifically focusing on microprocessor-based systems, and to introduce how operating systems interact with the underlying hardware architecture to support application software. Additionally, the course delves into the concepts of real-time embedded systems and explores the challenges associated with communication between specialized hardware components. Furthermore, the course provides an overview of security issues related to operating systems.
The course, which is taught in English during the first semester of the first year of the Master of Science in Cybersecurity, serves as a compulsory introduction to the fundamentals of computer architecture and operating systems, with a primary emphasis on embedded systems architecture.
The main objective of the course is to enhance understanding of system architecture design, specifically focusing on microprocessor-based systems, and to introduce how operating systems interact with the underlying hardware architecture to support application software. Additionally, the course delves into the concepts of real-time embedded systems and explores the challenges associated with communication between specialized hardware components. Furthermore, the course provides an overview of security issues related to operating systems.
Students will acquire knowledge, varying in depth depending on the specific topic, skills, and a profound comprehension of the mechanisms and motivations underlying the following technologies and solutions:
- Knowledge of multiple processor architectures, with particular emphasis on the x86, ARM, and RISC-V families.
- Knowledge of the software/hardware architecture of an embedded system.
- Knowledge of system bus, CPU, and I/O characteristics.
- Ability to develop bare-metal applications for embedded devices.
- Ability to develop tools for embedded systems, including cross-compilers, emulators, debug tools, profiling tools, and virtualization tools.
- Knowledge of real-time and non-real-time embedded operating systems (e.g., meconium-OS, FreeRTOS, embedded Linux) and ability to develop applications related to these systems.
Students will acquire knowledge, varying in depth depending on the specific topic, skills, and a profound comprehension of the mechanisms and motivations underlying the following technologies and solutions:
- Knowledge of multiple processor architectures, with particular emphasis on the x86, ARM, and RISC-V families.
- Knowledge of the software/hardware architecture of an embedded system.
- Knowledge of system bus, CPU, and I/O characteristics.
- Ability to develop bare-metal applications for embedded devices.
- Ability to develop tools for embedded systems, including cross-compilers, emulators, debug tools, profiling tools, and virtualization tools.
- Knowledge of real-time and non-real-time embedded operating systems (e.g., meconium-OS, FreeRTOS, embedded Linux) and ability to develop applications related to these systems.
Advanced C programming.
Advanced C programming.
The architecture of a computing system (3 CFU):
- Advanced description of the basic microprocessor architecture
- Introduction to modern microprocessor architectures
- CISC, RISC, and superscalar processor architectures, behaviour and performance
- Microprocessor-based systems architecture
Development flow of bare metal embedded system applications (1 CFU):
- Cross-compiling flow
- Emulators and simulators
- Debugging and profiling
- Virtual platforms
Operating Systems for Embedded Systems (3 CFU):
- Real-time and process scheduling
- Anatomy of an operating system for embedded systems
- Analysis of the architecture and services offered by operating systems for embedded systems (e.g., FreeRTOS, Embedded Linux)
Programming of an embedded operating system (1 CFU):
- Management and device drivers.
- Use of an evaluation board.s
- How to use development tools to build an operating system for embedded systems.
- Design and development of device drivers for custom devices
The architecture of a computing system (3 CFU):
- Advanced description of the basic microprocessor architecture
- Introduction to modern microprocessor architectures
- CISC, RISC, and superscalar processor architectures, behaviour and performance
- Microprocessor-based systems architecture
Development flow of bare metal embedded system applications (1 CFU):
- Cross-compiling flow
- Emulators and simulators
- Debugging and profiling
- Virtual platforms
Operating Systems for Embedded Systems (3 CFU):
- Real-time and process scheduling
- Anatomy of an operating system for embedded systems
- Analysis of the architecture and services offered by operating systems for embedded systems (e.g., FreeRTOS, Embedded Linux)
Programming of an embedded operating system (1 CFU):
- Management and device drivers.
- Use of an evaluation board.s
- How to use development tools to build an operating system for embedded systems.
- Design and development of device drivers for custom devices
The course combines traditional classroom lectures with supervised exercise sessions, allowing students to apply the concepts learned in practical scenarios and engage in discussions with the instructor. Additionally, certain topics within the course include dedicated lab sessions, allowing students to observe the practical implementation of related technologies and reinforce their understanding of the concepts covered in the lectures.
The course is divided into two main components: classroom lectures, which account for 4.4 CFU, and laboratory sessions, which contribute 3.6 CFU.
The course combines traditional classroom lectures with supervised exercise sessions, allowing students to apply the concepts learned in practical scenarios and engage in discussions with the instructor. Additionally, certain topics within the course include dedicated lab sessions, allowing students to observe the practical implementation of related technologies and reinforce their understanding of the concepts covered in the lectures.
The course is divided into two main components: classroom lectures, which account for 4.4 CFU, and laboratory sessions, which contribute 3.6 CFU.
The teachers will provide the material (copy of slides and links to online resources) on the course website.
The teachers will provide the material (copy of slides and links to online resources) on the course website.
Slides; Esercizi; Esercizi risolti; Esercitazioni di laboratorio; Esercitazioni di laboratorio risolte; Materiale multimediale ;
Lecture slides; Exercises; Exercise with solutions ; Lab exercises; Lab exercises with solutions; Multimedia materials;
Modalitą di esame: Elaborato progettuale in gruppo; Prova scritta in aula tramite PC con l'utilizzo della piattaforma di ateneo;
Exam: Group project; Computer-based written test in class using POLITO platform;
...
The examination consists of two components.
PART 1 (mandatory):
This part entails a written test covering all the class topics. The test may include various types of questions, such as open-ended questions, multiple-choice questions, exercises focusing on specific topics, and the development of small programs. Each question is assigned a score, which is announced during the exam.
The exam is delivered on a computer and requires using the open-source tools explained in class.
The maximum score achievable in this part is 25, and the test duration is 90 minutes.
PART 2 (optional):
The second part involves a project that emphasizes the application of the concepts learned in class and enhances the student's ability to independently find documentation and acquire new skills beyond the scope of the course. Each year, a set of topics will be assigned, but students are encouraged to propose their own topics of interest. Projects that involve collaborations with other courses are particularly welcome.
Once the project is completed, students must present it during an oral exam session, highlighting each team member's contribution to the results. The oral exams consist of a 20-minute presentation where all team members must participate and contribute to the presentation of the work done. The presentation will be followed by questions on the developed work aimed at assessing the contribution of all team members to the project. Finally, a live demo of the developed project will be possible whenever applicable.
The project aims to assess:
- The student's proficiency in implementing and developing embedded applications.
- The efficiency of the implementation.
- The student's ability to work effectively in a team.
- The student's presentation skills.
- The individual contributions of each student to the project.
The maximum score achievable in this part is 8 points.
The final grade is determined by summing up the grades obtained in PART 1 and PART 2, capping the score to 32.
The highest distinction, "Laude," is awarded if the total grade equals 32.
PART 1 and PART 2 can be completed within different timeframes. However, PART 2 must be finished within one year (before the start of the next course edition). The project is assigned once, and trying it multiple times is impossible.
(ANY MINOR CHANGES TO THESE POLICIES/PROCEDURES WILL BE TIMELY COMMUNICATED TO THE STUDENTS)
Gli studenti e le studentesse con disabilitą o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unitą Special Needs, al fine di permettere al/la docente la declinazione pił idonea in riferimento alla specifica tipologia di esame.
Exam: Group project; Computer-based written test in class using POLITO platform;
The examination consists of two components.
PART 1 (mandatory):
This part entails a written test covering all the class topics. The test may include various types of questions, such as open-ended questions, multiple-choice questions, exercises focusing on specific topics, and the development of small programs. Each question is assigned a score, which is announced during the exam.
The exam is delivered on a computer and requires using the open-source tools explained in class.
The maximum score achievable in this part is 25, and the test duration is 90 minutes.
PART 2 (optional):
The second part involves a project that emphasizes the application of the concepts learned in class and enhances the student's ability to independently find documentation and acquire new skills beyond the scope of the course. Each year, a set of topics will be assigned, but students are encouraged to propose their own topics of interest. Projects that involve collaborations with other courses are particularly welcome.
Once the project is completed, students must present it during an oral exam session, highlighting each team member's contribution to the results. The oral exams consist of a 20-minute presentation where all team members must participate and contribute to the presentation of the work done. The presentation will be followed by questions on the developed work aimed at assessing the contribution of all team members to the project. Finally, a live demo of the developed project will be possible whenever applicable.
The project aims to assess:
- The student's proficiency in implementing and developing embedded applications.
- The efficiency of the implementation.
- The student's ability to work effectively in a team.
- The student's presentation skills.
- The individual contributions of each student to the project.
The maximum score achievable in this part is 8 points.
The final grade is determined by summing up the grades obtained in PART 1 and PART 2, capping the score to 32.
The highest distinction, "Laude," is awarded if the total grade equals 32.
PART 1 and PART 2 can be completed within different timeframes. However, PART 2 must be finished within one year (before the start of the next course edition). The project is assigned once, and trying it multiple times is impossible.
(ANY MINOR CHANGES TO THESE POLICIES/PROCEDURES WILL BE TIMELY COMMUNICATED TO THE STUDENTS)
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.