Visita la versión flash
Propuestas
Visita el perfil del autor
Hablan del blog

SOM30


"Cómo hacer un Sistema Operativo en 30 días"
18/07/2010 19:21

Multitarea del Sistema

Comunicaciones de Red
En las últimas tres entradas veíamos como los diferentes módulos estarán ofreciendo al kérnel del Sistema Operativo los tres entornos para que las Soluciones Informáticas funcionen en el Sistema Informático. Cada uno de estos entornos están destinados a trabajar con procesos, programas y aplicaciones desarrolladas, respectivamente, a bajo nivel, medio nivel y alto nivel, con diferentes características ventajosas y sus correspondientes inconvenientes. Aunque los problemas inherentemente desaparecen cuando las Soluciones Informáticas se presentan en el Sistema Informático de forma independiente, al aparecer varias trabajando concurrentemente, aparecen grandes problemas que afectan de pleno a las políticas de estanqueidad y conectividad.

Viendo este panorama, toca abordar el tema "¿qué pasará cuando queremos usar dos Soluciones Informáticas a la vez?". La respuesta a esa pregunta es el concepto de multitarea.

Partiendo de la base de un Sistema Informático, éste siempre será monotarea. De todas formas, bajo un Sistema se podrán juntar varios Sistemas Informáticos reales mapeados en el Espacio de Direcciones a modo de controladores trabajando en paralelo, permitiendo una multitarea real. Este tipo conlleva un mayor coste debido a que se presentarán recursos reales replicados y, posiblemente, inutilizados. De todas formas, es posible obtener una multitarea virtual en cualquier Sistema garantizando las habituales políticas.

Como decía al comienzo, sobre nuestro Sistema Operativo van a aparecer tres tipos de entornos donde funcionarán los procesos, programas y aplicaciones. Teniendo en cuenta que las aplicaciones se tratarán como programas generados por el SAM, y los Sistemas Informáticos generados por el ViSi para la ejecución de procesos también son, en esencia, programas... todo queda reducido a controlar la concurrencia entre programas. Debido a que los propios módulos son programas, resulta un poco complicado teóricamente controlarlos. La salvedad está en el propio kérnel, que será el encargado de controlar la ejecución de todos los demás programas que se ejecuten sobre el Sistema Informático.

El mecanismo básico será dar una serie de ciclos a los programas en función de su prioridad. La prioridad se calculará en base a ciertos parámetros de la propia solución informática, aunque otros los determinará el propio kérnel, por ejemplo, teniendo en cuenta su procedencia o el estado general del Sistema. En caso de que la Solución Informática retorne el control al Sistema Operativo, se dará por finalizado su tiempo de ejecución en ese cuanto. Los programas podrán comunicarse con el Sistema Operativo a través de las llamadas al LiSi para solicitar cambios en la prioridad a través de desafíos que garanticen su veracidad. Igualmente, se podrán dormir o suspender en caso de que el Sistema Operativo, el propio proceso, programa o aplicación lo desee, o, incluso, una tercera Solución Informática lo indique supervisándolo siempre el Sistema Operativo.

En el caso general de los programas, es posible controlar el flujo de ejecución de los programas ya que el código máquina a ejecutar está formado por el juego de instrucciones propio de la arquitectura que habíamos seleccionado, y las instrucciones de salto pueden ser predictibles y, por lo tanto, saber hacia donde se dirigirá la ejecución del programa. Como los programas (salvo los módulos) siempre utilizan la LiSi para realizar los saltos, y debido a que el LiSi es parte del Sistema Operativo, siempre se garantiza que el propio Sistema Operativo va a recuperar el control del Sistema pasado el número de ciclos determinado para cada programas; igualmente, se puede calcular el número de ciclos que pasarán entre cada llamada a la función de salto del LiSi, y por lo tanto, permitir o no la ejecución de ese programas.

En el caso particular de los procesos, ejecutados sobre un Sistema Informático generalmente virtualizado (aunque como expliqué al comienzo podría tratarse de una máquina real mapeada en el Espacio de Direcciones, en cuyo caso no habría que preocuparse por la concurrencia), es más sencillo teóricamente de controlar debido a la naturaleza virtualizada del Sistema Informático que lo hace funcionar. De todas formas, los ciclos, al ser virtualizados y por lo tanto consumir más recursos (sobre todo tiempo, ya que un ciclo virtualizado corresponde con varios ciclos reales), suelen ser más reducidos que en el caso de los programas, que un ciclo corresponde a un ciclo real. De todas formas, los procesos sobre un SIM virtualizado tienen las máximas libertades en cuanto a utilización de los recursos (generalmente virtualizados) del Sistema Informático en donde se ejecute.

Por último, con las aplicaciones el tema de la concurrencia se ve altamente facilitado ya son ejecutados por el módulo SAM, el cual pertenece al Sistema Operativo. De todas formas, los programas generados a partir de las aplicaciones por el SAM no van a tener directamente restricciones en cuanto a número de ciclos que podrán usar el Sistema Informático, aunque sí estarán obligados a ceder la ejecución en cuanto otro programa o proceso lo precise de forma fundamentada. En ese caso, el Sistema Operativo ordenará al SAM pausar la ejecución de esa aplicación y ceder el control al kérnel para continuar la ejecución correspondiente.

Con este mecanismo será posible ejecutar de forma concurrente varias Solución Informática en un mismo Sistema Informático. Ahora toca irremediablemente conocer más a fondo las características propias de cada uno de los módulos del Sistema Operativo. Durante las próximas entradas, perfilaremos los Controles y Administradores que tendrán el Sistema Operativo y el Sistema de Aplicaciones respectivamente, y cómo convivirán esos recursos en el Sistema Informático.

Como ya sabéis, hoy es el último día de entradas de Julio; la próxima entrada será el primer lunes de Agosto.

Comentarios

30/07/2010 22:48
Claro que se podrá.
Tanto el Sistema Operativo, como todo lo necesario para que funcione estará a la disposición del público para que se pueda usar en cualquier plataforma, ver lo que hace, distribuirlo y modificarlo bajo los términos de la licencia LWS.

30/07/2010 20:27
Quisiera saber si cuando se termine se va a poder descargar gratuitamente¿?

Deja tu comentario


Se enviará usando la Red Social @visitante
¿Quieres responder con otra cuenta de TuEntidad.es?
Usa MonoMola o LoTienes.

Búsqueda

Calendario

- Día 1
- Día 2
- Día 3
- Día 4
- Día 5
- Día 6
- Día 7
- Día 8
- Día 9
- Día 10
- Día 11
- Día 12
- Día 13
- Día 14
- Día 15
- Día 16
- Día 17
- Día 18
- Día 19
- Día 20
- Día 21
- Día 22
- Día 23
- Día 24
- Día 25
- Día 26
- Día 27
- Día 28
- Día 29

Código

- Sistemas Informáticos
- Compilador
- GAM
- GAE
- Kérnel
- LiSi
- ViSi
- SAM
Licencia LSW

Comentan

- Día 1 (16) 8/06 02:28
- Día 29 (19) 13/03 04:10
- Día 10 (18) 23/01 22:16
- Día 3 (9) 10/12 08:55
- Día 2 (19) 10/12 08:54
- Día 7 (4) 5/11 21:29
- Día 11 (44) 25/10 01:39
- Día 4 (3) 24/09 13:45
- Día 28 (2) 6/04 04:01
- Día 26 (1) 17/07 01:21
- Día 27 (4) 29/05 14:50
- Día 8 (9) 29/05 05:35
- Día 24 (2) 18/01 05:16
- Día 17 (5) 18/01 05:10
- Día 13 (7) 6/12 18:44
- Día 15 (1) 30/08 08:53
- Día 6 (2) 25/08 02:14
- Día 5 (4) 7/04 00:50
- Día 21 (6) 26/06 21:26
- Día 18 (2) 26/06 03:09
- Día 23 (2) 22/04 13:45
- Día 25 (1) 11/03 21:34
- Día 19 (3) 19/01 17:33
- Día 14 (2) 7/01 22:06

Valid HTML 4.01 Transitional