-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #117 from alexiarstein/nuevo-post-de-alexia
nuevo post de Alexia para Sysarmy Blog
- Loading branch information
Showing
2 changed files
with
50 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
--- | ||
Title: ¿Por qué el lenguaje de programación C es relevante en el 2024? ... Y lo seguirá siendo. | ||
Description: "Explicando la relevancia de los lenguajes de bajo nivel en el mundo actual" | ||
Keywords: | ||
- programación | ||
- lenguajes | ||
- sistemas | ||
- C | ||
|
||
Tags: | ||
- lenguajes | ||
- programacion | ||
- desarrollo | ||
|
||
Thumbnail: assets/ale-ecu.jpg | ||
socialImage: assets/ale-ecu.jpg | ||
featuredImage: assets/ale-ecu.jpg | ||
|
||
Topics: | ||
- desarrollo | ||
- historia | ||
- sistemas | ||
- programacion | ||
|
||
markup: markdown | ||
date: 2024-02-06 | ||
draft: false | ||
--- | ||
|
||
La ECU (Engine Control Unit) de un vehículo es una computadora que no corre ni Linux, ni Unix, ni Windows, ni nada semejante. Corre un sistema operativo que funciona en tiempo real y se los conoce como RTOS, por sus siglas en inglés --Real Time Operating System. | ||
Entre sus funciones principales se encuentran el despliegue de los Airbags ante un escenario de choque, la aceleración y la optimización de la combustión, es decir, cantidades precisas de oxígeno y combustible dentro de la cámara de combustión en el momento justo de la compresión y la chispa de la bujía. Pero la parte que nos interesa de la ECU para este post, es la del despliegue de los airbags ante un escenario de choque. | ||
¿Por qué? Porque una ECU, por sí sola, no puede darse cuenta si el vehículo está chocando, frenando de golpe, o transitando sobre una calle de tierra con pozos o de adoquín que zarandea el auto para todos lados. | ||
Su manera de detectar frente a qué escenario se está enfrentando el vehículo es a través de un sensor inercial que indica aceleración y rotación sobre los tres ejes tridimensionales, miles de veces por segundo. | ||
|
||
Cuando la suma vectorial de las tres aceleraciones supera un determinado umbral, la ECU asume que el vehículo está chocando y no transitando, como conté anteriormente, sobre un terreno dificultoso, y es allí donde dispara los scripts | ||
de seguridad que despliegan los airbags. | ||
|
||
Si se preguntan que tiene que ver la ECU con el título de este artículo, paso a explicarles: | ||
|
||
Decidí tomar la ECU como ejemplo porque cuando un vehículo se encuentra frente a un escenario de choque, los scripts de seguridad deben ejecutarse, no sólamente en tiempo récord, sinó que también en un tiempo absolutamente "_predecible_". | ||
Una mínima latencia puede ocasionar que el despliegue de los airbags suceda, o antes del impacto, lastimando al conductor al momento del choque real, o después del impacto, y el conductor o la conductora de todos modos se parte el marote contra el volante. | ||
|
||
El lenguaje de programación C es un lenguaje que llega directo al corazón en 1 milisegundo. Eso es lo que tarda en llegar al hardware. Esa latencia es la interrupción del kernel. Y lo más maravilloso de todo es que ha sido así en 1970 y es así en el 2024. | ||
Todo el código sigue con absoluta precisión al reloj del procesador. Es decir, la única latencia es la producida por el cristal de cuarzo. | ||
|
||
Ahora si medimos la latencia en algún lenguaje de más alto nivel, como Python, por ejemplo, que no es mala, es desafortunadamente "_variable_". | ||
|
||
Es por eso que, tanto para una ECU, como para cualquier otro tipo de hardware crítico, como los que se utilizan a menudo en la industria aeroespacial, tanto C como C++ seguirán siendo los lenguajes predilectos para estas tareas. | ||
|
||
* Por [Alexia Rivera Steinberg](https://twitter.com/alexiarsteinn) para Sysarmy. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.