Use of Extended Adaptive Decision Tables on Reconfigurable

Anuncio
IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 7, OCTOBER 2014
1325
Use of Extended Adaptive Decision Tables on
Reconfigurable Operating Systems
S. M. Martin, G. E. De Luca, and N. B. Casas
1
Abstract— Throughout the last decades, many reconfigurable
operating systems have been developed in order to let users and
programmers make decisions upon the configuration of some of
the innermost kernel’s aspects. These decisions, however, require
an advanced level of skill in order to obtain some performance
advantage. Furthermore, they can be detrimental to the system’s
performance if they are not careful taken. Letting the kernel itself
do the decision-making upon the implementation of its aspects is a
safe and powerful way to manage re-configurability that does not
require interaction with the user nor the need of advanced skills to
take advantage of. In this article, we propose the usage of Extended
Adaptive Decision Tables as a mean for the kernel to achieve the
capability of taking intelligent decisions based solely on the users’
process creation behavior.
Keywords— Decision Tables, Operating Systems, Adaptive
Device
L
I. INTRODUCCIÓN
OS SISTEMAS operativos han sido desarrollados y
utilizados por décadas para abstraer tanto a los usuarios
finales como a los programadores de aplicaciones de la
complejidad del hardware subyacente. A través de ellos, la
computadora y sus componentes pueden ser vistos como
recursos administrables que los usuarios y sus aplicaciones
pueden solicitar y utilizar. La lista de recursos administrados
por un sistema operativo incluye, pero no se limita a: uso del
procesador, distribución de la memoria, permisos para
entrada/salida, y operaciones en dispositivos físicos o
virtuales, entre otros.
Los primeros sistemas operativos comerciales, como MSDOS, sólo permitían la ejecución de un único proceso en
simultáneo. Por esa razón, las funciones de su kernel estaban
limitadas solamente a inicializar, proveer una línea de
comandos, y algunos servicios básicos. Al ejecutar un
proceso, éste toma el control completo del procesador, la
memoria y los dispositivos, mientras que el kernel no tiene
ninguna responsabilidad administrativa sobre ellos.
Con el desarrollo de sistemas operativos tipo UNIX más
avanzados que permitían la ejecución de más de un proceso al
mismo tiempo y el uso simultáneo de varios usuarios,
surgieron nuevos desafíos. El problema de qué procesos o
usuarios debían tener mayor uso de procesador, o contar
1
S. M. Martin, Departamento de Ingeniería e Investigaciones Tecnológicas,
Universidad Nacional de La Matanza. Buenos Aires, Argentina,
[email protected]
G. E. De Luca, Departamento de Ingeniería e Investigaciones
Tecnológicas, Universidad Nacional de La Matanza. Buenos Aires, Argentina,
[email protected]
N. B. Casas, Departamento de Ingeniería e Investigaciones Tecnológicas,
Universidad Nacional de La Matanza. Buenos Aires, Argentina,
[email protected]
segmentos más grandes de memoria fue abordado de manera
diferente por los distintos desarrolladores de sistemas
operativos. Hoy en día, la diversidad de posibilidades para la
administración de recursos entre diferentes sistemas
operativos provee a los usuarios y empresas con una gama de
productos específicos para cada necesidad de administración.
La mayoría de los sistemas operativos de acceso público no
son reconfigurables. Esto significa que sus políticas
administración de los recursos están predefinidas y no pueden
ser cambiadas por los usuarios.
Utilizaremos la nomenclatura utilizada en nuestro trabajo
previo [1] en el que el uso del procesador, la administración de
la memoria, y el manejo de otros recursos son llamados
aspectos del sistema operativo. Cada uno de estos aspectos
puede ser administrador utilizando una política o modo. Un
sistema operativo es llamado reconfigurable cuando uno o
más de sus aspectos pueden cambiar de modo en tiempo de
ejecución, sin necesidad de reiniciar.
A pesar de que casi todos los requerimientos para sistemas
operativos comerciales y hogareños pueden ser satisfechos
con kernels convencionales (no reconfigurables), existen
beneficios potenciales para la capacidad adaptativa de un
kernel reconfigurable.
Algunos ejemplos de sistemas operativos reconfigurables,
como Kea [2] y Synthetix [3], han mostrado mejores
resultados que sus contrapartes comerciales en pruebas
conducidas sobre condiciones de ejecución y comportamiento
de procesos cambiantes. Otros, como SPIN [4], proveen una
interfaz de extensión para que el mismo programador pueda
desarrollar nuevos modos para los aspectos del kernel.
Todos los sistemas operativos reconfigurables disponibles
– listos para usar, sólo en código fuente, o sólo en bibliografía
académica – dependen de que el usuario/programador decida
tanto qué cambios realizarle a la configuración del kernel,
como cuándo hacer esos cambios. En la mayoría de los casos,
esto es logrado mediante el uso de una interfaz kernel-proceso
basada en un modelo de objetos [5] que presenta la
funcionalidad de un cierto aspecto, y permite al programador
definir qué instancia de una clase llega a ejecutarlo.
A pesar de la gran flexibilidad y potencial adaptativo que
puede ser obtenido por el método de interfaces, sus
limitaciones pueden ser frecuentemente suficientes para evitar
que usuarios, programadores, o incluso diseñadores de
sistemas operativos la usen.
Por un lado, le tomaría a un programador conocer al menos
algo sobre la implementación del kernel para poder obtener
alguna ventaja. Algunos programadores deberían incluso
investigar sobre el kernel previamente para saber qué aspectos
cambiar y cuándo cambiarlos.
Por otro lado, programas legados, estándar, o reutilizados
no tendrían la oportunidad de aprovechar sus beneficios. Ellos
podrían necesitar un proceso de reingeniería antes de que
puedan ser capaces de utilizar las interfaces de
reconfiguración adecuadamente. Los usuarios finales con
programas propios no podrían ni siquiera tener una
oportunidad de utilizar el potencial subyacente del kernel
reconfigurable.
En este artículo presentamos un punto de vista diferente
para permitir la reconfiguración de un kernel. En este enfoque,
la responsabilidad de decidir qué cambios realizar en la
configuración de los aspectos del kernel cambiar recae sobre
el sistema operativo, y no sobre los usuarios/programadores.
Las tres razones principales para soportar esta idea son:
Primero, los desarrolladores del kernel ya cuentan con
todas las habilidades y conocimiento de las complejidades de
sus aspectos y modos. Ellos pueden diseñar mejores
mecanismos para el cambio de modos de tal manera que no se
requiera un conocimiento específico de parte de los usuarios y
programadores.
Segundo, todas las aplicaciones pueden ser ejecutadas de
manera agnóstica de la capacidad reconfigurable del kernel, y
aun así aprovechar sus beneficios.
Por último, el kernel puede tomar decisiones tomando en
cuenta indicadores más complejos de los que un programador
podría tener en cuenta. Algunos de ellos serían incluso
inaccesibles para los procesos en tiempo de ejecución, y otros
podrían ser muy complejos o específicos para que el
programador los considere.
En este trabajo utilizamos Tablas de Decisión Adaptativas
Extendidas – de aquí en adelante abreviadas como EADTs –
como un dispositivo que nos permitirá a nosotros, como
diseñadores de sistemas operativos, otorgarle al kernel un
mecanismo para la toma de decisiones basadas en el
comportamiento de sus usuarios.
Todo el análisis y ejemplos presentados en este artículo
fueron conducidos sobre SODIUM (Sistema Operativo del
Departamento de Ingeniería de la Universidad Nacional de La Matanza. El
proyecto SODIUM comenzó en 2005 con el objetivo de permitirle a los
alumnos de sistemas operativos tener la oportunidad, no sólo de entender los
conceptos teóricos, pero también de involucrarse activamente en el desarrollo
de un kernel. Al final de cada año, todas las prácticas son evaluadas, y los
mejores trabajos son integrados al kernel para que los alumnos del siguiente
semestre lo utilice. Web: http://www.so-unlam.com.ar/), un proyecto para
un sistema operativo reconfigurable académico [6] [7] y, más
específicamente, su aspecto reconfigurable de planificación de
procesos.
El resto de este artículo se organiza de la siguiente manera: la
sección II introduce el aspecto reconfigurable de planificación
de procesos de SODIUM. En la sección III, dicho aspecto es
analizado para obtener un criterio de toma de decisiones
necesario para construir la tabla de decisión inicial que será
presentada en la sección IV. En la sección V se explica qué
elementos adaptativos fueron utilizados para obtener una tabla
de decisión adaptativa, En la sección VI, analizamos el
mecanismo extendido que permite definir múltiples criterios
para la toma de decisiones para generar la tabla de decisión
adaptativa extendida final. En la sección VII indicamos las
IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 7, OCTOBER 2014
pruebas realizadas y los resultados obtenidos con el método
presentado. Finalmente, en la sección 7 se discuten trabajos
futuros y las conclusiones de nuestra investigación.
II. PLANIFICADOR DE PROCESOS RECONFIGURABLE SODIUM
A pesar de que este artículo presenta una propuesta general
para la toma de decisiones sobre reconfigurabilidad de un
kernel utilizando EADTs, es necesario y mucho más fácil
explicar su implementación sobre un aspecto reconfigurable
existente como base.
No hay otro aspecto reconfigurable en SODIUM que haya
sido más refinado e investigado que el planificador de
procesos. Éste cuenta con 6 diferentes modos disponibles:
Round-Robin (RR), Round-Robin con colas de prioridad
(RRPR), Round-Robin con quantum variable (RRQV), FirstCome-First-Serve
(FCFS),
Shortest-Finishing-Job-First
(SJFS), y Best-Time-Of-Service (BTS). La mayoría de estos
modos han sido especificados como estándares en la
bibliografía existente sobre sistemas operativos. Nosotros
hemos utilizado una especificación general [8] como base para
su implementación.
Este aspecto tiene la particularidad de que todos sus 6
modos pueden ser intercambiados a cualquiera de los otros sin
limitaciones, en tiempo de ejecución. Esto significa que este
aspecto cuenta con 30 transiciones diferentes para
implementar. Cada transición esta implementada como un
grupo de funciones que efectúan los cambios necesarios para
su reconfiguración.
En la Tabla I, se indica qué grupo de funciones ejecuta el
kernel de SODIUM – todas ellas son conmutativas – para
lograr cambiar un modo de planificación a otro en tiempo de
ejecución. Este es un paso necesario para permitirle al kernel
reconfigurarse de manera autónoma, y debe ser diseñado por
los desarrolladores del sistema operativo. Las acciones han
sido codificadas como letras para ilustrar indicar qué
transiciones se ejecutarán según las condiciones dadas en las
tablas de decisión mostradas en este artículo, mientras que la
transición 0 indica que ninguna acción se debe efectuar. Esta
tabla será utilizada nuevamente en la sección VI, cuando
nuevas reglas se agreguen para contemplar nuevas condiciones
de ejecución.
TABLA I. TRANSICIONES ENTRE MODOS Y SUS ACCIONES.
Siguiente Modo
RR
Modo Actual
1326
RR
RRPR
RRQV
FCFS
SJFS
BTS
0
f
k
o
t
v
RRPR RRQV FCFS
a
0
l
p
p
w
b
g
0
q
q
x
c
h
m
0
u
y
SJFS
BTS
d
i
n
r
0
z
e
j
ñ
s
s
0
A pesar de que esta tabla de transiciones-acciones le
permite al sistema operativo por sí mismo saber qué acciones
tomar para realizar una transacción, no es suficiente todavía
para permitirle tomar decisiones sobre qué transiciones
ejecutar, ni cuando tomarlas. Contar con esta relación entre
MARTIN et al.: USE OF EXTENDED ADAPTIVE DECISION
transiciones y acciones es el primer paso para generar una
tabla de decisión convencional – de ahora en adelante,
abreviada como cTD –. La cTD contendrá el primer
mecanismo de condición-acción que le permitirá al kernel
tomar decisiones autónomamente.
III. CRITERIOS PARA TOMA DE DECISIONES
Para que una tabla de transiciones-acciones, como la obtenida,
le permite a un kernel tomar decisiones autónomamente,
necesitamos definir dos nuevos elementos clave: condiciones,
que van a indicar qué reglas – como sinónimo de transición –
se deben ejecutar en un cierto momento; y eventos, que
indican cuándo se deben evaluar las condiciones.
Los eventos por sí mismos también pueden ser
considerados condiciones, porque si no ocurren, ninguna de
las reglas asociadas a ellos se ejecutará. Sin embargo, desde
un punto de vista de los sistemas operativos, la distinción es
importante. Los eventos se codifican como funciones de
gatillo puestas en diferentes partes del kernel, mientras que las
condiciones se evalúan únicamente si se recibe un evento. En
el caso del planificador de procesos de SODIUM, los eventos
se dispararán cada vez que un proceso sea creado, eliminado,
interrumpido, o liberado. Esto incluye interrupciones de
hardware/software, syscalls, solicitudes y respuestas de E/S, y
rutinas de comunicación entre procesos.
Definir condiciones como tales puede ser más difícil. Para
definir qué condiciones de ejecución requerirán un cambio de
modo, debemos evaluar tres aristas diferentes de la
planificación de procesos: métricas de planificación,
categorías de aplicación, y relaciones de algoritmos-métricas.
A. Métricas de Planificación
El planificador de procesos de SODIUM cuenta con un
conjunto de 7 métricas para evaluar y reportar el rendimiento
de cada algoritmo (modo) de planificación. Estas métricas
están basadas en la lista presentada en [8]. Aquí se muestra
una breve explicación para cada una:
• Uso del Procesador ( % cpu ) indica el radio entre el
tiempo que el procesador está ejecutando un proceso, y
el que pasa en estado libre (idle) o en operaciones de
overhead.
• Rendimiento ( # f ) indica la cantidad de procesos que
han finalizado dado un diferencial finito de tiempo.
• Tiempo de Finalización ( t cv ) indica el tiempo que le
toma a un proceso ejecutar por completo, desde que es
creado hasta que termina. Esto incluye el tiempo
esperando por memoria u operaciones de E/S.
• Tiempo de Espera ( t w ) indica el tiempo total de espera
del proceso durante toda su ejecución, desde que es
creado. Esto no incluye E/S ni syscalls.
1327
• Tiempo de Respuesta ( t r ) indica el tiempo promedio
que, para cada proceso que ha solicitado una operación,
ésta es completada.
• Tiempo efectivo de Servicio ( t s ) Indica la suma del
tiempo que el proceso ha pasado en ejecución en el
procesador.
• Overhead (Ov) indica el tiempo que el procesador pasa
ejecutando rutinas de administración de sistema.
B. Categorías de Aplicaciones
Dado que no es posible conocer exactamente qué acciones
y servicios serán ejecutados por una aplicación de usuario
antes de que ejecute por completo, la única manera de estimar
su futuro comportamiento es intentar perfilarla dentro de una
categoría bien conocida. Nos enfocamos en la técnica de
perfilado presentada en [9] basada en la frecuencia de llamado
a system calls, y la mantención de información particular por
proceso, como la especificada para el sistema operativo
Solaris en [10].
En SODIUM, los procesos en ejecución caen, luego de un
corto período de tiempo, en alguna de las siguientes
categorías: Aplicaciones de Interacción Intensiva (II), como
juegos o líneas de comando; Aplicaciones Multimedia (M),
como herramientas de edición de video y audio; Aplicaciones
de E/S Intensiva (ES), como grabadores de DVD o
transferencia de datos; Aplicaciones Internet (WEB), como
navegadores o programas de red; Aplicaciones de
Procesamiento Intensivo (P), como compiladores o programas
científicos; y Aplicaciones de Sistema (S), como servicios o
programas de mantenimiento.
Luego de conducir una batería de pruebas sobre
aplicaciones siendo categorizadas, pudimos establecer qué
métricas son más importantes para cada categoría, como se
muestra en la Tabla II.
TABLA II. MÉTRICAS DE ALTA PRIORIDAD PARA CADA CATEGORÍA.
Categorías
Aplicaciones de Interacción
Intensiva
(II)
Aplicaciones Multimedia
(M)
Aplicaciones de E/S
Intensiva
(ES)
Aplicaciones Internet
(WEB)
Aplicaciones de
Procesamiento Intensivo
(P)
Aplicaciones de Sistema
(S)
Métricas
Tiempo de Respuesta
Tiempo de Espera
Tiempo de Espera
Uso del Procesador
Rendimiento
Tiempo de Respuesta
Tiempo Efectivo de Servicio
Tiempo de Respuesta
Tiempo de Finalización
Rendimiento
Overhead
1328
IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 7, OCTOBER 2014
C. Relaciones entre Métricas y Algoritmos
Dado que ahora contamos con la posibilidad de encasillar
una aplicación dentro de una categoría, mantener métricas de
planificación, y saber aproximadamente qué métricas
favorecen cada categoría, sólo nos queda determinar qué
algoritmos de planificación (modos) favorecen dichas
métricas.
Hemos encontrado alguna de estas relaciones algoritmométrica ya documentadas en bibliografía existente [8]. Sin
embargo, hemos conducido pruebas de control para
confirmarlas, y también determinar aquellas que no estaban
contempladas.
Por ahora, contemplaremos el caso de múltiples categorías
utilizando directamente el algoritmo de planificación RoundRobin que es el que mejor ha respondido en general para todas
las métricas de planificación durante las pruebas realizadas.
Los escenarios mono, multi y los de categoría única pueden
ser interpretados en una tabla de decisión como condiciones
que, sin contemplar la capacidad de que dos puedan cumplirse
al mismo tiempo, pueden determinar qué algoritmo será mejor
utilizar en cada caso. Además, de la Tabla I podemos
determinar qué acciones ejecutar para realizar las transiciones
de un modo a otro.
TABLA III. TABLA DE DECISIÓN CONVENCIONAL (CDT) PARA EL PLANIFICADOR DE PROCESOS DE SODIUM.
Reglas
1
R
R
Condiciones
Modo Actual
Aplicaciones
en ejecución
Acciones
Mono
II
M
ES
WEB
P
S
Multi
x
a
1 1 1
0 1 2
R R R R P P P P P Q Q
R R R R R R R R R V V
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
b c d e f g h i j k l
2
3
4
5
6
7
8
9
IV. TABLA DE DECISIÓN CONVENCIONAL
La información obtenida en las pruebas realizadas es
suficiente para determinar qué algoritmo de planificación
utilizar cuando todos los procesos en ejecución pertenecen a la
misma categoría. Sin embargo, este escenario no cubre todas
las posibilidades de ejecución.
Podría existir un escenario en el que sólo exista un proceso
en la cola de listos. Este caso podría ser significativo en
sistemas de procesamiento en lote. Utilizar un algoritmo
costoso en overhead en dichos casos no es conveniente, ya
que, al no haber más procesos, el sistema debería interferir lo
menos posible. Por lo tanto, podemos establecer que, en el
caso de mono-procesamiento (mono), el algoritmo a utilizar
será el de FCFS, que no es expropiativo.
Adicionalmente, un escenario más común es que diferentes
procesos de diferentes categorías intenten ejecutar
concurrentemente. En este caso, utilizar algoritmos que
respondan a una única categoría según la Tabla II, podría ser
perjudicial para el rendimiento general. Esto se debe a que
estaríamos utilizando sólo una heurística simple e información
empírica para determinar el mejor algoritmo en escenarios
complejos. De hecho, existen 720 combinaciones diferentes de
escenarios en ejecución simultánea. Esta complejidad no
puede ser manejada a priori, tan solo analizando cada
categoría por separado. Este es el escenario denominado
multi-categoría (multi) que será resuelto luego utilizando la
capacidad de auto-modificación de una tabla de decisión
adaptativa.
1
3
Q
V
x
1
4
Q
V
1
5
Q
V
1 1 1 1 2
6 7 8 9 0
F F F F F
C C C C C
2
1
S
J
2
2
S
J
x
2
3
S
J
2
5
S
J
x
x
x
x
x
x
x
x
2 2 2 2 3
6 7 8 9 0
B B B B B
T T T T T
x
x
x
x
x
x
x
x
m n
2
4
S
J
x
x
ñ
x
o
p
q
r
s
x
t
p
q
u
x
s
x
v
w x
y
z
Por lo tanto, ya contamos con todos los elementos para
construir la tabla de decisión convencional inicial (cDT), para
que el planificador de procesos del kernel de SODIUM pueda
decidir qué algoritmo utilizar dependiendo de las aplicaciones
siendo ejecutados, y además qué funciones ejecutar para
cambiar entre un modo y otro. Dicha tabla consiste en un
conjunto de 30 reglas que combinan las condiciones dadas –
modo actual y aplicaciones en ejecución– y sus acciones
correspondientes. La cDT inicial para el planificador de
SODIUM puede ser vista en la Tabla III.
V. TABLA DE DECISIÓN ADAPTATIVA
A. Mecanismo adaptativo
Para poder contemplar nuevas reglas para escenarios
complejos, tales procesos de categoría II y M ejecutándose
simultáneamente, debemos agregar mecanismos adaptativos a
la cDT estática obtenida previamente, para transformarla en
una tabla de decisión adaptativa (aDT). La definición formal
de una aDT [11] [12] requiere la especificación de una cDT
base tal como la obtenida en la Tabla III, y también la adición
de funciones adaptativas para realizar consultas,
eliminaciones, e inserciones automatizada sobre las reglas de
la tabla.
En este trabajo utilizamos un mecanismo adaptativo simple
que consiste en el uso de dos funciones adaptativas simples.
Una es utilizada para verificar la existencia de reglas que
contemplen el escenario complejo en ejecución. La otra es
utilizada para agregar una nueva regla, si es que no existe una
MARTIN et al.: USE OF EXTENDED ADAPTIVE DECISION
para el escenario detectado.
Estas funciones adaptativas, llamadas Ad1, y Ad2, se
ejecutan antes y después de la ejecución de las reglas de la
tabla propiamente dichas, respectivamente. Ad1 sólo define el
valor de la variable estado a D (determinado) si existe une
regla que pueda contemplar las condiciones actuales del
escenario. Cuando ninguna regla existente contempla las
condiciones actuales, una nueva regla (31) se encarga de
definir la variable estado a ND (no determinado). En el
siguiente paso, si el valor de la variable estado es igual a ND,
una nueva regla (32) ejecuta la función adaptativa Ad2.
La función Ad2 se encarga de agregar 6 nuevas reglas a la
tabla de decisión. Estas nuevas reglas se encargarán de
contemplar el caso actual en futuras ejecuciones. El resultado
de esto es que, en cualquier momento en el futuro en el que se
repitan las mismas condiciones, existiría una transición hacia
el modo en que esas condiciones fueron contempladas
inicialmente. La lógica de esto es que, cuando un nuevo
conjunto de condiciones es encontrado, es probablemente
porque un nuevo proceso de una categoría diferente a los que
se encuentran en ejecución es creado. Por lo tanto, se sigue
manteniendo el mejor planificador para las aplicaciones que
ya estaban creadas. Al hacer esto, se intenta mantener los
beneficios del planificador en ejecución para los procesos ya
activos. La implementación de las nuevas reglas 31 y 32, y las
funciones adaptativas Ad1 y Ad2 pueden ser vistas en la Tabla
V.
La acción que será ejecutada por cada nueva regla está dada
por la función $m que toma el modo actual de la regla, y el
escenario actual como parámetros para definir una acción
específica. El resultado de definir qué acción realizar según
los modos detectados se obtiene de los valores de $m
mostrados en la Tabla I.
Las funciones adaptativas crearán nuevas reglas para casos
particulares en los que, por ejemplo, condiciones de categoría
(M) y (S) se detectan simultáneamente. En ese caso, 6 nuevas
reglas se crearán para contemplar esa combinación de
condiciones con 6 posibles modos actuales que serán
agregadas a la cDT subyacente.
A pesar de ser un mecanismo simple, esto le permite a la
tabla de decisión aprender del comportamiento del usuario, y
convergir hacia una tabla de decisión completa con 720 reglas
diferentes, para cada usuario. Por otro lado, muestra algunas
limitaciones debido a que, una vez creadas, no pueden ser
modificadas si el usuario muestra un comportamiento
diferente en ejecuciones sucesivas. Tampoco provee la
habilidad de contemplar más criterios (métricas) en el proceso
de toma de decisiones. Estos problemas son abordados
utilizando las extensiones a la aDT mostrados en la siguiente
sección.
VI. TABLA DE DECISIÓN ADAPTATIVA EXTENDIDA
La aDT obtenida en la sección previa permite la creación de
nuevas reglas que contemplan condiciones que no fueron
incluidas en la cDT original. Sin embargo, el único criterio
utilizado para determinar las acciones de transición de modo
1329
fueron aquellas que mantienen el primer modo original. Este
criterio no contempla el uso de indicadores de rendimiento –
como las métricas definidas en la Tabla II – ni un mecanismo
para modificar las reglas ya creadas. Por lo tanto, es necesario
extender la definición de la aDT para poder incluir funciones
específicas que puedan decidir qué algoritmo utilizar
basándose en la relación entre las categorías de procesos y las
métricas mantenidas.
Recurriremos a la definición formal de una Tabla de
Decisión Adaptativa Extendida (EADT) [13] [14] en el que
múltiples criterios pueden ser definidos para determinar la
mejor decisión posible. Este definición parte de una aDT base
tal como la definida en la sección anterior a la que se le
agregan funciones auxiliares que se ejecutan antes que la
acción definidas por las regla seleccionada, y definen valores
para variables que serán tomadas en cuenta luego para la toma
de decisiones.
En nuestro caso, definimos el modo destino como
parámetro para la función $m usando las métricas definidas en
la sección III. En [13], se indica que es necesario elaborar una
matriz Z de preferencia por cada combinación de criterios
(métricas) y alternativas (algoritmos de planificación), usando
la escala fundamental de Saaty [15] para comparar la
importancia relativa de cada criterio con cada categoría de
aplicación.
Por otro lado, podemos ajustar la importancia de cada
criterio teniendo en cuenta la cantidad de procesos de cada
categoría que se encuentran listos para ejecutar. Por ejemplo,
para un escenario en el que 2 procesos de categoría (II), y uno
de categoría (S) están listos, la importancia de las métricas tw y
tr será el doble de la definida para la métrica ov.
TABLA IV. MATRIZ Z DE PREFERENCIA CRITERIO/ALTERNATIVA.
Preferencia de Criterio
Categoría
%cpu
#f
tcv
tw
tr
ts
ov
Multiplicador
RR
RRPR
RRQV
FCFS
SJFS
BTS
x1
0,35
0,35
0,12
0,06
0,06
0,06
x1
0,13
0,13
0,13
0,13
0,38
0,13
x1
0,05
0,15
0,30
0,30
0,30
0,05
x6
0,18
0,54
0,02
0,02
0,02
0,06
x6
0,16
0,16
0,02
0,02
0,02
0,16
x1
0,23
0,03
0,03
0,03
0,03
0,68
x3
0,15
0,15
0,45
0,45
0,05
0,05
Preferencia
Total
0,17
0,28
0,25
0,11
0,06
0,13
Para el ejemplo anterior, una matriz Z normalizada de
preferencias de criterios para cada alternativa es ilustrada en la
Tabla IV. Puede verse en esta tabla que, para el ejemplo, se
podrían obtener mejores resultados utilizando el algoritmo
RRPR, que obtiene una preferencia ligeramente mayor que la
del algoritmo RRQV.
La matriz Z se regenerará completamente basada en la
cantidad y categoría de los procesos listos para ejecutar cada
vez que alguna función adaptativa llame a una función
llamada z_gen(). Otra función z_get() que se utilizará para
obtener el algoritmo preferido dada la matriz generada.
Sólo será necesario agregar llamadas a las funciones
z_gen() y z_get() junto con una nueva variable m para guardar
el valor obtenido. En la Tabla V se muestra la forma final de
1330
IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 7, OCTOBER 2014
ejecución. Inicialmente, cada recorrido crea dos procesos de
una categoría, evalúa las métricas, y crea otros dos nuevos
procesos de otra categoría, hasta llegar a los 12 procesos
simultáneos, con los que completa todas las categorías. Los
caminos de cada recorrido se especifican en la Tabla VI.
la tabla de decisión adaptativa extendida implementada en el
planificador de procesos de SODIUM.
TABLA V. TABLA DE DECISIÓN ADAPTATIVA EXTENDIDA IMPLEMENTADA EN SODIUM.
Declaraciones de Funciones Adaptativas
Ad1
Modo
Actual
Estado
Condiciones
Funciones de
Preferencia
Acciones
+
P
R
+
Q
V
+
F
C
+
S
J
+
B
T
C1
C2
C3
C4
C5
C6
C1
C2
C3
C4
C5
C6
C1
C2
C3
C4
C5
C6
C1
C2
C3
C4
C5
C6
C1
C2
C3
C4
C5
C6
C1
C2
C3
C4
C5
C6
II
M
ES
WEB
P
S
z_gen()
z_get()
func()
Ad1
Ad2
m
0 1 2 3
H ? H +
R
R
A
…
S R R R R
R R R
…
R R R
…
- x - …
x - - …
- - - …
- - - …
- - x …
- - - …
Reglas
2 2 2
6 7 8
R R R
F S S
C J J
x
-
x
-
2
9
R
B
T
- - - x
- - x -
3 3 3 3
0 1 2 3
R R R E
B
T
N
x
x
m
y
N
$m $m $m $m $m $m 0 a b d
…
…
q q u x
x
x
x x x x x
D
Estado=
Funciones
Adaptativas
Variables
Ad2
x
x
x
x
x
x x x
B
V
VII. PRUEBAS Y RESULTADOS
El objetivo de las pruebas a realizar es medir la eficiencia de
la decisión sobre qué modo (algoritmo) utilizar para la
planificación de procesos de cada una de las estrategias
expuestas en este trabajo. Para ello, se elaboraron tres
versiones diferentes del planificador de procesos de SODIUM,
cada una implementando una de los dispositivos de toma de
decisión obtenidos a través de este trabajo:
• Tabla de decisión convencional (cDT).
• Tabla de decisión adaptativa (aDT).
• Tabla de decisión adaptativa extendida (EADT)
Para medir la eficiencia de un algoritmo de planificación
respecto a un escenario de ejecución en particular,
obtendremos un puntaje normalizado que permita comparar su
desempeño
respecto
a
otras
combinaciones
algoritmo/escenario. Para esto se midieron los siguientes
elementos:
• La cantidad de procesos de una categoría en particular para
el escenario evaluado.
• Relevancia de cada métrica según la categoría de
aplicación según la Tabla II. Por ejemplo, para la categoría
de procesamiento intensivo (P), sólo son relevantes las
métricas Tiempo de Ciclo de Vida (tcv) y Tasa de
Finalización (#f).
Para las pruebas se establecieron seis recorridos
(denominados 1, 2, 3, 4, 5, y 6). Cada recorrido pasa por un
escenario de categoría única, y luego agrega procesos de otras
categorías escalonadamente, hasta que llega al escenario
donde procesos de todas las categorías se encuentran en
x
x
x
TABLA VI. RECORRIDOS DE LAS PRUEBAS REALIZADAS.
Recorrido
1
2
3
4
5
6
# Procesos
(II)
(M)
(ES)
(WEB)
(P)
(S)
2
(S)
(II)
(M)
(ES)
(WEB)
(P)
4
Categorías
(P)
WEB)
(ES)
(S)
(P) (WEB)
(II)
(S)
(P)
(M)
(II)
(S)
(ES)
(M)
(II)
(WEB)
(ES)
(M)
6
8
10
(M)
(ES)
(WEB)
(P)
(S)
(II)
12
En la Fig. 1 se muestra un gráfico de evolución para el
promedio de eficiencia de los diferentes métodos de toma de
decisión implementados respecto al caso ideal. La eficiencia
ideal muestra el máximo hipotético que cada método podría
obtener.
Puede observarse que la EADT obtiene los mejores
resultados para todos los casos debido a su capacidad de
combinar el potencial ofrecido por la aDT para casos
específicos, y el de la cDT para la generalización. Esto
demuestra que la EADT implementada como mecanismo
adaptativo para la selección de algoritmos puede obtener
resultados cercanos a los ideales para todo tipo de escenarios.
Los detalles de implementación y algoritmos de cálculo de
eficiencia utilizados en las pruebas se encuentran detallados en
[16].
MARTIN et al.: USE OF EXTENDED ADAPTIVE DECISION
1331
[2]
[3]
[4]
[5]
[6]
Figura 1. Gráfico de la evolución de la eficiencia entre los diferentes métodos
de toma de decisión y el caso ideal.
VIII. CONCLUSIONES Y PERSPECTIVAS FUTURAS
En el presente trabajo se ha logrado implementar con éxito un
mecanismo para la toma de decisión sobre la configuración de
un sistema operativo reconfigurable que no requiere la
intervención directa del usuario, mediante la aplicación de
tecnologías
adaptativas.
Las
decisiones
tomadas
automáticamente por el kernel permitieron obtener una
eficiencia cercana a la ideal para el aspecto de selección de
planificadores de procesos.
Con el uso de EADTs fuimos capaces de elaborar una
alternativa para determinar la configuración de un aspecto de
un sistema operativo que sería demasiado compleja o
inaccesible de determinar a priori. También pudimos proveer
al kernel de SODIUM con la capacidad de cambiar reglas
existentes basándose en el comportamiento de aplicaciones y
usuarios. Mientras que estas capacidades podrían ser obtenidas
con otros dispositivos para la de toma de decisión, ésta
alternativa se destaca en que provee un mecanismo intuitivo
para determinar las reglas y funciones adaptativas.
Respecto a SODIUM, existen muchos más aspectos de
kernel que todavía no han sido analizados y convertidos a
aspectos reconfigurables adaptativos. Este trabajo será
realizado durante la siguiente etapa de investigación del
equipo de desarrollo, en las cuales se harán nuevas mediciones
para observar si los beneficios del uso de EADTs pueden ser
obtenidos para cualquier aspecto.
Las perspectivas del uso de mecanismos adaptativos para la
reconfiguración
automatizada
(no
interactiva)
son
prometedoras. Estas podrían ser aplicadas en cualquier sistema
operativo hogareño o empresarial que exista en el mercado sin
necesidad de hacer una reingeniería de sus aplicaciones. En
este caso, un costo inicial será necesario para adaptar el
kernel: se deben desarrollar las funciones y métricas a tener en
cuenta como datos de ingreso para sus EADTs, se deben
analizar los diferentes modos de implementación, y los
eventos a definir.
REFERENCIAS
[1]
S. MARTIN, N. CASAS, G. DE LUCA, “Diseño de un sistema operativo
reconfigurable para fines didácticos y prácticos”. 6° Workshop de
Tecnologia Adaptativa. San Pablo, Brasil, 2012.
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
A. C. VEITCH, N. C. HUTCHINSON, “Kea – a dynamically extensible
and configurable operating system kernel”, 3rd International
Conference on Configurable Distributed Systems. Vancouver,
Canada, 1996.
C. COWAN, T. C. AUTREY, C. KRASIC, C. PU, J. WALPOLE, “Fast
concurrent dynamic linking for an adaptive operating system”. 3rd
International Conference on Configurable Distributed Systems.
Vancouver, Canada, 1996.
B. N. BERSHAD, S. SAVAGE, P. PARDYAK, E. G. SIRER, M. E.
FIUCZYNSKI, D. BECKER, C. CHAMBERS, S. EGGERS, “Extensibility:
Safety and Performance in the SPIN Operating System”. 5th
Symposium on Operating Systems Principles. ACM, New York,
United States, 1995.
R. LEA, Y. YOKOTE, J. ITOH. “Adaptive operating system design using
reflection”. Object-Based Parallel and Distributed Computation.
Volume 1107, Springer Berlin, 1996.
N. CASAS, G. DE LUCA, M. CORTINA, G. PUYO, W. VALIENTE,
“Implementación de distintos tipos de memoria en un sistema
operativo didáctico”. XIV Congreso Argentino de Ciencia de la
Computación. La Rioja, Argentina, 2008.
H. RYCKEBOER, N. CASAS, G. DE LUCA, “Construcción de un Sistema
Operativo Didáctico”. X Workshop de Investigadores en Ciencias de
la Computación. La Pampa, Argentina, 2008.
A. SILBERSCHATZ, P. B. GALVIN, G. GAGNE. “Operating System
Concepts”. 8va Edición. John Wiley & Sons, New Jersey, United
States, 2012.
S. M. VARGHESE, K. P. JACOB, “Process Profiling Using Frequencies
of System Calls”. The Second International Conference on
Availability, Reliability and Security (ARES'07). Viena, Austria,
2007.
R. MCDOUGALL, J. MAURO, “Solaris Internals”. Second Edition.
Prentice-Hall. California, United States, 2007.
J. J. NETO, “Adaptative rule-driven devices - general formulation and
a case study”. Sixth International Conference on Implementation and
Application of Automata. Pretoria, South Africa, 2001.
T. PEDRAZZI, A. TCHEMRA, R. ROCHA, “Adaptive Decision Tables A
Case Study of their Application to Decision-Taking Problems”.
Adaptive and Natural Computing Algorithms, Springer. Vienna,
Austria, 2005.
A. H. TCHEMRA, “Tabela de decisão adaptativa na tomada de decisões
multicritério”. Phd Thesis. Escola Politécnica, USP, San Pablo, Brasil,
2009
A. H. TCHEMRA, “Adaptatividade na Tomada de Decisão
Multicritério”. 4° Workshop de Tecnologia Adaptativa. Escola
Politécnica, USP, San Pablo, Brasil, 2010.
T. L. SAATY, “Método de Análise Hierárquica”. McGraw-Hill. San
Pablo, Brasil, 1991.
S. MARTIN, “Aplicación de Tecnologías Adaptativas - Caso de
Estudio: Sistemas Operativos Reconfigurables”. Tesis de Maestría.
Universidad Nacional de La Matanza. Buenos Aires, Argentina, 2013.
Sergio Miguel Martin se graduó en la carrera de Ingeniería
en Informática en la Universidad Nacional de La Matanza
(UNLaM). de Buenos Aires, Argentina el año 2010 donde
también realizó su Maestría en el año 2013. Es docente
ayudante de las materias de Sistemas Operativos desde el
2010; de Autómatas y Lenguajes Formales desde el 2011.
Graciela Elisabeth De Luca es Analista Universitaria de
Sistemas de La Universidad Tecnológica Nacional y
Licenciada en Informática de la Universidad Católica de
Salta. Desde el año 2005 pertenece al grupo de Investigación
en Sistemas Operativos de la Universidad Nacional de la
Matanza.
Nicanor Blas Casas es Analista Universitario de Sistemas de
la Universidad Tecnológica Nacional e Ingeniero en
Informática de la universidad Católica de Salta. Desde el año
2005 pertenece al grupo de Investigación en Sistemas
Operativos de la Universidad Nacional de la Matanza.
Descargar