The course, taught in English in the first semester of the first year of the Master of Science in Cybersecurity, represents a mandatory introduction to the concept of computer architecture and operating systems, mainly focusing on embedded systems architecture.
The purpose of the course is to provide better knowledge on the elaboration system architecture, with particular attention to microprocessor-based systems and introduce the way operating systems expose the hardware architecture to the application software. The course also deepens the concepts of real-time embedded systems and the issues of communications with ad-hoc hardware components and overviews security issues connected to the operating system.
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 build up knowledge (at a different level of depth depending on the specific topic), skills and a deep understanding of mechanisms and motivations underlying the following technologies and solutions:
- Knowledge of several processor architectures, with particular attention paid to x86, ARM and MIPS families
- Knowledge of the SW/HW architecture of an embedded system
- Knowledge about system bus, CPU and I/O characteristics
- Understanding the development tools for embedded systems: cross-compiler, emulator, debug tools, profiling tools, and virtualization tools.
- Development of bare-metal applications in embedded devices
- Introduction to real-time and non-real-time embedded operating systems (e.g., micrium-OS, Erika-OS, embedded Linux) and development of related applications.
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: e.g., process scheduler, micrium-OS, OSEK/VDX, Embedded Linux
• Programming of an embedded operating system (1 CFU):
- Management, and device drivers.
- Use of an evaluation board.
- Building an operating system for embedded systems: how to use development tools.
- 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 consists of classroom lectures and laboratories. These are complemented by supervised classroom exercise sessions in which students can apply the concepts learned during the lectures to realistic use cases and discuss them with the instructor. Finally, for a subset of the topics, the course includes lab sessions to help retain the concepts learned during the lectures by observing the related technologies in action.
Specifically, the course is structured into lectures in the classroom for 6.1 credits and laboratories for 1.8 credits.
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; Video lezioni dell’anno corrente;
Lecture slides; Exercises; Exercise with solutions ; Lab exercises; Lab exercises with solutions; Video lectures (current year);
Modalità di esame: Prova orale obbligatoria; Elaborato progettuale in gruppo; Prova scritta in aula tramite PC con l'utilizzo della piattaforma di ateneo;
Exam: Compulsory oral exam; Group project; Computer-based written test in class using POLITO platform;
...
(ANY MINOR CHANGES TO THESE POLICIES/PROCEDURES WILL BE TIMELY COMMUNICATED TO THE STUDENTS)
Exam
The test is a written exam lasting 120 minutes, closed books composed of questions on the exam content, and numerical exercises to apply the theory presented in class.
The maximum score for this part is 33.
Assignment
Students will be asked to deliver a group assignment (2/3 persons per group) to be developed during the semester, consisting of developing a small project on the class topics. Upon delivery of the individual assignment, students are asked to take an oral exam to illustrate the content of the assignment. The maximum score for this part is 33.
The final grade is obtained using the following weights: 60% for the written exam and 40% for the assignment. In case the final grade is 33/30, 30L will be recorded.
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: Compulsory oral exam; Group project; Computer-based written test in class using POLITO platform;
The examination consists of two components.
PART1 (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.
PART2 (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 10 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.