This repository contains exercises and laboratories related to Computer Architecture and Operating Systems. The main focus is on practical applications and implementation using the FreeRTOS operating system, allowing for hands-on experience with system APIs for creating embedded applications.
-
Laboratories
This folder contains all the laboratories performed during the course. Each lab will contain practical tasks related to different topics in computer architecture and operating systems. The labs are organized to provide a step-by-step approach to understanding and working with key system concepts. -
Exercises
The exercises folder includes various exercises performed in class and additional ones outside the class. These exercises cover a wide range of topics in computer architecture and operating systems, with an emphasis on hands-on implementation. Many of these exercises make use of the FreeRTOS operating system to help manage system APIs and develop embedded applications. -
FreeRTOS (Submodule)
The FreeRTOS folder is a submodule that serves as a pointer to the official FreeRTOS kernel directory. This submodule allows you to access the source code of FreeRTOS, which is used extensively in the exercises and laboratories to manage multitasking, inter-process communication, and other essential operating system functionalities.
FreeRTOS is an open-source real-time operating system kernel for embedded devices. It provides support for multitasking, inter-process communication, and synchronization, making it a perfect choice for embedded systems and real-time applications. The FreeRTOS submodule is linked to the official kernel repository, and its implementation is heavily used in the exercises and labs to practice system-level programming and application development.
-
Computer Architecture
This section includes topics such as CPU architecture, memory management, instruction sets, and the design of computer systems. The exercises and labs will help you understand the underlying hardware principles that drive modern computing systems. -
Operating Systems
Topics like process management, memory management, synchronization, scheduling algorithms, and system APIs are covered. We focus on FreeRTOS, a lightweight, real-time operating system that is ideal for embedded systems programming. -
FreeRTOS
Using FreeRTOS, you will learn how to implement multitasking, use system services, and manage resources in embedded applications. The exercises will help you get hands-on experience with the FreeRTOS API, exploring its features and capabilities in real-time systems.
- Clone the Repository
To get started, clone the repository to your local machine:git clone --recursive https://github.com/RenatoMignone/Computer-Architecture-and-Operating-Systems.git