You are on page 1of 15

3.

1 Concepto de hilo
Un hilo es un flujo de control dentro de un proceso, una unidad bsica de utilizacin de la
CPU; comprende un contador de programa, un conjunto de registros y una pila. Comparte
con otros hilos que pertenecen al mismo proceso la seccin de cdigo, la seccin de datos
y otros recursos del sistema operativo como los archivos abiertos y las seales. Los hilo
son subprocesos generados por un proceso padre o por el kernel para facilitar y optimizar
el uso del CPU, se encargan de almacenar, copiar cargar datos (etc) utilizando los recursos
que fueron asignados al proceso que se ejecute
3.1.1 Multihilo
Mltihilo se refiere a la capacidad de un sistema operativo se dar soporte a mltiples hilos
de ejecucin en un solo proceso, en el que no se identifica con el concepto de hilo, se
conoce como estrategia monohilo. Las dos configuraciones que se muestran en la parte
izquierda de la figura son estrategia monohilo. Un ejemplo de sistema operativo que
soporta un nico proceso de usuario y un nico hilo es el MS-DOS. Otros sistemas
operativos soportan mltiples procesos de usuario, pero solo un hilo por proceso. La parte
derecha de la Figura representa las estrategias mltihilo. El entorno de ejecucin Java es un
ejemplo de sistema con un nico proceso y mltiples hilos. Lo interesante en esta seccin
es el uso de mltiples procesos, cada uno de los cuales soporta mltiples hilos.
En un entorno mltihilo, un proceso se define como la unidad de asignacin de recursos y
una unidad de proteccin. Se asocian con procesos los siguientes:
- Un espacio de direcciones virtuales que soporta la imagen del proceso.
- Acceso protegido a procesadores, otros procesos (para comunicacin entre procesos),
archivos y recursos de E/S (dispositivos y canales).
Dentro de un proceso puede haber uno o ms hilos, cada uno con:
- Un estado de ejecucin por hilo (Ejecutando, Listo, etc.).
- Un contexto de hilo que se almacena cuando no est en ejecucin; una forma de ver a
un hilo es como un contador de programa independiente dentro de un proceso.
- Una pila de ejecucin
- Por cada hilo, espacio de almacenamiento para variables locales.
- Acceso a la memoria y recursos de su proceso, compartido con todos los hilos de un
mismo proceso
La prxima figura muestra la diferencia entre los hilos y procesos desde el punto de
vista de gestin de proceso. En un modelo de proceso incluye su bloque de control de
proceso y el espacio.







3.1.2 Funcionabilidad de los hilos
La principal razn de tener hilos es que en muchas aplicaciones se desarrollan varias
actividades a la vez. Algunas de sas se pueden bloquear de vez en cuando. Al
descomponer una aplicacin en varios hilos secuenciales que se ejecutan en cuasi-paralelo,
el modelo de programacin se simplifica.
Un segundo argumento para tener hilos es que, como son mas ligeros que los
procesos, son ms fciles de crear(es decir, rpidos) y destruir. En muchos sistemas, la
creacin de un hilo es de 10 a 100 veces ms rpida que la de un proceso. Cuando el
nmero de hilos necesarios cambia de manera dinmica y rpida, es til tener esta
propiedad.
Una tercera razn de tener hilos es un argumento relacionado con el rendimiento.
Los hilos no producen un aumento en el rendimiento cuando todos ellos estn ligados en la
CPU, pero cuando hay cantidad considerable de clculos y operaciones de E/S, al tener
hilos estas actividades se pueden traslapar, con lo cual se agiliza la velocidad de la
aplicacin.
Los hilos son tiles en los sistemas con varias CPUs, en donde es posible el
verdadero paralelismo.
Lleva mucho menos tiempo crear un nuevo hilo en un proceso existente que crear
un proceso totalmente nuevo.
Lleva menos tiempo finalizar un hilo que un proceso
Leva menos tiempo cambiar entre dos hilos dentro del mismo proceso.
Los hilos mejoran la eficiencia de la comunicacin entre diferentes programas que
estn ejecutando.
3.1.3 Estado de hilos
Ejecutando, Listo y Bloqueado. El estado delos hilos est asociado al estado del proceso,
sabiendo esto se definen las operaciones:
Creacin: Cuando se crea un nuevo proceso, tambin se crea un hilo de dicho
proceso. Posteriormente, un hilo del proceso puede crear otro hilo dentro del mismo
proceso, proporcionando un puntero a las instrucciones y los argumentos para el nuevo
hilo. Al nuevo hilo se le proporciona su propio registro de contexto y espacio de pila y se
coloca en la cola de Listos.
Bloqueo: Cuando un hilo necesita esperar por un
evento se bloquea, almacenan los registros de usuario,
contador de programa y punteros de pila. El procesador
puede pasar a ejecutar otro hilo en estado listo, dentro del
mismo proceso o en otro diferente.
Desbloqueo: Cuando sucede el evento por el que
el hilo est bloqueado, el hilo se pasa a la cola de listos.
Finalizacin: Cuando se completa un hilo, se liberan su registro de contexto y pila.
3.1.4 Paralelismo
Configuracin del sistema, donde la generacin de hilos se da en espacio de usuario y el
espacio de kernel, la relacin entre los hilos generados por ambos espacios va a depender
del sistema o del proceso en ejecucin.
Los hilos pueden utilizarse para expresar algoritmos inherentemente paralelos. Se
obtiene mayor rendimiento debido al hecho de que los hilos funcionan muy bien en
sistemas multiprocesadores. Los hilos permiten expresar el paralelismo de alto nivel a
travs de un lenguaje de programacin.
La utilizacin de mltiples hilos, puede conseguir un grado de paralelismo que
incremente el rendimiento de un programa, e incluso hacer ms fcil la escritura de su
cdigo.
En el multiprocesamiento la ejecucin es paralela de distintos fragmentos de un mismo
programa en distintos procesadores.
Paralelismo de grano fino en el cual el uso del paralelismo es mucho ms complejo que
el que se consigue con el uso de hilos. Si bien gran parte del trabajo se realiza en
aplicaciones muy paralelas, este es un campo, hasta el momento, muy especializado y
fragmentado, con varias soluciones diferentes.
Ejecucin Os Funcionalidad de los hilos.
3.1.5 Hilos a nivel de usuario y de ncleo
Hilos de nivel de usuario. En un entorno ULT (User-level threads) puro, la
aplicacin gestiona todo el trabajo de los hilos y el ncleo no es consciente de la existencia
de los mismos. El soporte para los hilos de usuario se proporciona por encima del kernel y
las hebras se gestionan sin soporte del mismo.
Ventajas y desventajas:
a. El cambio de hilo no requiere de privilegios de modo ncleo porque todas las
estructuras de datos de gestin de hilos estn en el espacio de direcciones de usuario de un
solo proceso. Por consiguiente, el proceso no cambia a modo ncleo para realizar la gestin
de hilos.
b. La planificacin puede especificarse por parte de la aplicacin. Una aplicacin se
puede beneficiar de un simple algoritmo de planificacin cclico, mientras que otra se
podra beneficiar de un algoritmo de planificacin basado en prioridades.
c. Los ULT pueden ejecutar en cualquier sistema operativo. No se necesita ningn
cambio en el nuevo ncleo para dar soporte a los ULT. La biblioteca de los hilos es un
conjunto de utilidades a nivel de aplicacin que comparten todas las aplicaciones.
Desventajas:
a. En un sistema operativo tpico muchas llamadas al sistema son bloqueantes. Como
resultado, cuando un ULT realiza una llamada al sistema, no slo se bloquea ese hilo, sino
que se bloquean todos los hilos del proceso.
b. En una estrategia pura ULT, una aplicacin multihilo no puede sacar ventaja del
multiproceso. El ncleo asigna el proceso a un solo procesador al mismo tiempo. Por
consiguiente, en un determinado momento slo puede ejecutar un hilo del proceso.
Hilos a nivel de ncleo: En un entorno KLT(Kernel-level thread) puro, el nucleo
gestiona todo el trabajo de gestin de hilos. No hay cdigo de gestin de hilos en la
aplicacin, solamente una interfaz de programacin de aplicacin (API) para acceder a las
utilidades de hilos del ncleo.
Ventajas:
a. El ncleo puede planificar simultneamente mltiples hilos de un solo proceso en
mltiples procesadores.
b. Si se bloquea un hilo de un proceso, el ncleo puede planificar otro hilo del mismo
proceso.
c. Las rutinas del ncleo pueden ser en s mismas multihilo.
Desventajas: La transferencia de control de un hilo a otro del mismo proceso requiere un
cambio de modo al ncleo.
3.1.6 Otras estructuras:
Relacin muchos-a-muchos: El modelo
muchos-a-muchos multiplexa muchos hilos de
usuario sobre un nmero menor o igual de hilos
del kernel. El nmero de hilos del kernel puede
ser especfico de una determinada aplicacin o
de una determinada mquina.


Relacin uno-a-muchos: Un hilo puede migrar de un entorno de proceso a otro.
Esto permite a los hilos moverse fcilmente entre distintos sistemas. Los hilos se pueden
mover de un espacio de direcciones a otro, incluso fuera de los lmites de la mquina
(moverse de una computadora a otra). Segn se mueve el hilo, debe llevarse determinada
informacin con l, tal como el controlador de terminal, los parmetros globales y las guas
de planificacin.
3.2 MULTIPROCESO SIMTRICO.
Tradicionalmente, el computador ha sido visto como una mquina secuencial. La mayor
parte de los lenguajes de programacin requieren que el programador especifique
algoritmos como una secuencia de instrucciones. Un procesador ejecuta programas a travs
de la ejecucin de instrucciones mquina en secuencia y de una en una. Cada instruccin se
ejecuta como una secuencia de operaciones (ir a buscar la instruccin, ir a buscar los
operando, realizar la operacin, almacenar resultados).
Esta visin del computador nunca ha sido totalmente cierta. A nivel de micro-operacin, se
generan mltiples seales de control al mismo tiempo. El pipeline de instrucciones, al
menos en lo relativo a la bsqueda y ejecucin de operaciones, ha estado presente durante
mucho tiempo. A medida que ha evolucionado la tecnologa de los computadores y el coste
del hardware ha descendido, los diseadores han visto cada vez ms oportunidades para el
paralelismo, normalmente para mejorar el rendimiento y, en algunos casos, para mejorar la
fiabilidad.
3.2.1 ARQUITECTURA SMP.
Es til ver donde encaja la arquitectura SMP dentro de las categoras de procesamiento
paralelo. La forma ms comn de categorizar estos sistemas es la taxonoma de sistemas de
procesamiento paralelo introducida por Flynn [FLYN72]. Flynn propone las siguientes
categoras de sistemas de computadores:
nica instruccin, nico flujo de datos Single instruction single data (SISD) stream.
Un solo procesador ejecuta una nica instruccin que opera sobre datos almacenados en
una sola memoria.
nica instruccin, mltiples flujos de datos Single instruction multiple data (SIMD)
stream. Una nica instruccin de mquina controla la ejecucin simultnea de un nmero
de elementos de proceso. Cada elemento de proceso tiene una memoria de datos asociada,
de forma que cada instruccin se ejecuta en un conjunto de datos diferente a travs de los
diferentes procesadores. Los procesadores vectoriales y matriciales entran dentro de esta
categora.
Mltiples instrucciones, nico flujo de datos Multiple instruction single data
(MISD) stream. Se transmite una secuencia de datos a un conjunto de procesadores, cada
uno de los cuales ejecuta una secuencia de instrucciones diferente. Esta estructura nunca se
ha implementado.
Mltiples instrucciones, mltiples flujos de datos Multiple instruction multiple data
(MIMD) stream. Un conjunto de procesadores ejecuta simultneamente diferentes
secuencias de instrucciones en diferentes conjuntos de datos.
Con la organizacin MIMD, los procesadores son de propsito general, porque deben ser
capaces de procesar todas las instrucciones necesarias para realizar las transformaciones de
datos apropiadas.
MIMD se puede subdividir por la forma en que se comunican los procesadores (Figura 1.1).
Si cada procesador tiene una memoria dedicada, cada elemento de proceso es en s un
computador. La comunicacin entre los computadores se puede realizar a travs de rutas
prefijadas o bien a travs de redes.
Este sistema es conocido como un cluster, o multicomputador. Si los procesadores
comparten una memoria comn, entonces cada procesador accede a los programas y datos
almacenados en la memoria compartida, y los procesadores se comunican entre s a travs
de dicha memoria; este sistema se conoce como multiprocesador de memoria
compartida.
Una clasificacin general de los multiprocesadores de memoria compartida se basa en la
forma de asignar procesos a los procesadores. Los dos enfoques fundamentales son
maestro/esclavo y simtrico.
Con la arquitectura maestro/esclavo, el ncleo del sistema operativo siempre ejecuta en un
determinado procesador. El resto de los procesadores slo podrn ejecutar programas de
usuario y, a lo mejor, utilidades del sistema operativo. El maestro es responsable de la
planificacin de procesos e hilos. Una vez que un proceso/hilo est activado, si el esclavo
necesita servicios (por ejemplo, una llamada de E/S), debe enviar una peticin al maestro y
esperar a que se realice el servicio. Este enfoque es bastante sencillo y requiere pocas
mejoras respecto a un sistema operativo multiprogramado uniprocesador. La resolucin de
conflictos se simplifica porque un procesador tiene el control de toda la memoria y recursos
de E/S. Las desventajas de este enfoque son las siguientes:
Un fallo en el maestro echa abajo todo el sistema.
El maestro puede convertirse en un cuello de botella desde el punto de vista del
rendimiento, ya que es el nico responsable de hacer toda la planificacin y gestin de
procesos.
En un multiprocesador simtrico (Symmetric Multiprocessor, SMP), el ncleo puede
ejecutar en cualquier procesador, y normalmente cada procesador realiza su propia
planificacin del conjunto disponible de procesos e hilos. El ncleo puede construirse como
mltiples procesos o mltiples hilos, permitindose la ejecucin de partes del ncleo en
paralelo. El enfoque SMP complica al sistema operativo, ya que debe asegurar que dos
procesadores no seleccionan un mismo proceso y que no se pierde ningn proceso de la
cola. Se deben emplear tcnicas para resolver y sincronizar el uso de los recursos.


3.2.2 ORGANIZACIN SMP.
La Figura 1.2 muestra la organizacin general de un SMP. Existen mltiples procesadores,
cada uno de los cuales contiene su propia unidad de control, unidad aritmtico-lgica y
registros. Cada procesador tiene acceso a una memoria principal compartida y dispositivos
de E/S a travs de algn mecanismo de interconexin; el bus compartido es comn a todos
los procesadores. Los procesadores se pueden comunicar entre s a travs de la memoria
(mensajes e informacin de estado dejados en espacios de memoria compartidos). Los
procesadores han de poder intercambiarse seales directamente.
A menudo la memoria est organizada de tal manera que se pueden realizar mltiples
accesos simultneos a bloques separados.
En mquinas modernas, los procesadores suelen tener al menos un nivel de memoria cache,
que es privada para el procesador. El uso de esta cache introduce nuevas consideraciones de
diseo. Debido a que la cache local contiene la imagen de una porcin de memoria
principal, si se altera una palabra en una cache, se podra invalidar una palabra en el resto
de las caches. Para prevenir esto, el resto de los procesadores deben ser alertados de que se
ha llevado a cabo una actualizacin. Este problema se conoce como el problema de
coherencia de caches y se suele solucionar con tcnicas hardware ms que con el sistema
operativo







3.2.3 CONSIDERACIONES DE DISEO DE SISTEMAS OPERATIVOS
MULTIPROCESADOR.
Un sistema operativo SMP gestiona los procesadores y otros recursos del computador, de
manera que el usuario puede ver al sistema de la misma forma que si fuera un sistema
uniprocesador multiprogramado.
Un usuario puede desarrollar aplicaciones que utilicen mltiples procesos o mltiples hilos
dentro de procesos sin preocuparse de s estar disponible un nico procesador o mltiples
procesadores.
De esta forma, un sistema operativo multiprocesador debe proporcionar toda la
funcionalidad de un sistema multiprogramado, adems de caractersticas adicionales para
adecuarse a mltiples procesadores.
Las principales claves de diseo incluyen las siguientes caractersticas:
Procesos o hilos simultneos concurrentes. Las rutinas del ncleo necesitan ser
reentrantes para permitir que varios procesadores ejecuten el mismo cdigo del ncleo
simultneamente. Debido a que mltiples procesadores pueden ejecutar la misma o
diferentes partes del cdigo del ncleo, las tablas y la gestin de las estructuras del ncleo
deben ser gestionas apropiadamente para impedir interbloqueos u operaciones invlidas.
Planificacin. La planificacin se puede realizar por cualquier procesador, por lo que se
deben evitar los conflictos. Si se utiliza multihilo a nivel de ncleo, existe la posibilidad de
planificar mltiples hilos del mismo proceso simultneamente en mltiples procesadores.
Sincronizacin. Con mltiples procesos activos, que pueden acceder a espacios de
direcciones compartidas o recursos compartidos de E/S, se debe tener cuidado en
proporcionar una sincronizacin eficaz. La sincronizacin es un servicio que fuerza la
exclusin mutua y el orden de los eventos. Un mecanismo comn de sincronizacin en los
sistemas operativos multiprocesador son los cerrojos.
Gestin de memoria. La gestin de memoria en un multiprocesador debe tratar con todos
los aspectos encontrados en las mquinas uniprocesador. Adems, el sistema operativo
necesita explotar el paralelismo hardware existente, como las memorias multipuerto, para
lograr el mejor rendimiento. Los mecanismos de paginacin de los diferentes procesadores
deben estar coordinados para asegurar la consistencia cuando varios procesadores
comparten una pgina o segmento y para decidir sobre el reemplazo de una pgina.
Fiabilidad y tolerancia a fallos. El sistema operativo no se debe degradar en caso de
fallo de un procesador. El planificador y otras partes del sistema operativo deben darse
cuenta de la prdida de un procesador y reestructurar las tablas de gestin apropiadamente.
Debido a que los aspectos de diseo de un sistema operativo multiprocesador suelen ser
extensiones a soluciones de problemas de diseo de uniprocesadores multiprogramados.
3.3 MICRONCLEO
Qu es un micro Ncleo?
Para conocer de manera correcta que es un micro ncleo primero debemos saber dos puntos
muy importantes:
1. Modos de operacin del procesador.
2. Modelos del kernel
Modos de operacin del procesador
Para entender los modelos de diseo de los sistemas operativos, tenemos que hacer
referencia a los modos de ejecucin del procesador. El modo de ejecucin del procesador
indica qu conjunto de instrucciones y a qu recursos del procesador se puede acceder en
un cierto instante de tiempo.
En la actualidad, un procesador ofrece como mnimo dos modos de operacin (ejecucin)
que son:
Modo privilegiado (supervisor), que permite la ejecucin de todo el conjunto de
instrucciones que ofrece el procesador (no tiene ninguna relacin con el modo "root" o
administrador de algunos sistemas operativos).
Modo no privilegiado (usuario), que tiene algunas restricciones de acceso a aspectos
del procesador o de ejecucin de instrucciones.
Qu es un modelo de kernel?
El ncleo del sistema operativo, tambin conocido por la terminologa inglesa kernel, es la
parte ms esencial del sistema operativo. Se trata de la capa visible del software ms baja
del sistema que provee y gestiona los recursos del sistema de forma segura a travs de las
llamadas al sistema.
El ncleo de un sistema operativo suele operar en modo privilegiado. Al operar en dicho
modo un error de programacin en el ncleo del sistema operativo puede resultar en un
error fatal del cual el sistema slo puede recuperarse mediante el reinicio del sistema.
Definicin de micro ncleo:
Un concepto que ltimamente est recibiendo mucha atencin es el de microncleo. Un
microncleo es la pequea parte central de un sistema operativo que proporciona las bases
para extensiones modulares.
Sin embargo, el trmino es algo confuso, y hay varias cuestiones relacionadas con los
microncleos con respuestas distintas por parte de diferentes equipos de diseo de sistemas
operativos. Estas cuestiones incluyen, cmo de pequeo debe ser un ncleo para
denominarse microncleo, cmo disear manejadores de dispositivos para obtener el mejor
rendimiento a la vez que se abstraen sus funciones del hardware, si ejecutar operaciones
que no pertenecen al ncleo dentro de ste o en el espacio de usuario, y si mantener el
cdigo de subsistemas existentes (por ejemplo, una versin de UNIX) o empezar de cero.
El enfoque de microncleo se populariz por su uso en el sistema operativo Mach. En
teora este enfoque proporciona un alto grado de flexibilidad y modularidad. Determinados
productos ya tienen implementaciones microncleo, y este enfoque general de diseo se
ver en la mayor parte de los computadores personales, estaciones de trabajo, y sistemas
operativos servidor que se desarrollen en un futuro cercano.
ARQUITECTURA MICRONCLEO
Los primeros sistemas operativos desarrollados a mediados y finales de los aos 50 fueron
diseados sin preocuparse por su arquitectura. Nadie tena la experiencia necesaria en
construccin de sistemas software realmente grande, y los problemas causados por la
dependencia mutua e interaccin no se tenan en cuenta. En estos sistemas operativos
monolticos, de prcticamente cualquier procedimiento se poda llamar a cualquier otro.
Esta falta de estructura se hizo insostenible a medida que los sistemas operativos crecieron
hasta proporciones desmesuradas. Por ejemplo, la primera versin de OS/360 contena ms
de un milln de lneas del cdigo; Multics, desarrollado ms tarde, creci hasta 20 millones
de lneas del cdigo [DENN84]. se necesitaron tcnicas de programacin modular para
manejar esta escala de desarrollo software. Especficamente, se desarrollaron los sistemas
operativos por capas7 (Figura 1.3a), en los cuales las funciones se organizan
jerrquicamente y slo hay interaccin entre las capas adyacentes. Con el enfoque por
capas, la mayor parte o todas las capas ejecutan en modo ncleo.
Los problemas permanecen incluso en el enfoque por capas. Cada capa posee demasiada
funcionalidad y grandes cambios en una capa pueden tener numerosos efectos, muchos
difciles de seguir, en el cdigo de las capas adyacentes (encima o debajo). Como resultado
es difcil implementar versiones a medida del sistema operativo bsico con algunas
funciones aadidas o eliminadas.
Adems, es difcil construir la seguridad porque hay muchas interacciones entre capas
adyacentes.

La arquitectura del microncleo reemplaza la tradicional estructura vertical y estratificada
en capas por una horizontal (Figura 1.3b). Los componentes del sistema operativo externos
al microncleo se implementan como servidores de procesos; interactan entre ellos dos a
dos, normalmente por paso de mensajes a travs del microncleo. De esta forma, el
microncleo funciona como un intercambiador de mensajes: vlida mensajes, los pasa entre
los componentes, y concede el acceso al hardware. El microncleo tambin realiza una
funcin de proteccin; previene el paso de mensajes a no ser que el intercambio est permitido.
Ejemplos de sist. Operativos que usan microncleos.
AIX
AmigaOS
Amoeba
Minix
L4
Netkernel
RaOS
RadiOS
Hurd
MorphOS
NeXTSTEP (algunos lo consideran
un ncleo hbrido)

ChorusOS
QNX
SO3
Symbian
SymbOS
RENDIMIENTO DEL MICRONCLEO
Una potencial desventaja que se cita a menudo de los microncleos es la del rendimiento.
Lleva ms tiempo construir y enviar un mensaje a travs del microncleo, y aceptar y
decodificar la respuesta, que hacer una simple llamada a un servicio. Sin embargo, tambin
son importantes otros factores, de forma que es difcil generalizar sobre la desventaja del
rendimiento, si es que la hay.
Hay mucho que depende del tamao y de la funcionalidad del microncleo. [LIED96a]
resume un nmero de estudios que revelan una prdida sustancial del rendimiento en los
que pueden ser denominados microncleos de primera generacin. Estas prdidas
continan a pesar de los esfuerzos realizados para optimizar el cdigo del microncleo. Una
respuesta a este problema fue hacer mayores los microncleos, volviendo a introducir
servicios crticos y manejadores en el sistema operativo. Los primeros ejemplos de este
enfoque son Mach y Chorus. Incrementando de forma selectiva la funcionalidad del
microncleo se reduce el nmero de cambios de modo usuario-ncleo y el nmero de
cambios de espacio de direcciones de proceso. Sin embargo, esta solucin reduce los
problemas de rendimiento sacrificando la fortaleza del diseo del microncleo: mnimas
interfaces, flexibilidad, etc.
Otro enfoque consiste en hacer el microncleo, no ms grande, sino ms pequeo.
[LIED96b] argumenta que, apropiadamente diseado, un microncleo muy pequeo
elimina las prdidas de rendimiento y mejora la flexibilidad y fiabilidad. Para dar una idea
de estos tamaos, el tpico microncleo de primera generacin tena 300 Kbytes de cdigo
y 140 interfaces de llamadas al sistema.
Un ejemplo de un microncleo pequeo de segunda generacin es el L4 [HART97,
LIED95], que consiste en 12 Kbytes de cdigo y 7 llamadas al sistema. Las
experimentaciones realizadas en estos sistemas indican que pueden funcionar tan bien o
mejor que sistemas operativos por capas como por ejemplo, UNIX.