[en] Nowadays a general purpose desktop system equipped with an i7 processor, which is common today, has several cores that provide great software processing power. This resource is managed by general purpose operating systems such as Windows or Linux, balancing the execution of processes between the different cores and even migrating processes from one core to another if the scheduler deems it appropriate. In most cases this management is adequate. However, there are situations where the exclusive use of one core improves the application's time response. Therefore, the possibility of isolating cores of a processor is an interesting approach when running certain applications that need to be executed in real time, with very short response time requirements. If these applications are executed on several cores simultaneously in the same way as other applications are usually executed, the load of the scheduler plus the interrupts are distributed among the different cores, can generate delays in the application that make its time response unpredictable. These delays are not significant when using applications or launching tasks at the conventional user level, but nevertheless, when dealing with real-time applications, these small delays can affect the correct operation of these applications as they require limited response times. Throughout this thesis we will analyze different mechanisms for the isolation of a kernel, explaining what each mechanism consists of and how they can be used, performing tests with each of these types of mechanisms and observing the results obtained from these tests. In this way it will be possible to determine which of these mechanisms could be more effective to reduce response times and latency in operations and, therefore, provide a better isolation of the execution core.

[es] Hoy en día un sistema de sobremesa de propósito general equipado con un procesador i7, común hoy en día, dispone de varios núcleos que proporcionan una gran potencia de procesamiento software. Este recurso es gestionado por los sistemas operativos de propósito general como Windows o Linux, balanceando la ejecución de procesos entre los diferentes núcleos e incluso migrando los procesos de un núcleo a otro si el planificador lo estima oportuno. En la mayoría de los casos esta gestión es la adecuada. Sin embargo, existen situaciones donde el uso de un núcleo en exclusiva mejora la respuesta temporal de la aplicación. Por ello, la posibilidad de aislar núcleos de un procesador es una aproximación interesante a la hora de ejecutar ciertas aplicaciones que necesitan ser ejecutadas en tiempo real, con requisitos de tiempo de respuesta muy cortos. Si se ejecutan estas aplicaciones en varios núcleos de forma simultánea como se suelen ejecutar el resto de las aplicaciones, la carga del planificador más las interrupciones se reparten entre los distintos núcleos, puede generar retardos en la aplicación que hacen impredecible la respuesta temporal de la misma. Estos retardos no son significativos a la hora de usar aplicaciones o lanzar tareas a nivel de usuario convencional, pero, sin embargo, cuando se tratan de aplicaciones en tiempo real, estos pequeños retardos pueden afectar al correcto funcionamiento de estas aplicaciones ya que requieren tiempos de respuesta específicos. A lo largo de este trabajo de fin de grado se van a analizar distintos mecanismos para el aislamiento de un núcleo, explicando en que consiste cada mecanismo y como se pueden utilizar, realizando pruebas con cada uno de estos tipos de mecanismos y observando los resultados que se obtienen de estas pruebas. De esta forma se podrá determinar cuál de estos mecanismos podría ser más efectivo para reducir los tiempos de respuesta y la latencia en las operaciones y, por tanto, ofrecer un mejor aislamiento del núcleo de ejecución.