Modelos de Simulacion. Vensim. Dinamica de Sistemas. Modelos de Simulacion. Vensim. Dinamica de Sistemas. Modelos de Simulacion. Vensim. Dinamica de Sistemas. Vensim.

Boletín de Dinámica de Sistemas

Análisis del rendimiento de un Sistema Operativo

Basado en un modelo de simulación con Vensim

Rubén Alcón
ralcon@correo.umsa.bo

El sistema operativo es uno de los componentes más importantes de cualquier sistema de cómputo; la función que realiza el sistema operativo está orientada a facilitar la interacción del usuario con la máquina, tal que no tenga necesidad alguna de conocer características particulares del computador; esta tarea, es de vital importancia para el usuario, por lo que el sistema operativo debe ejecutarlo con eficiencia.

Cuando la cantidad de tareas despachadas por unidad de tiempo que ejecuta un sistema de computación es alto, decimos que el sistema tiene una buena performance o que “el sistema es rápido”; este resultado depende de muchos factores: la arquitectura del procesador, su velocidad, los tipos de procesos que debe ejecutar el sistema, las políticas de planificación del procesador, las políticas de gestión de la memoria, la prioridad de los procesos y otros factores. Debido a la cantidad de factores que inciden en el rendimiento o performance de los sistemas de cómputo, la medición de este parámetro es difícil. Existe una serie de técnicas que pueden aplicarse para obtener una medición del performance de un sistema; una de las técnicas que presenta mejores resultados, es la ofrecida por la ley de Ahmdal; ésta técnica basa su estrategia en la consideración de que los procesos están limitados por la cantidad de operaciones de entrada/salida que deben realizar y que ninguna otra estrategia hará posible mejorar el tiempo de retorno final del proceso.

Con fines de aplicar los conceptos de la dinámica de sistemas se propone un modelo que permita simular la performance de un sistema de computación. La construcción del modelo se ha hecho considerando los factores más importantes que inciden en la performance.

EL PROBLEMA. El problema consiste en establecer la performance de un Sistema Operativo en términos de ejecución de determinado tipo de aplicaciones.

Objetivos

Establecer la relación de los componentes de un sistema de computación determinantes en el rendimiento final. Caracterizar la respuesta y comportamiento del sistema Operativo como función de la carga de trabajo que soporta. Establecer políticas de explotación del sistema total que permitan mantener un nivel de performance conveniente.

1. Definición del Problema

El problema será resuelto considerando un determinado tipo de sistema informático, caracterizado principalmente por:
• Un sistema operativo multiusuario y caracterizado por determinados parámetros.
• Un computador con una arquitectura definida y caracterizada principalmente por: la forma de procesamiento de datos que realiza (secuencial, segmentada), la organización de las interfaces de entrada/salida, el nivel de traslape entre tareas orientadas a CPU y E/S, las características de gestión del procesador central, las características de gestión de la memoria, las características de gestión de la E/S y las características de gestión de la información. La información relativa a cada uno de estos aspectos se establecerá a partir de las medidas de eficiencia de las políticas de gestión de recursos del sistema operativo, la elaboración de tablas de respuesta en función de apreciaciones subjetivas.
• Un nivel de interacción usuario-máquina-aplicación –con parámetros predefinidos.
• Una mejora del sistema total en términos de un incremento del poder de procesamiento (más velocidad en el CPU y/o más procesadores).

Definiciones Niveles. Se consideran los siguientes:
Procesos Listos. Representa el conjunto de procesos que debe ejecutar el sistema operativo; este estado se alcanza cuando el sistema operativo determina la validez de los requerimientos del usuario y determina el conjunto de recursos requeridos exceptuando el CPU; es decir, en ese estado los procesos han sido identificados, tienen asignado una prioridad y pertenecen a una sesión.

Procesos en Ejecución. En este nivel se representa el/los proceso(s) que el procesador está ejecutando; esta tarea se realizará hasta que el procesos requiera realizar una operación de entreda/salida o hasta que el quanto de tiempo definido por el sistema termine; también puede presentarse una interrupción desde algún lugar del sistema o finalmente puede presentarse un error en el programa que se está ejecutando. En sistemas multiprocesadores, existe una complejidad adicional debido a la organización de los procesadores y de las características del procesamiento de datos (proceso simétrico o proceso asimétrico). En general, la ejecución de las órdenes de lo procesos se realiza de forma secuencial.

Procesos Bloqueados. Cuando los procesos abandonan el CPU –porque requiere realizar alguna operación de entrada/salida- o dejan de estar en estado de ejecución pasan a un estado en el que de manera similar a los procesos en ejecución deben realizar operaciones de gestión sobre algunos recursos del sistema (exceptuando al CPU); esta labor generalmente está apoyada por programas auxiliares del sistema operativo, especializados en tareas de entrada/salida.

Flujos. Se ha considerado los siguientes:
Procesos Terminados. Considera el conjunto de procesos terminados en el sistema y representa la cantidad de procesos que el sistema atiende en una fracción de tiempo. A partir de este dato es posible “predecir” si el sistema puede o no mantener este rendimiento cuando el número de procesos se incrementa.
Procesos Admitidos. Considera el conjunto de procesos admitidos que deben ser transportados en el sistema y adoptar un nuevo estado, el estado de listos.
Despacho. Es la función de asignación que se realiza en el sistema a fin de que los procesos se ejecuten; en otras palabras, es la labor de asignación del procesador a algún proceso listo. Petición de Entrada/Salida. Cuando un proceso requiere realizar una operación de entrada/salida entonces debe explícitamente declararlo a fin de el SO realice un cambio de proceso y de contexto que hará posible que otros procesos se adjudiquen el procesador.
Procesos con entrada/salida concluida. Cuando un proceso termina de ejecutar sus operaciones de entrada/salida, el SO debe nuevamente planificarlo o en algún caso cambiar su estado como proceso concluído.

Variables Auxiliares
Procesos zombies. Procesos que por alguna razón pierden el control de parte del SO y permanecen en el sistema provocando acciones inexplicables en el sistema. Esta variable definirá de forma aleatoria un conjunto de procesos zombies que estarán en un rango de 0-1.
Procesos con fallas. Procesos que presentan fallas/errores al realizar operaciones no válidas o al direccionar recursos del sistema con referencias equivocadas. La variable definirá un conjunto de procesos que presenten fallas; su número estará entre 0% - 0.1%
Frecuencia de Interrupciones. Los procesos generan interrupciones en el sistema para solicitar la atención del SO; estas interrupciones hacen que el SO realice diferentes acciones sobre los procesos, entre ellas, está la recuperación -despojo- del CPU cunado un procesos de mayor prioridad requiere realizar tareas de entrada/salida. La variable definirá un promedio de interrupciones durante un determinado rango de tiempo; además de los tiempos de ocurrencia.
Grado de Segmentación. Se refiere a la técnica de ejecución que aplica el procesador; esta variable definirá de forma constante determinada forma de procesamiento, v.gr. si el procesador aplica la segmentación entonces la variable determinará un menor tiempo de ejecución de los procesos; en caso de que no se aplique la técnica se supondrá un tiempo de ejecución mayor.
Factor de Selección. Variable a determinar un tipo de arquitectura de computador. As opciones que se tiene son: arquitectura RISC, CISC, SMP, ASMP, otros
Discriminación. Considerando que los procesos tienen diferentes prioridades y utilizan diferentes recursos del sistema, esta variable permitirá definir una función que establezca las cantidades de procesos denominados de baja prioridad y de alta prioridad a fin de aplicar alguna de las técnicas de asignación del procesador que existe.
Baja Prioridad. Son procesos bloqueados y que tienen baja prioridad, cuando concluyen la operación de entrada/salida deben alistarse nuevamente, por lo que se presenta una demora para alcanzar nuevamente el estatus de procesos listo.
Alta Prioridad Idem que el anterior excepto que son procesos de mayor importancia para el sistema operativo.
Tiempo Ejecución. Esta definido por un fragmento de tiempo medido en milisegundos u otra medida de tiempos de ejecución del computador. Este fragmento de tiempo generalmente se conoce como quanto de tiempo y determina el tiempo máximo que el procesador atenderá al proceso. Durante este lapso de tiempo, es posible que el proceso sea interrumpido, bloqueado o concluido.
Tipo Proceso. Los procesos pueden tener diferente orientación; en ese sentido pueden tener orientación a entrada/salida u orientación a cómputo. La variable definirá el tipo de orientación de los procesos que estarán en el sistema.
Tasa de Incremento. Variable que definirá la cantidad de procesos que llegan al sistema para ejecutarse. Tomaremos incrementos aleatorios a fin de tener una idea acerca de cómo varía el rendimiento del sistema cuando el número de procesos se incrementa.
Número de usuarios. Es una variable inicial que determinará el número de usuarios en el sistema y a partir de ello se considerará que cada uno de ellos –sus requerimientos- genera un determinado número de procesos que debe atender el sistema.
Política. Considerando que existe un conjunto de políticas de administración del procesador, con la variable se pretende elegir de una tabla determinada política en función del entorno de explotación del sistema.
Calificación. Definirá una tabla que asignará según la política elegida un valor de eficiencia respecto a otras técnicas y en función de ello se podrá simular los resultados de sistemas que aplican diferentes técnicas de administración del procesador.
Prioridad. Variable que pretende definir prioridad para los procesos.
CPU´s Disponibles. Dependiendo de la arquitectura del computador es posible que el mismo presente uno o más procesadores centrales (CPU´s) . La variable definirá un valor constante que represente el número de procesadores que podría tener el sistema.
Nivel de Multiproc. Variable que definirá un valor que represente el grado de multiprogramación presenta el sistema. Arquitectura CPU. Define la arquitectura que tiene el CPU del sistema. El valor se elegirá de um tabla previamente elaborada.

Para fines de la simulación del modelo se ha elaborado un diagrama de flujo con los niveles, los flujos y las variables. En principio se elaboró un modelo simple para determinar algunas referencias acerca del modelo “real” asociado al problema. En base a estas referencias se ha intentado construir un modelo más completo, tal que permita conseguir el objetivo: medir la performance de los sistemas informáticos. No se ha logrado simular el modelo debido a que falta definir las diferentes relaciones de datos que debe considerar para mostrar resultados representativos.

Considerando la complejidad de este modelo, se ha elaborado un diagrama causal que ayude a mejorar la comprensión del proceso de simulación. En base a las características de este diagrama se construyó el diagrama de flujo y se ha procedido ha establecer las relaciones que harán posible simular el modelo a fin de obtener algunos criterios acerca de las relaciones de elementos que hacen posible mejorar el performance de los sistemas operativos.

(*) Puede solicitar información más detallada de este trabajo al autor


Cursos Online


.

Google
Inicio     Información

Modelos de Simulacion. Vensim. Dinamica de Sistemas. Modelos de Simulacion. Vensim. Dinamica de Sistemas. Modelos de Simulacion. Vensim. Dinamica de Sistemas. Vensim.