\documentclass[a4paper, 12pt, english]{article}

\usepackage[
    headsep = 25pt
]{geometry}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{multicol}
\usepackage{setspace}
\usepackage{graphicx}
%\usepackage[acronym]{glossaries-extra}

\usepackage{enumitem}
\setlist{nosep}


\title{Advanced Operating Systems\\Assignment Week 11}
\author{Paul Lödige \\ Student ID: 37-229753}

\makeatletter
\newcommand*{\toccontents}{\@starttoc{toc}}
\makeatother

% acronyms
%\makeglossaries

\begin{document}
\maketitle
%\toccontents

%\printglossaries

\section{Assignment}%
\label{sec:Assignment}
Explain within 400 words the problem of using GPUs in Linux-based real-time systems.
%\clearpage

\section{Explanation}%
\label{sec:Explanation}
One of the main challenges in using GPUs in real-time systems 
is the lack of predictability in the scheduling of GPU tasks. 
In a typical Linux-based operating system, 
the scheduler is designed to prioritize tasks based on a number of factors, 
such as priority levels and resource requirements. 
However, this can lead to unpredictable delays and jitter in the execution of GPU tasks, 
which can be problematic for real-time systems that require deterministic behaviour.

Another issue with using GPUs in real-time systems 
is the difficulty in ensuring determinism and reproducibility of results. 
Due to the parallel nature of GPU processing, 
it can be difficult to predict the exact order in which tasks will be executed, 
which can lead to variations in the results of computations. 
Additionally, the use of GPU-specific libraries and APIs can introduce further complexity 
and make it difficult to guarantee that results will be consistent across different systems.
This problem is amplified by the fact that many GPU drivers for Linux are closed-source and proprietary, 
which can make it difficult to customize or optimize the GPU for a specific real-time application. 
While the availability of Open Source drivers has improved, 
a lot of the GPU drivers for Linux are not designed for real-time use 
and can introduce additional jitter and variability in the response times of the system.

There are also additional technical challenges associated with using GPUs in real-time systems. 
For example, 
the use of GPU memory can be difficult to manage in real-time systems, 
and it can be challenging to ensure that data is transferred between the CPU and GPU in a timely and efficient manner. 

In summary, the use of GPUs in Linux-based real-time systems can present several challenges, 
including issues with scheduling and latency, 
as well as difficulties in ensuring determinism and reproducibility of results.


\end{document}
