Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo utilizar un sistema operativo en tiempo real de una computadora

Cómo utilizar un sistema operativo en tiempo real de una computadora

Cómo utilizar un sistema operativo en tiempo real

Una pequeña computadora multifunción equipada con un sistema operativo en tiempo real (RTOS) no solo puede mejorar la utilización del host y facilitar a los usuarios el uso del equipo, pero lo más importante es que tiene la capacidad de responder a las solicitudes de servicio del equipo controlado. Tiempo de respuesta rápido. Un sistema operativo donde varios usuarios usan una computadora al mismo tiempo

Varias personas pueden acceder a ella al mismo tiempo. Por ejemplo, en un sistema Linux, varias personas pueden iniciar sesión al mismo tiempo (inicio de sesión remoto). ). La computadora en la red debe ser la computadora del usuario en red. ¿Qué es el sistema operativo en tiempo real no preventivo? ¿Qué es un sistema operativo preventivo en tiempo real?

En pocas palabras, un sistema operativo típico sondea los intervalos de tiempo. En otras palabras, si un programa utiliza su intervalo de tiempo, debe detenerse y dejar que otros programas lo utilicen hasta que llegue el momento de que el programa lo haga. ejecutar nuevamente. Este método es un sistema operativo preventivo en el que el sistema determina la situación de interrupción. Por otro lado, el programa decide si salir, que es un sistema operativo no preventivo.

La operación en tiempo real es otro concepto, y Linux tradicional no es un sistema operativo en tiempo real. La definición separada de sistema operativo en tiempo real RTOS es la siguiente:

Un sistema operativo en tiempo real es un sistema que puede garantizar la finalización de funciones específicas dentro de un límite de tiempo determinado. Por ejemplo, se podría diseñar un sistema operativo para garantizar que un robot en una línea de producción pueda adquirir objetos. En un sistema operativo "duro" en tiempo real, si los cálculos para hacer que el objeto sea accesible no se completan dentro del tiempo permitido, el sistema operativo finalizará con un error. En un sistema operativo "suave" en tiempo real, la línea de producción continúa funcionando, pero debido a que no se puede llegar al producto dentro del tiempo permitido, la salida del producto se ralentiza, lo que hace que el robot no pueda producir durante un corto tiempo. período de tiempo. Algunos sistemas RTOS están diseñados para aplicaciones específicas, mientras que otros son de uso general. ¿Es Android Things un sistema operativo en tiempo real?

Según informes de medios extranjeros, Google lanzó la semana pasada el sistema operativo de Internet de las cosas, Android Things, que es una rama de Android desarrollada por Google para dispositivos de Internet de las cosas. . Combinado con el protocolo de comunicación de dispositivos IoT de Google, Weave, Android Things desempeñará un papel importante en la estrategia de IoT de Google. Android Things es el último sistema lanzado por Google para el mercado de dispositivos de Internet de las cosas, lo que intensifica aún más la competencia en el mercado de Internet de las cosas. Actualmente, Microsoft está promocionando su sistema Windows 10 IoT entre entusiastas y fabricantes de equipos originales (OEM). ¿Qué es un sistema operativo en tiempo real?

Sistema operativo en tiempo real, es decir, RTOS (Real Time Operating System). UNIX es un sistema de tiempo compartido y los temporizadores tienen la máxima prioridad

. Los sistemas basados ​​en UNIX (como Lynx,

OS-9 y otros) permiten ajustar la prioridad de las interrupciones para garantizar que el sistema no responda a eventos externos durante más de

un intervalo específico. Si un sistema operativo puede ser no destructivo y

responsivo, se puede utilizar para diversos fines de control.

La multiplexación es necesaria para fines de control, mientras que varios usuarios a menudo no son necesarios

, especialmente en aplicaciones integradas. Por lo tanto, puede eliminar las funciones de la parte multiusuario de

UNIX y descartar algunas funciones innecesarias según las características de

aplicaciones integradas para adaptarse a las aplicaciones integradas

Wanfang Data

Las características de Learning Garden 327

requieren que las aplicaciones integradas ocupen una pequeña cantidad de memoria, que se multiplexa integrada en tiempo real

. Este es el sistema operativo multiplexado integrado en tiempo real. Aquí la palabra "correr" ha perdido su significado original

.

Las herramientas de desarrollo RTOS permiten a los usuarios personalizar el núcleo de RTOS para adaptarlo a diferentes aplicaciones

y proporcionar un entorno de depuración para las aplicaciones.

En teoría, tanto UNIX como RTOS basados ​​en ideas de UNIX contienen la esencia de la teoría del software informático

.

En la práctica, han demostrado ser completamente exitosos en numerosas aplicaciones.

Un sistema en tiempo real es un sistema informático que realiza sus funciones dentro de un tiempo determinado y responde a eventos asincrónicos externos. La corrección de sus operaciones

no sólo depende de la corrección del diseño lógico, sino también del momento en que se realizan dichas operaciones. Dentro de un tiempo específico" es el núcleo de esta definición. Es decir, los sistemas en tiempo real tienen requisitos estrictos de tiempo de respuesta. Por ejemplo, un sistema de reproducción de video lee datos altamente comprimidos de un CD-ROM, luego los descomprime y los transfiere a Display. dispositivo

. La descompresión debe completarse en un tiempo muy corto (milisegundos); de lo contrario, la imagen aparecerá discontinua. Suponga que el tiempo de permanencia de cada cuadro del video es de 30 milisegundos, luego el sistema debe leer. el siguiente fotograma del disco y la descompresión completa dentro de este tiempo es el límite de tiempo, y cada fotograma se procesa en 30 milisegundos. Todos son en tiempo real y procesar un fotograma durante más de 30 milisegundos no es un buen momento. limit

El límite de tiempo de procesamiento de cada proceso es de 30 milisegundos, que es en tiempo real

Uno de cada 10.000 procesos no es bueno si su tiempo de procesamiento supera los 30 milisegundos. /p>

El rendimiento en tiempo real del sistema no significa que sea en tiempo real. Debido a que su respuesta y velocidad de procesamiento son muy rápidas, un sistema de alta velocidad no es necesariamente un sistema en tiempo real.

Un sistema específico en tiempo real tiene requisitos de tiempo (o velocidad) específicos

, y estos requisitos varían según el sistema, los sistemas de detección de partículas de alta energía requieren una detección en microsegundos o nanosegundos

, mientras que los sistemas de consulta de bases de datos en tiempo real requieren filtrado a los pocos segundos de la entrada del usuario. Se pueden obtener resultados

Por lo tanto, al comienzo del diseño de un sistema en tiempo real, debe quedar claro si el sistema en tiempo real. Los requisitos de tiempo del sistema objetivo son segundos, milisegundos o microsegundos para evitar una persecución ciega

Alta velocidad, lo que genera desperdicio

Los sistemas en tiempo real generalmente se dividen en sistemas en tiempo real estricto. y sistemas blandos en tiempo real El primero significa que se deben cumplir restricciones de tiempo, mientras que el segundo significa que ocasionalmente se excede el límite de tiempo

Un sistema operativo en tiempo real es una computadora. -sistema basado en que puede gestionar los recursos del hardware de la computadora y proporcionar comandos hombre-máquina o interfaces de programación dentro de un tiempo fijo. Responder adecuadamente a una o más señales de los periféricos.

Diferente del funcionamiento ordinario (de tiempo compartido). sistemas, los sistemas operativos en tiempo real

enfatizan el tiempo de respuesta del sistema a eventos asincrónicos externos, que

se está acercando al concepto de diseño de sistemas integrados

Otra diferencia importante entre los sistemas en tiempo real y los sistemas de tiempo compartido

es su programación. Los métodos de las tareas son diferentes

Los algoritmos comunes de programación de tiempo compartido incluyen la programación de rotación de intervalos de tiempo. , programación prioritaria, cola múltiple, el trabajo más corto primero, algoritmo de programación garantizado y lotería

Estos algoritmos de programación no se describirán en detalle aquí

Hay tres tipos principales. algoritmos de programación en tiempo real, el más clásico de los cuales es el algoritmo monotónico de tasa de generación de eventos (Liu y Layland, 1993). Este algoritmo asigna una prioridad a cada tarea. La prioridad es proporcional a la frecuencia de los eventos. El programador siempre programa la tarea lista con la prioridad más alta y priva a la tarea actual de los derechos de uso de la CPU cuando sea necesario, para que se puedan ejecutar las tareas con mayor prioridad. primero. Se ha demostrado que este algoritmo es óptimo y es el método de programación utilizado por la mayoría de los kernels en tiempo real.

Otro algoritmo popular de programación en tiempo real es el algoritmo de primera fecha límite más temprana.

Cuando ocurre un evento, la tarea correspondiente se agrega a la cola lista, que se ordena por fecha límite, teniendo la tarea con la fecha límite más corta la mayor prioridad. Para eventos recurrentes, la fecha límite es la próxima vez que ocurra el evento

.

El tercer algoritmo calcula primero la laxitud de cada tarea, llamada laxitud. Si una tarea tarda 200 milisegundos en realizarse y debe completarse en 250 milisegundos, entonces la indulgencia es de 50 milisegundos. Este algoritmo se denomina método de laxitud mínima y selecciona la tarea con la laxitud más pequeña.

Aunque cualquiera de estos tres algoritmos puede usarse para convertir un sistema de tiempo compartido

en un sistema de tiempo real, en aplicaciones prácticas, debido al primero

El tiempo de cambio de tarea es demasiado largo y el rendimiento en tiempo real es relativamente bajo, por lo que los sistemas en tiempo real

generalmente se utilizan en sistemas dedicados en tiempo real. Las principales características de estos sistemas operativos en tiempo real

son:

. Tamaño pequeño,

tiempo de enmascaramiento de interrupción corto

tiempo de procesamiento de interrupción corto

velocidad de cambio de tarea rápida.

Los sistemas operativos en tiempo real comunes incluyen VxWorks, VRTX/OS,

pSOS, RTMX, OS/9 y Lynx OS, etc.

Cómo definir un sistema operativo en tiempo real

POSIX 1003.b define un sistema en tiempo real como un sistema que es capaz de proporcionar un nivel de servicio requerido dentro de una respuesta limitada tiempo. Una definición más ampliamente aceptada propuesta por Donald Gillies es que un sistema en tiempo real es aquel en el que la exactitud de un cálculo depende no sólo de la corrección lógica del programa sino también del tiempo que lleva producir el resultado. No se cumplen las restricciones del sistema. Si se cumplen, se producirá un error del sistema.

Según los diferentes requisitos de rendimiento en tiempo real, los sistemas en tiempo real se pueden dividir en sistemas blandos en tiempo real y sistemas duros en tiempo real. Un sistema estricto en tiempo real significa que el sistema debe tener un tiempo de servicio garantizado en el peor de los casos, es decir, el límite de tiempo de respuesta para eventos debe cumplirse pase lo que pase. Por ejemplo, el control de naves espaciales en el sector aeroespacial es en realidad un sistema de este tipo. Todos los demás sistemas con características de tiempo real pueden denominarse sistemas blandos en tiempo real. Para decirlo sin rodeos, un sistema suave en tiempo real significa que, estadísticamente hablando, las tareas (en la siguiente discusión, no distinguiremos entre tareas y programas) se pueden procesar dentro de un tiempo garantizado, y los eventos que llegan al sistema se pueden procesar antes. Los sistemas en los que el incumplimiento de los plazos no provocan errores fatales, como los sistemas multimedia en tiempo real, son un tipo de sistema blando en tiempo real.

Para que un sistema informático proporcione soporte en tiempo real, su sistema operativo debe programar y gestionar eficientemente la CPU y otros recursos. En un sistema multiplexado en tiempo real, la programación y gestión de recursos es más compleja

Conéctese a Internet para descargar un temporizador, un recordatorio en tiempo real, OK, permite que varios usuarios usen la computadora al mismo tiempo; Al mismo tiempo. El sistema se llama

El sistema operativo B es una parte importante del uso que hace el usuario de la computadora.

El sistema operativo es un sistema operativo integrado en tiempo real de software que es necesario para que los usuarios utilicen las computadoras

Sistema operativo integrado en tiempo real análisis ucos ii 06 de enero de 2010, miércoles 01 :15 Resumen de la mañana: La integración de sistemas operativos en sistemas de microcontroladores se ha convertido en un tema de creciente interés en los últimos años. Este artículo analiza el sistema operativo embebido en tiempo real ucos ii cuyo código original se divulga, y toma como ejemplo el microcontrolador serie 51 para explicar las ventajas y desventajas de utilizar este sistema operativo embebido en el microcontrolador, así como algunas cuestiones que deberían prestar atención en la aplicación.

Palabras clave: sistema operativo en tiempo real; UCOS II; microcontrolador

Introducción

Ya en la década de 1960, algunas personas comenzaron a investigar y desarrollar sistemas operativos integrados. .

Sin embargo, sólo recientemente se ha mencionado cada vez más en China. Su posición cada vez más importante en las comunicaciones, la electrónica, la automatización y otros campos que requieren procesamiento en tiempo real también ha atraído cada vez más atención. Sin embargo, la gente tiende a hablar de algunos núcleos comerciales conocidos, como VxWorks, PSOS, etc. Estos núcleos comerciales ofrecen un rendimiento superior pero son caros y se utilizan principalmente en procesadores de 16 y 32 bits. Para los microcontroladores de 8 bits de la serie 51 utilizados por la mayoría de los usuarios domésticos, puede elegir el software gratuito ucos ii.

Características de ucos ii

1. ucos ii es un núcleo abierto escrito por el Sr. Labrosse. Su característica principal es el código fuente abierto. La característica más importante de ucos ii es su código fuente abierto. Esta es una bendición a medias para los usuarios. La ventaja es que es gratuito y los usuarios pueden modificarlo según sus necesidades. La desventaja es que carece del soporte necesario para paquetes de software potentes y los usuarios a menudo necesitan escribir sus propios controladores, especialmente cuando usan microcontroladores menos comunes, y aún más necesitan escribir sus propios programas de portabilidad.

2. UCOS II es un kernel preventivo, lo que significa que una tarea de alta prioridad lista puede privar del uso de la CPU a una tarea de baja prioridad en ejecución. Esta característica lo hace más en tiempo real que los núcleos no interrumpibles. Por lo general, pondremos las tareas de alta prioridad en el estado listo (como enviar una señal) en la rutina del servicio de interrupción, de modo que después de salir de la rutina del servicio de interrupción, se realizará el cambio de tarea y se ejecutará la tarea de alta prioridad. Tomando el microcontrolador 51 como ejemplo, los beneficios de esto se pueden ver mediante comparación. Si es necesario recopilar y procesar un lote de datos a través de interrupciones, en los métodos de programación tradicionales, el procesamiento de datos complejos no se puede realizar en la rutina del servicio de interrupciones porque esto prolongará demasiado el tiempo de apagado de la interrupción. Por lo tanto, el método habitual es establecer el bit de bandera y salir de la interrupción. Dado que el programa principal regresa en un bucle, siempre tiene la posibilidad de detectar este indicador e ingresar al programa de procesamiento de datos. Sin embargo, dado que es imposible determinar dónde se ejecutó el programa cuando ocurrió la interrupción, ni cuánto tiempo lleva completar el programa de procesamiento de datos, no se puede determinar el tiempo de respuesta a la interrupción y el rendimiento en tiempo real del sistema es no fuerte. Si se utiliza μC/OS-II, el controlador de datos se ejecuta inmediatamente después de que finaliza la interrupción estableciendo su prioridad más alta y colocándolo en el estado listo en la rutina del servicio de interrupción. De esta manera, el tiempo de respuesta a la interrupción se puede limitar dentro de un rango determinado. Esto es fundamental para sistemas que tienen requisitos estrictos sobre el tiempo de respuesta a interrupciones. Sin embargo, cabe señalar que este método puede no ser adecuado si el programa de procesamiento de datos es relativamente simple. Debido a que ucos ii necesita usar la función OSINTEXIT al final de la rutina del servicio de interrupción para determinar si se realiza el cambio de tarea, esto lleva una cierta cantidad de tiempo.

3. Ucos ii es un sistema operativo en tiempo real basado en prioridades, y la prioridad de cada tarea debe ser diferente. Al analizar su código fuente, encontrará que ucos ii usa la prioridad de la tarea como identidad de la tarea. Si las prioridades son las mismas, las tareas no se distinguirán. Las tareas serán indistinguibles si el orden de prioridad es el mismo. La tarea de mayor prioridad que ingresa al estado listo obtiene el derecho a usar la CPU primero, y solo después de que cede el derecho a usar la CPU se pueden ejecutar otras tareas. Por lo tanto, sólo se le puede llamar multiplexor, no multiprograma, al menos no el tipo de multiprograma que conocemos. Obviamente, si solo considera el rendimiento en tiempo real, definitivamente es mejor que el sistema de tiempo compartido. El sistema de tiempo compartido puede garantizar que las tareas importantes siempre utilicen la CPU primero, pero en el sistema, después de todo, las tareas importantes son limitadas. lo que hace que cómo priorizar otras tareas sea un problema. Una pregunta desconcertante. Además, es más beneficioso para el usuario realizar algunas tareas de forma alternada. Por ejemplo, cuando se utiliza un microcontrolador para controlar dos pantallas pequeñas, tanto el programador como el usuario quieren que funcionen simultáneamente, en lugar de mostrar información de una pantalla primero y luego de la otra. En este caso, el soporte de ucos ii para prioridad y rotación de intervalos de tiempo sería más apropiado.

4. Ucos ii proporciona un mecanismo de protección para recursos habilitados para ****. Como se mencionó anteriormente, ucos ii es un sistema operativo multitarea. Un programa completo se puede dividir en múltiples tareas y diferentes tareas realizan diferentes funciones. De esta forma, las tareas equivalen a submódulos en un diseño modular. Al agregar un nuevo código a la tarea, siempre que no sea un recurso exclusivo de ****, no tiene que preocuparse por el impacto mutuo. Para recursos accesibles, como puertos serie, ucos ii también proporciona una buena solución. En general, utilice el método del volumen de la señal. En pocas palabras, se crea e inicializa un volumen de señal. Cuando una tarea necesita utilizar un recurso del que disfruta ****, primero debe solicitar el volumen de la señal. Una vez que obtiene el volumen de la señal, liberará el volumen de la señal solo cuando haya terminado de usar el recurso. Durante este proceso, incluso si la tarea de mayor prioridad entra en el estado listo, no puede utilizar el recurso porque no puede obtener el semáforo. Los beneficios de esta característica son obvios, por ejemplo, si se genera una interrupción externa mientras la pantalla muestra información y la pantalla necesita mostrar otra información durante la rutina del servicio de interrupción. Por ejemplo, si se genera una interrupción externa mientras la pantalla muestra información y se requiere que la pantalla muestre otra información en la rutina del servicio de interrupción, la información original puede destruirse al salir de la rutina del servicio de interrupción. En μC/OS-II, este fenómeno se evita utilizando el método del semáforo, que permite que la pantalla muestre nueva información solo después de haber terminado de mostrar la información original. Sin embargo, este enfoque se produce a expensas del rendimiento en tiempo real del sistema. Si mostrar la información original lleva mucho tiempo, el sistema debe esperar. Por tanto, el tiempo de respuesta a la interrupción se ampliará, lo que sin duda es fatal si la información que no se muestra es información de alarma. Cuando esto sucede, se llama inversión de prioridad en μC/OS-II, donde la tarea de mayor prioridad debe esperar a que se complete la tarea de menor prioridad. En la situación anterior, la inversión de prioridad entre las dos tareas es inevitable. Por lo tanto, al utilizar UCOS II, primero debe comprender el sistema que está desarrollando antes de decidir si utilizará semáforos para un recurso específico que disfruta.

Algunas características de ucos ii para microcontroladores

1. Integrar ucos ii en un sistema de microcontrolador mejora la confiabilidad del sistema y facilita la depuración. En el pasado, el trabajo de desarrollo de microcontroladores tradicionales a menudo encontraba situaciones en las que el programa se escapaba o caía en un bucle infinito. Aunque se puede utilizar un perro guardián para resolver problemas con la ejecución del programa, en el último caso, especialmente cuando se trata de cálculos matemáticos complejos, la única forma de analizar el programa es establecer puntos de interrupción, lo que lleva mucho tiempo. Las cosas son mucho más sencillas si ucos ii está integrado en el sistema. El programa se puede dividir en muchas tareas, cada tarea es relativamente independiente y luego se establece una función de tiempo de espera en cada tarea. Cuando se acaba el tiempo, la tarea debe ceder el derecho a usar la CPU. Incluso si hay un problema con una tarea, no afectará la ejecución de otras tareas. Esto no sólo mejora la confiabilidad del sistema, sino que también facilita la depuración del programa.

2. Integrar ucos ii en un sistema de microcontrolador aumentará la sobrecarga del sistema. Los 51 microcontroladores actuales, generalmente denominados 87C51 o 89C51, tienen una cierta cantidad de RAM y ROM en el chip. Para algunos programas simples, si utiliza métodos de programación tradicionales, no es necesario ampliar la memoria externa. Si integra ucos ii en un programa, si solo necesita servicios de programación de tareas, cambio de tareas, manejo de semáforos, retraso o tiempo de espera, no se necesita ROM externa, pero sí RAM externa. Dado que ucos ii es un sistema operativo extensible, la cantidad de RAM necesaria depende de la funcionalidad del sistema operativo. Por ejemplo, μC/OS-II permite al usuario definir el número máximo de tareas. Cuando se crea cada tarea, se genera una estructura de datos TCB correspondiente, que ocupará una gran parte del espacio de memoria. Por tanto, a la hora de definir el número máximo de tareas, se deben considerar las necesidades de la situación real. Si es demasiado grande, provocará un desperdicio innecesario.

Después de incorporar ucos ii, el requisito total de RAM se puede obtener mediante la siguiente expresión:

Requisito total de RAM = Requisito de RAM de la aplicación Requisito de RAM del área de datos central (Requisito de pila de tareas Requisito máximo de pila anidada de interrupción) - Número de tareas

Afortunadamente, μC/OS-II puede definir de forma independiente el tamaño del espacio de pila de cada tarea, y los desarrolladores pueden asignar espacio de pila en función de las necesidades reales de la tarea. Sin embargo, con una capacidad de RAM limitada, aún debe tener cuidado con el uso de matrices, estructuras de datos y funciones grandes, y no olvide que los parámetros formales de las funciones también se insertan en la pila.

3. El trasplante de ucos ii también es una tarea destacable. Si no existe un programa de portabilidad listo para usar, debe escribir su propio código de portabilidad. Aunque sólo es necesario modificar dos archivos, aún es necesario estar familiarizado con el microprocesador correspondiente y es mejor consultar ejemplos de portabilidad existentes. Además, incluso si hay ejemplos de portabilidad, es mejor leerlos antes de programar porque implican operaciones de apilamiento. Al escribir una rutina de servicio de interrupción, el orden en que los registros se insertan en la pila debe ser coherente con el orden en el código transferido.

4. A diferencia de otros sistemas operativos integrados conocidos, el proceso de inicio de ucos ii en un sistema con microcontrolador es relativamente simple, a diferencia de algunos sistemas operativos que requieren que el kernel se compile en un archivo de imagen y se escriba. en la ROM, luego cargue el archivo de la ROM a la RAM después de sobrescribir el encendido y luego ejecute la aplicación. El kernel de ucos ii se compila junto con la aplicación en un único archivo. El usuario simplemente convierte el archivo al formato HEX y lo escribe en la ROM, luego aplica energía y se ejecutará como un programa de microcontrolador normal.

Conclusión

Como se puede ver en la introducción anterior, ucos ii tiene las ventajas de ser gratuito, fácil de usar, alta confiabilidad y buen rendimiento en tiempo real, pero también tiene dificultades en el trasplante y carece del soporte técnico necesario y otras deficiencias, especialmente no tan ampliamente utilizados y continuamente investigados y actualizados como los sistemas integrados comerciales. Sin embargo, la apertura permite a los desarrolladores personalizar y agregar la funcionalidad que necesitan, lo que lo hace único en muchas áreas de aplicaciones. Por supuesto, la incorporación de ucos ii en un sistema de microcontrolador debería depender del desarrollo del proyecto. Para algunos proyectos simples y de bajo costo, no es necesario utilizar un sistema operativo integrado.