SlideShare una empresa de Scribd logo
1 de 12
Un sistema operativo de tiempo real (SOTR o RTOS -Real Time Operating
System en inglés) es un sistema operativo que ha sido desarrollado para
aplicaciones de tiempo real. Como tal, se le exige corrección en sus respuestas
bajo ciertas restricciones de tiempo. Si no las respeta, se dirá que el sistema ha
fallado. Para garantizar el comportamiento correcto en el tiempo requerido se
necesita que el sistema sea predecible (determinista)
Usado típicamente para aplicaciones integradas, normalmente tiene las siguientes
características:
No utiliza mucha memoria
Cualquier evento en el soporte físico puede hacer que se ejecute una tarea
Multi-arquitectura (código portado a cualquier tipo de CPU)
Muchos tienen enfermedades predecibles para eventos electrónicos
Se caracterizan por presentar requisitos especiales en cinco áreas generales:
Determinismo
Sensibilidad
Control del usuario
Fiabilidad
Tolerancia a los fallos
consecuentemente mas fallos dados
En la actualidad hay un debate sobre qué es tiempo real. Muchos sistemas operativos de
tiempo real tienen un programador y diseños de controladores que minimizan los periodos
en los que las interrupciones están deshabilitadas, un número llamado a veces duración de
interrupción. Muchos incluyen también formas especiales de gestión de memoria que limitan
la posibilidad de fragmentación de la memoria y aseguran un límite superior mínimo para los
tiempos de asignación y retirada de la memoria.
Un ejemplo temprano de sistema operativo en tiempo real a gran escala fue el denominado
«programa de control» desarrollado por American Airlines e IBM para el sistema de reservas
Sabre
Este tipo de sistemas operativos no es necesariamente eficiente en el sentido
de tener una capacidad de procesamiento alta. El algoritmo de programación
especializado, y a veces una tasa de interrupción del reloj alta pueden interferir
en la capacidad de procesamiento.
Aunque para propósito general un procesador moderno suele ser más rápido,
para programación en tiempo real deben utilizarse procesadores lo más
predecibles posible, sin paginación. Todos estos factores añaden una
aleatoriedad que hace que sea difícil demostrar que el sistema es viable, es
decir, que cumple con los plazos.
Un sistema operativo de tiempo real puede ser implementado en
microcontroladores o procesadores digitales de señal "DSP's", así, se pueden
desarrollar aplicaciones embebidas en diferentes áreas de la electrónica.
Hay dos diseños básicos:
Un sistema operativo guiado por eventos sólo cambia de tarea cuando un
evento necesita el servicio.
Un diseño de compartición de tiempo cambia de tareas por interrupciones
del reloj y por eventos.
El diseño de compartición de tiempo gasta más tiempo de la UCP en
cambios de tarea innecesarios. Sin embargo, da una mejor ilusión de
multitarea. Normalmente se utiliza un sistema de prioridades fijas.
Uno de los algoritmos que suelen usarse para la asignación de
prioridades es el Rate-Monotonic Schedule. Si el conjunto de tareas que
tenemos es viable con alguna asignación de prioridades fijas, también es
viable con el Rate-Monotonic Schedule, donde la tarea más prioritaria es
la de menor periodo. Esto no quiere decir que si no es viable con RateMonotonic Schedule no sea viable con asignaciones de prioridad variable.
Puede darse el caso de encontrarnos con un sistema viable con
prioridades variables y que no sea viable con prioridades fijas.
En los diseños típicos, una tarea tiene tres estados: ejecución, preparada y
bloqueada. La mayoría de las tareas están bloqueadas casi todo el tiempo.
Solamente se ejecuta una tarea por UCP. La lista de tareas preparadas suele ser
corta, de dos o tres tareas como mucho.
El problema principal es diseñar el programador. Usualmente, la estructura de los
datos de la lista de tareas preparadas en el programador está diseñada para que
cada búsqueda, inserción y eliminación necesiten interrupciones de cierre
solamente durante un período muy pequeño, cuando se buscan partes de la lista
muy definidas.
Esto significa que otras tareas pueden operar en la lista asincrónicamente,
mientras que se busca. Una buena programación típica es una lista conectada
bidireccional de tareas preparadas, ordenadas por orden de prioridad. Hay que
tener en cuenta que no es rápido de buscar sino determinista. La mayoría de las
listas de tareas preparadas sólo tienen dos o tres entradas, por lo que una
búsqueda secuencial es usualmente la más rápida, porque requiere muy poco
tiempo de instalación.
El tiempo de respuesta crítico es el tiempo que necesita para poner en la cola una
nueva tarea preparada y restaurar el estado de la tarea de más alta prioridad.
Las diferentes tareas de un sistema no pueden utilizar los mismos datos o
componentes físicos al mismo tiempo. Hay dos métodos para tratar este
problema.
Uno de los métodos utiliza semáforos. En general, el semáforo binario
puede estar cerrado o abierto. Cuando está cerrado hay una cola de tareas
esperando la apertura del semáforo.
Los problemas con los diseños de semáforos son bien conocidos: inversión
de prioridades y puntos muertos (deadlocks).
En la inversión de prioridades, una tarea de mucha prioridad espera porque
otra tarea de baja prioridad tiene un semáforo. Si una tarea de prioridad
intermedia impide la ejecución de la tarea de menor prioridad, la de más
alta prioridad nunca llega a ejecutarse. Una solución típica sería otorgar a
la tarea que tiene el semáforo la prioridad de la tarea más prioritaria de las
que están esperando dicho semáforo. Esto se denomina algoritmo de
herencia básica de prioridad.
Las interrupciones son la forma más común de pasar información
desde el mundo exterior al programa y son, por naturaleza,
impredecibles. En un sistema de tiempo real estas interrupciones
pueden informar diferentes eventos como la presencia de nueva
información en un puerto de comunicaciones, de una nueva muestra
de audio en un equipo de sonido o de un nuevo cuadro de imagen en
una videograbadora digital.
Para que el programa cumpla con su cometido de ser tiempo real es
necesario que el sistema atienda la interrupción y procese la
información obtenida antes de que se presente la siguiente
interrupción. Como el microprocesador normalmente solo puede
atender una interrupción a la vez, es necesario que los controladores
de tiempo real se ejecuten en el menor tiempo posible. Esto se logra
no procesando la señal dentro de la interrupción, sino enviando un
mensaje a una tarea o solucionando un semáforo que está siendo
esperado por una tarea. El programador se encarga de activar la
tarea y esta se encarga de adquirir la información y completar el
procesamiento de la misma.
Hay dos problemas con el reparto de la memoria en SOTR (sistemas operativos
en tiempo real).
El primero, la velocidad del reparto es importante. Un esquema de reparto de
memoria estándar recorre una lista conectada de longitud indeterminada para
encontrar un bloque de memoria libre; sin embargo, esto no es aceptable ya que
el reparto de la memoria debe ocurrir en un tiempo fijo en el SOTR.
En segundo lugar, la memoria puede fragmentarse cuando las regiones libres se
pueden separar por regiones que están en uso. Esto puede provocar que se pare
un programa, sin posibilidad de obtener memoria, aunque en teoría exista
suficiente memoria. Una solución es tener una lista vinculada LIFO de bloques de
memoria de tamaño fijo. Esto funciona asombrosamente bien en un sistema
simple.
La paginación suele desactivarse en los sistemas en tiempo real, ya que es un
factor bastante aleatorio e impredecible, que varía el tiempo de respuesta y no nos
permite asegurar que se cumplirán los plazos, debido al trasiego de páginas de
memoria con un dispositivo de almacenamiento (trashing)
Maneja diferentes sistemas operativos

Más contenido relacionado

La actualidad más candente

Algoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosAlgoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosFernando Morales
 
Planificación de Procesos en Sistemas Operativos
Planificación de Procesos en Sistemas OperativosPlanificación de Procesos en Sistemas Operativos
Planificación de Procesos en Sistemas OperativosCarina Hurtado
 
Planificación por prioridad
Planificación por prioridadPlanificación por prioridad
Planificación por prioridadGarNav
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMMari Cruz
 
Planificacion de CPU FCFS (First Come, First Served)
Planificacion de CPU FCFS (First Come, First Served)Planificacion de CPU FCFS (First Come, First Served)
Planificacion de CPU FCFS (First Come, First Served)Rodrigo Saraguro
 
3.1 politica y_filosofia
3.1 politica y_filosofia3.1 politica y_filosofia
3.1 politica y_filosofiabeymarlopez
 
Ventajas y desventajas
Ventajas y desventajasVentajas y desventajas
Ventajas y desventajasOscar LS
 
Sistemas en tiempo real
Sistemas en tiempo realSistemas en tiempo real
Sistemas en tiempo realAreliDA
 
Planificacion windows
Planificacion windowsPlanificacion windows
Planificacion windowsisack_500
 
Sistemas en tiempo real
Sistemas en tiempo realSistemas en tiempo real
Sistemas en tiempo realAreliDA
 

La actualidad más candente (17)

Algoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosAlgoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativos
 
Procesos i 2017
Procesos i  2017Procesos i  2017
Procesos i 2017
 
Planificación de Procesos en Sistemas Operativos
Planificación de Procesos en Sistemas OperativosPlanificación de Procesos en Sistemas Operativos
Planificación de Procesos en Sistemas Operativos
 
4.administración de memoria
4.administración de memoria4.administración de memoria
4.administración de memoria
 
Planificación por prioridad
Planificación por prioridadPlanificación por prioridad
Planificación por prioridad
 
Lifo round robín informatica
Lifo round robín informatica Lifo round robín informatica
Lifo round robín informatica
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUM
 
Planificacion de CPU FCFS (First Come, First Served)
Planificacion de CPU FCFS (First Come, First Served)Planificacion de CPU FCFS (First Come, First Served)
Planificacion de CPU FCFS (First Come, First Served)
 
3.1 politica y_filosofia
3.1 politica y_filosofia3.1 politica y_filosofia
3.1 politica y_filosofia
 
Sjf srtf
Sjf   srtfSjf   srtf
Sjf srtf
 
Ventajas y desventajas
Ventajas y desventajasVentajas y desventajas
Ventajas y desventajas
 
Planificacion FCFS
Planificacion FCFSPlanificacion FCFS
Planificacion FCFS
 
Sistemas en tiempo real
Sistemas en tiempo realSistemas en tiempo real
Sistemas en tiempo real
 
Algoritmos de planificador
Algoritmos de planificadorAlgoritmos de planificador
Algoritmos de planificador
 
Actividad colaborativa
Actividad colaborativaActividad colaborativa
Actividad colaborativa
 
Planificacion windows
Planificacion windowsPlanificacion windows
Planificacion windows
 
Sistemas en tiempo real
Sistemas en tiempo realSistemas en tiempo real
Sistemas en tiempo real
 

Similar a Maneja diferentes sistemas operativos

Sistema operativo de tiempo real
Sistema operativo de tiempo realSistema operativo de tiempo real
Sistema operativo de tiempo realalexander20107024
 
Unidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos IUnidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos IKamps Tepes
 
Revista Adm dl Procesador
Revista Adm dl ProcesadorRevista Adm dl Procesador
Revista Adm dl ProcesadorGene Beiia
 
Sistemas Operativos[1]
Sistemas Operativos[1]Sistemas Operativos[1]
Sistemas Operativos[1]guest5db8b1
 
Sistemas Operativos[1]
Sistemas Operativos[1]Sistemas Operativos[1]
Sistemas Operativos[1]guest5db8b1
 
Inf 324 01 03 Planificadores
Inf 324 01 03 PlanificadoresInf 324 01 03 Planificadores
Inf 324 01 03 PlanificadoresRomelestevez
 
Planificacion De Procesos y Procesadores
Planificacion De Procesos y ProcesadoresPlanificacion De Procesos y Procesadores
Planificacion De Procesos y ProcesadoresPkacho
 
Administración de procesos y del procesador.pptx
Administración de procesos y del procesador.pptxAdministración de procesos y del procesador.pptx
Administración de procesos y del procesador.pptxNoraTorres35
 
Procesos - Sistemas Operativos
Procesos - Sistemas OperativosProcesos - Sistemas Operativos
Procesos - Sistemas Operativosrichardstalin
 
Administracion de memoria so
Administracion de memoria soAdministracion de memoria so
Administracion de memoria soIndira Gil
 
Conseptos BáSicos De Sistemas Operativos
Conseptos BáSicos De Sistemas OperativosConseptos BáSicos De Sistemas Operativos
Conseptos BáSicos De Sistemas Operativosjuan3469
 
Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Gabriel Loría Solís
 
Politicas de planificacion
Politicas de planificacionPoliticas de planificacion
Politicas de planificacionMakimakia
 

Similar a Maneja diferentes sistemas operativos (20)

Sistema operativo de tiempo real
Sistema operativo de tiempo realSistema operativo de tiempo real
Sistema operativo de tiempo real
 
Trabajode Sisope
Trabajode SisopeTrabajode Sisope
Trabajode Sisope
 
Actividad colaborativa 301402 7
Actividad colaborativa  301402 7Actividad colaborativa  301402 7
Actividad colaborativa 301402 7
 
Unidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos IUnidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos I
 
Revista Adm dl Procesador
Revista Adm dl ProcesadorRevista Adm dl Procesador
Revista Adm dl Procesador
 
Sistemas Operativos[1]
Sistemas Operativos[1]Sistemas Operativos[1]
Sistemas Operativos[1]
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Sistemas Operativos[1]
Sistemas Operativos[1]Sistemas Operativos[1]
Sistemas Operativos[1]
 
Inf 324 01 03 Planificadores
Inf 324 01 03 PlanificadoresInf 324 01 03 Planificadores
Inf 324 01 03 Planificadores
 
Planificacion De Procesos y Procesadores
Planificacion De Procesos y ProcesadoresPlanificacion De Procesos y Procesadores
Planificacion De Procesos y Procesadores
 
So 2da unidad
So 2da unidadSo 2da unidad
So 2da unidad
 
Administración de procesos y del procesador.pptx
Administración de procesos y del procesador.pptxAdministración de procesos y del procesador.pptx
Administración de procesos y del procesador.pptx
 
Sistemas operativos - 6to SSI
Sistemas operativos - 6to SSISistemas operativos - 6to SSI
Sistemas operativos - 6to SSI
 
2003 Clase0610
2003 Clase06102003 Clase0610
2003 Clase0610
 
Procesos - Sistemas Operativos
Procesos - Sistemas OperativosProcesos - Sistemas Operativos
Procesos - Sistemas Operativos
 
Lote
LoteLote
Lote
 
Administracion de memoria so
Administracion de memoria soAdministracion de memoria so
Administracion de memoria so
 
Conseptos BáSicos De Sistemas Operativos
Conseptos BáSicos De Sistemas OperativosConseptos BáSicos De Sistemas Operativos
Conseptos BáSicos De Sistemas Operativos
 
Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos
 
Politicas de planificacion
Politicas de planificacionPoliticas de planificacion
Politicas de planificacion
 

Último

Manual Volkswagen gol voyage 2015(1).pdf
Manual Volkswagen gol voyage 2015(1).pdfManual Volkswagen gol voyage 2015(1).pdf
Manual Volkswagen gol voyage 2015(1).pdfAlbisRosMartnez
 
Ergonomía en Oficinas- Ergonomía en Oficina.pptx
Ergonomía en Oficinas- Ergonomía en Oficina.pptxErgonomía en Oficinas- Ergonomía en Oficina.pptx
Ergonomía en Oficinas- Ergonomía en Oficina.pptxmolinabdiego93
 
lollllllllllllllllllllllllllllllllllllllllllllllll
lolllllllllllllllllllllllllllllllllllllllllllllllllollllllllllllllllllllllllllllllllllllllllllllllll
lollllllllllllllllllllllllllllllllllllllllllllllllJesusFlores332
 
Manual de Camioneta Toyota doble traccion 20023
Manual de Camioneta Toyota doble traccion 20023Manual de Camioneta Toyota doble traccion 20023
Manual de Camioneta Toyota doble traccion 20023danyercatari1
 
Inyección electrónica, Diagnostico por imagenes.pdf
Inyección electrónica, Diagnostico por imagenes.pdfInyección electrónica, Diagnostico por imagenes.pdf
Inyección electrónica, Diagnostico por imagenes.pdfmiltonantonioescamil
 
Leyes de Kirchhoff ejercciosdddddddddddddddddddddddddddddddddddddddd
Leyes de Kirchhoff ejercciosddddddddddddddddddddddddddddddddddddddddLeyes de Kirchhoff ejercciosdddddddddddddddddddddddddddddddddddddddd
Leyes de Kirchhoff ejercciosddddddddddddddddddddddddddddddddddddddddLeonardoMedrano7
 
715422705-PROGRAMACION-ANUAL-CCSS-1-2024.docx
715422705-PROGRAMACION-ANUAL-CCSS-1-2024.docx715422705-PROGRAMACION-ANUAL-CCSS-1-2024.docx
715422705-PROGRAMACION-ANUAL-CCSS-1-2024.docxkattiagonzalesrengif
 

Último (7)

Manual Volkswagen gol voyage 2015(1).pdf
Manual Volkswagen gol voyage 2015(1).pdfManual Volkswagen gol voyage 2015(1).pdf
Manual Volkswagen gol voyage 2015(1).pdf
 
Ergonomía en Oficinas- Ergonomía en Oficina.pptx
Ergonomía en Oficinas- Ergonomía en Oficina.pptxErgonomía en Oficinas- Ergonomía en Oficina.pptx
Ergonomía en Oficinas- Ergonomía en Oficina.pptx
 
lollllllllllllllllllllllllllllllllllllllllllllllll
lolllllllllllllllllllllllllllllllllllllllllllllllllollllllllllllllllllllllllllllllllllllllllllllllll
lollllllllllllllllllllllllllllllllllllllllllllllll
 
Manual de Camioneta Toyota doble traccion 20023
Manual de Camioneta Toyota doble traccion 20023Manual de Camioneta Toyota doble traccion 20023
Manual de Camioneta Toyota doble traccion 20023
 
Inyección electrónica, Diagnostico por imagenes.pdf
Inyección electrónica, Diagnostico por imagenes.pdfInyección electrónica, Diagnostico por imagenes.pdf
Inyección electrónica, Diagnostico por imagenes.pdf
 
Leyes de Kirchhoff ejercciosdddddddddddddddddddddddddddddddddddddddd
Leyes de Kirchhoff ejercciosddddddddddddddddddddddddddddddddddddddddLeyes de Kirchhoff ejercciosdddddddddddddddddddddddddddddddddddddddd
Leyes de Kirchhoff ejercciosdddddddddddddddddddddddddddddddddddddddd
 
715422705-PROGRAMACION-ANUAL-CCSS-1-2024.docx
715422705-PROGRAMACION-ANUAL-CCSS-1-2024.docx715422705-PROGRAMACION-ANUAL-CCSS-1-2024.docx
715422705-PROGRAMACION-ANUAL-CCSS-1-2024.docx
 

Maneja diferentes sistemas operativos

  • 1.
  • 2. Un sistema operativo de tiempo real (SOTR o RTOS -Real Time Operating System en inglés) es un sistema operativo que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dirá que el sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo requerido se necesita que el sistema sea predecible (determinista)
  • 3. Usado típicamente para aplicaciones integradas, normalmente tiene las siguientes características: No utiliza mucha memoria Cualquier evento en el soporte físico puede hacer que se ejecute una tarea Multi-arquitectura (código portado a cualquier tipo de CPU) Muchos tienen enfermedades predecibles para eventos electrónicos Se caracterizan por presentar requisitos especiales en cinco áreas generales: Determinismo Sensibilidad Control del usuario Fiabilidad Tolerancia a los fallos consecuentemente mas fallos dados En la actualidad hay un debate sobre qué es tiempo real. Muchos sistemas operativos de tiempo real tienen un programador y diseños de controladores que minimizan los periodos en los que las interrupciones están deshabilitadas, un número llamado a veces duración de interrupción. Muchos incluyen también formas especiales de gestión de memoria que limitan la posibilidad de fragmentación de la memoria y aseguran un límite superior mínimo para los tiempos de asignación y retirada de la memoria. Un ejemplo temprano de sistema operativo en tiempo real a gran escala fue el denominado «programa de control» desarrollado por American Airlines e IBM para el sistema de reservas Sabre
  • 4. Este tipo de sistemas operativos no es necesariamente eficiente en el sentido de tener una capacidad de procesamiento alta. El algoritmo de programación especializado, y a veces una tasa de interrupción del reloj alta pueden interferir en la capacidad de procesamiento. Aunque para propósito general un procesador moderno suele ser más rápido, para programación en tiempo real deben utilizarse procesadores lo más predecibles posible, sin paginación. Todos estos factores añaden una aleatoriedad que hace que sea difícil demostrar que el sistema es viable, es decir, que cumple con los plazos. Un sistema operativo de tiempo real puede ser implementado en microcontroladores o procesadores digitales de señal "DSP's", así, se pueden desarrollar aplicaciones embebidas en diferentes áreas de la electrónica.
  • 5.
  • 6. Hay dos diseños básicos: Un sistema operativo guiado por eventos sólo cambia de tarea cuando un evento necesita el servicio. Un diseño de compartición de tiempo cambia de tareas por interrupciones del reloj y por eventos. El diseño de compartición de tiempo gasta más tiempo de la UCP en cambios de tarea innecesarios. Sin embargo, da una mejor ilusión de multitarea. Normalmente se utiliza un sistema de prioridades fijas. Uno de los algoritmos que suelen usarse para la asignación de prioridades es el Rate-Monotonic Schedule. Si el conjunto de tareas que tenemos es viable con alguna asignación de prioridades fijas, también es viable con el Rate-Monotonic Schedule, donde la tarea más prioritaria es la de menor periodo. Esto no quiere decir que si no es viable con RateMonotonic Schedule no sea viable con asignaciones de prioridad variable. Puede darse el caso de encontrarnos con un sistema viable con prioridades variables y que no sea viable con prioridades fijas.
  • 7.
  • 8. En los diseños típicos, una tarea tiene tres estados: ejecución, preparada y bloqueada. La mayoría de las tareas están bloqueadas casi todo el tiempo. Solamente se ejecuta una tarea por UCP. La lista de tareas preparadas suele ser corta, de dos o tres tareas como mucho. El problema principal es diseñar el programador. Usualmente, la estructura de los datos de la lista de tareas preparadas en el programador está diseñada para que cada búsqueda, inserción y eliminación necesiten interrupciones de cierre solamente durante un período muy pequeño, cuando se buscan partes de la lista muy definidas. Esto significa que otras tareas pueden operar en la lista asincrónicamente, mientras que se busca. Una buena programación típica es una lista conectada bidireccional de tareas preparadas, ordenadas por orden de prioridad. Hay que tener en cuenta que no es rápido de buscar sino determinista. La mayoría de las listas de tareas preparadas sólo tienen dos o tres entradas, por lo que una búsqueda secuencial es usualmente la más rápida, porque requiere muy poco tiempo de instalación. El tiempo de respuesta crítico es el tiempo que necesita para poner en la cola una nueva tarea preparada y restaurar el estado de la tarea de más alta prioridad.
  • 9. Las diferentes tareas de un sistema no pueden utilizar los mismos datos o componentes físicos al mismo tiempo. Hay dos métodos para tratar este problema. Uno de los métodos utiliza semáforos. En general, el semáforo binario puede estar cerrado o abierto. Cuando está cerrado hay una cola de tareas esperando la apertura del semáforo. Los problemas con los diseños de semáforos son bien conocidos: inversión de prioridades y puntos muertos (deadlocks). En la inversión de prioridades, una tarea de mucha prioridad espera porque otra tarea de baja prioridad tiene un semáforo. Si una tarea de prioridad intermedia impide la ejecución de la tarea de menor prioridad, la de más alta prioridad nunca llega a ejecutarse. Una solución típica sería otorgar a la tarea que tiene el semáforo la prioridad de la tarea más prioritaria de las que están esperando dicho semáforo. Esto se denomina algoritmo de herencia básica de prioridad.
  • 10. Las interrupciones son la forma más común de pasar información desde el mundo exterior al programa y son, por naturaleza, impredecibles. En un sistema de tiempo real estas interrupciones pueden informar diferentes eventos como la presencia de nueva información en un puerto de comunicaciones, de una nueva muestra de audio en un equipo de sonido o de un nuevo cuadro de imagen en una videograbadora digital. Para que el programa cumpla con su cometido de ser tiempo real es necesario que el sistema atienda la interrupción y procese la información obtenida antes de que se presente la siguiente interrupción. Como el microprocesador normalmente solo puede atender una interrupción a la vez, es necesario que los controladores de tiempo real se ejecuten en el menor tiempo posible. Esto se logra no procesando la señal dentro de la interrupción, sino enviando un mensaje a una tarea o solucionando un semáforo que está siendo esperado por una tarea. El programador se encarga de activar la tarea y esta se encarga de adquirir la información y completar el procesamiento de la misma.
  • 11. Hay dos problemas con el reparto de la memoria en SOTR (sistemas operativos en tiempo real). El primero, la velocidad del reparto es importante. Un esquema de reparto de memoria estándar recorre una lista conectada de longitud indeterminada para encontrar un bloque de memoria libre; sin embargo, esto no es aceptable ya que el reparto de la memoria debe ocurrir en un tiempo fijo en el SOTR. En segundo lugar, la memoria puede fragmentarse cuando las regiones libres se pueden separar por regiones que están en uso. Esto puede provocar que se pare un programa, sin posibilidad de obtener memoria, aunque en teoría exista suficiente memoria. Una solución es tener una lista vinculada LIFO de bloques de memoria de tamaño fijo. Esto funciona asombrosamente bien en un sistema simple. La paginación suele desactivarse en los sistemas en tiempo real, ya que es un factor bastante aleatorio e impredecible, que varía el tiempo de respuesta y no nos permite asegurar que se cumplirán los plazos, debido al trasiego de páginas de memoria con un dispositivo de almacenamiento (trashing)