PDF de programación - Investigación en sistemas operativos. Un kernel asimétrico para el procesamiento de red, evaluación de resultados preliminares

Imágen de pdf Investigación en sistemas operativos. Un kernel asimétrico para el procesamiento de red, evaluación de resultados preliminares

Investigación en sistemas operativos. Un kernel asimétrico para el procesamiento de red, evaluación de resultados preliminaresgráfica de visualizaciones

Publicado el 1 de Marzo del 2017
736 visualizaciones desde el 1 de Marzo del 2017
24,3 KB
5 paginas
Creado hace 17a (26/03/2007)
Investigación en sistemas operativos.

Un kernel asimétrico para el procesamiento de red,

evaluación de resultados preliminares.

Javier Díaz

[email protected]

Matías Zabaljáuregui

[email protected]

Laboratorio de Investigación en Nuevas Tecnologías Informáticas

Universidad Nacional de La Plata

Resumen

Este artículo presenta los temas que se
están comenzando a explorar en el Labora-
torio de Investigación en Nuevas Tecnologías
Informáticas como parte de una línea de in-
vestigación en sistemas operativos y expone
los primeros resultados obtenidos.

La rápida evolución en las tecnologías de
hardware, las redes de datos y el diseño del
software de usuario contrasta con el hecho de
que el diseño del kernel y los mecanismos que
implementan la protección y virtualización de
los recursos, en los sistemas operativos actua-
les, no hayan tenido avances significativos en
las últimas tres décadas. Esta disparidad se ve
reflejada en un overhead significativo de pro-
cesamiento, conocido como intrusión del sis-
tema operativo.

Esta línea de investigación se enfoca en
identificar, proponer y evaluar nuevas carac-

terísticas relacionadas con la performance y
escalabilidad del kernel Linux, teniendo en
cuenta los nuevos desafíos que presentan las
arquitecturas multicore y la computación cen-
trada en las redes a los sistemas operativos de
la próxima generación.

1.

Introducción

Asumiendo un futuro tecnológico cercano
donde la computación centrada en las redes
y las arquitecturas paralelas serán característi-
cas fundamentales, se hace evidente la necesi-
dad de replantear el diseño del software de ba-
se teniendo en cuenta los nuevos paradigmas
de procesamiento y características del hard-
ware. Por un lado, se espera un gran desa-
rrollo tecnológico basado en las distintas for-
mas de almacenamiento y procesamiento dis-
tribuido, soportado por el incesante avance en

los estándares y tecnologías de redes de datos.
Por otro lado, las arquitecturas con múltiples
núcleos de procesamiento se están posicionan-
do como el estándar actual para la mayoría de
las configuraciones de hardware.

En este escenario, se están planteando
nuevas características (y adaptando antiguas
ideas) que los sistemas operativos deberán in-
corporar en el corto y mediano plazo. En-
tre otras, se pueden mencionar el diseño de
kernels asimétricos y activos para explotar al
máximo el paralelismo en las nuevas arqui-
tecturas, el desarrollo de una capa de llama-
das al sistema completamente asincrónicas y
basadas en memoria compartida para optimi-
zar las operaciones de entrada/salida que cada
vez son más frecuentes, las nuevas tecnologías
de virtualización, y las funcionalidades que in-
corporan soporte para computación Grid en el
kernel.

A continuación se describen los temas que
forman parte de la línea de investigación en
sistemas operativos que se está desarrollando
en el Laboratorio de Investigación en Nuevas
Tecnologías Informáticas.

CPUs. O puede restringirse la ejecución del
código en modo kernel a sólo un procesador
(a uno específico o a un procesador a la vez),
mientras el código en espacio de usuario se
ejecuta en el resto de las CPUs.

Yendo más allá, la idea de un kernel acti-
vo es una evolución del modelo de kernel ver-
tical [4], y propone dedicar CPUs o cores a
realizar exclusivamente actividades del kernel.
Al ser un agente activo, es posible que el ker-
nel se comunique con el hardware y el espa-
cio de usuario utilizando mecanismos alterna-
tivos, menos costosos que los actuales (inte-
rrupciones por hardware y software).

Como se detalla en la sección 3, nuestro tra-
bajo se centra en el estudio de las posibilidades
que ofrecen estos conceptos en el tratamien-
to de la entrada/salida de red. Sin embargo, se
han identificado posibles aplicaciones en otros
dominios (virtualización, tiempo real, etc).

2.2. Llamadas

al

asincrónicas y basadas
memoria compartida

sistema
en

2. Línea de Investigación

2.1. Un kernel asimétrico y activo

Generalmente, los sistemas operativos han
utilizado a las máquinas SMP de manera
simétrica, intentando balancear la carga entre
todos los elementos de procesamiento dispo-
nibles. En los sistemas ASMP, los procesado-
res se especializan para tareas específicas. Por
ejemplo, es posible que una CPU responda a
todas las interrupciones del hardware, mien-
tras el resto del trabajo en el sistema sea dis-
tribuido equitativamente entre el resto de las

La API que el kernel ofrece al espacio de
usuario define la base de los servicios y opera-
ciones que el sistema operativo provee a los
procesos. En particular, define la sintaxis y
semántica de las operaciones exportadas por el
kernel, conocidas normalmente como llama-
das al sistema. Los buffers para entrada/salida
de datos aparecen en esta definición como ar-
gumentos a las operaciones. La semántica de
pasaje de parámetros puede tener un impacto
significativo en la eficiencia de la transferen-
cia de datos entre el kernel y la aplicación. Se
ha manifestado previamente [2] el costo que
implica el modelo tradicional de llamadas al
sistema en sistemas operativos que se ejecutan

en máquinas donde se realizan principalmente
tareas de entrada/salida.

La línea de trabajo se centra en ideas al-
ternativas orientadas a incrementar la eficien-
cia del kernel Linux en el manejo de entra-
da/salida, relacionadas principalmente con la
posibilidad de realizar operaciones vectoriza-
das (utilizando más de un buffer de datos por
invocación, lo que favorece las operaciones
scatter-gather) y utilizando memoria compar-
tida entre el kernel y el espacio de usuario,
para evitar las copias físicas en memoria de
un dominio de protección al otro. Además,
para lograr mayor escalabilidad, evitando el
overhead que implica el scheduling de grandes
cantidades de threads [6], se están proponien-
do APIs que poseen una semántica de entra-
da/salida asincrónica para operaciones de soc-
kets y archivos. Las aplicaciones realizan ope-
raciones sin ser bloqueadas y sin verificar pre-
viamente el estado del descriptor de socket o
archivo, luego reciben eventos que señalizan
la terminación de una operación previamente
invocada. Este modelo permite que múltiples
operaciones entrada/salida estén realizándose
concurrentemente sin que el proceso o thread
sea bloqueado por el sistema operativo.

2.3. Nuevas ténicas de virtualiza-

ción

Recientemente, dos nuevas técnicas de vir-
tualización han logrado un nivel de perfor-
mance sorprendente con respecto a la perfor-
mance en la ejecución nativa. La paravirtuali-
zación y la virtualización asistida por hardwa-
re, por separado o combinadas (virtualización
cooperativa), se posicionan como una nueva
capa de abstracción estándar que revolucio-
nará la estructura de los centros de cómpu-

tos gracias a la consolidación del hardware,
un mayor nivel de seguridad y redundancia, la
reducción en el uso de energía, la migración
de hosts virtuales sin interrumpir los servicios,
etc.

Hasta ahora, la solución basada en un hy-
pervisor era la manera estándar de implemen-
tar las técnicas mencionadas de virtualización.
Sin embargo, en este caso es necesario dupli-
car ciertas funcionalidades que ya existen en
un kernel. Por lo tanto, se están planteando
ciertas ventajas al incorporar capacidades de
virtualización al propio kernel.

La línea de trabajo se enfoca en comparar
las técnicas alternativas, evaluar la integración
de esta funcionalidad en el kernel y detectar
las opciones que ofrecen las arquitecturas mul-
ticore a éstas tecnologías.

3. Un prototipo y resultados

preliminares

Como se manifestó en un trabajo previo [2],
los costos asociados a ciertos mecanismos del
sistema operativo, agrupados bajo el nombre
de intrusión del sistema operativo, pueden lle-
gar a ser significativos. Esta sección presen-
ta una modificación al kernel Linux 2.6 basa-
da en la idea de un kernel activo, que reduce
los costos relacionados con el manejo de inte-
rrupciones y la sincronización del subsistema
de red en una máquina SMP. Además se expo-
nen algunas mediciones realizadas, comparan-
do una configuración del kernel estándar y un
kernel modificado.

Con esta modificación se logra desacoplar
el procesamiento de las aplicaciones de usua-
rio del procesamiento de red del kernel. El
procesamiento TCP/IP es aislado de las CPUs

que ejecutan el sistema operativo y los proce-
sos de usuario (CPUs-HOST), y se delega a
un procesador o subconjunto de procesadores
dedicados a las comunicaciones (CPUs-NET).
Las CPUs-HOST deben comunicarse con las
CPUs-NET usando un medio de comunica-
ción de bajo costo y no intrusivo, como la me-
moria compartida.

Una CPU-NET no necesita ser multiplexa-
da entre otras aplicaciones y/o funciones del
kernel, con lo cual puede ser optimizada para
lograr la mayor eficiencia posible en su fun-
ción. Por ejemplo, es posible evitar el costo
de las interrupciones de hardware si las CPUs-
NET consultan, con una frecuencia suficien-
te, el estado de las NICs (Network Interface
Controller) para saber si necesitan ser atendi-
das. También se reduce la contención por da-
tos compartidos y el costo de sincronización
dado que el procesamiento de red ya no se
realiza de manera asincrónica y descontrola-
da entre todas las CPUs de la máquina (el ker-
nel Linux sigue el paradigma de paralelismo
por mensaje [5]), sino que se ejecuta sincróni-
camente en un subconjunto reducido de CPUs
(posiblemente sólo una CPU, dependiendo del
tráfico a procesar).

En las placas de red se desactivan las in-
terrupciones y se verifica el estado por po-
lling. El resto de las interrupciones del sis-
tema son enrutadas a la CPU-HOST usando
los mecanismos de enrutamiento ofrecidos por
el Controlador Programable Avanzado de In-
terrupciones de E/S (I/O APIC) [1]. De esta
forma, la CPU-NET no debe manejar eventos
asincrónicos no relaci
  • Links de descarga
http://lwp-l.com/pdf2498

Comentarios de: Investigación en sistemas operativos. Un kernel asimétrico para el procesamiento de red, evaluación de resultados preliminares (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad