Zusammenfassung der Ressource
HILOS, NÚCLEO Y MICRONÚCLEO
- Todo dispositivo esta compuesto de dos partes fundamentales: HARDWARE y SOFTWARE. El
optimo funcionamiento depende del buen entendimiento entre ambas partes. Para esto existe
un un intermediario, el KERNEL
- EL KERNEL
- La palabra tiene raíces de origen
germano, "kern" = nucleo.
- Posee prioridad al ejecutarse y
facilita el acceso seguro a los
componentes
- En el se encuentran los DRIVERS,
mediante los cuales se gestiona y
controlan por ejemplo: el audio,
WiFi, la pantalla, etc.
- Es la parte mas importante del Sistema
Operativo, toda la comunicacion la hace a
través del Shell, un interprete de
comandos.
- Los procesadores de hace años poseían un
solo núcleo, capaces de procesar una
instrucción por ciclo medidos en
Megahertzios (MHz)
- *A más MHz más
procesos se podrán
hacer por segundo
- Actualmente se tienen procesadores de hasta 8 núcleos,
permitiendo la realización de 8 procesos simultáneamente.
- Se encuentran físicamente en
el procesador.
- SISTEMAS OPERTIVOS
MICROKERNEL
- El micronúcleo es un tipo de núcleo de un sistema
operativo que provee llamadas mínimas para
implementar servicios básicos.
- Su estructura está basada en un núcleo más pequeño
que el núcleo monolítico. Se basa en programación
modular aportando flexibilidad al SO.
- Se encarga de la planificación de hilos, no de
procesos, haciendo posible tener varias tareas.
- *Por tanto el microkernel
planifica todo el código
que corre el sistema.
- Su utilización permite:
- Reducción de la complejidad
- Descentralización de fallos
- Facilita el proceso de creación y
depuración de los controladores de
dispositivos.
- Aporta grandes ventajas:
- Uniformidad de Interfaces
- Disponen de una interfaz
única para las solicitudes
de los procesos
- Extensibilidad
- Su arquitectura consta de capas verticales y son
un servidor fuera del micronúcleo, por lo cual
añadir una nueva capa es más sencillo, a
diferencia de su anterior arquitectura.
- Flexibilidad
- Se puede simplificar reduciendo
características, obteniendo una
implementación más pequeña y
por tanto eficiente.
- Portabilidad
- Para implementarlo en arquitecturas
diferentes solo habría que modificar el
núcleo haciendo más simple su
portabilidad
- Soporte de Sistemas Distribuidos
- Tales como NFS, FTP y otros sistemas
de red haciendo que estos sean
accesibles como un simple directorio.
- Realiza importantes tareas:
- Manipulación de
interrupciones en el
sistema desde dispositivos
físicos.
- Manipula excepciones del
procesador
- Proporciona soporte para
la recuperación de un
sistema con alguna falla
de caída de energía.
- HILOS O THREADS
- Son la unidad de procesamiento más pequeña
que puede ser planificada por un sistema
operativo
- Son simplemente una tarea que
puede ser ejecutada al mismo
tiempo con otra tarea.
- La creación de un nuevo hilo es
una característica que permite a
una aplicación realizar varias
tareas a la vez.
- *Un proceso sigue en ejecución
mientras al menos uno de sus hilos siga
activo. Al terminar dicho proceso se
liberan los recursos usados.
- Constan o es propio de ellos:
- Contador del programa
- Pila de ejecución
- Estado de la CPU (Incluyendo el
valor de los registros)
- Los hilos son independientes, llevan bastante
información de estados e interactúan sólo a
través de mecanismos de comunicación dados
por el sistema.
- Los hilos poseen un estado de
ejecución y pueden sincronizarse
entre ellos para evitar problemas de
compartimiento de recursos
- ESTADOS DE UN HILO
- Los principales son: Ejecución,
Listo y Bloqueado. Como nota, si
un proceso está expulsado de la
RAM, todos sus hilos deberán estar
expulsados pues comparten el
espacio de direcciones del
proceso.
- Cambio de Estados
- Creación
- Cuando se crea un proceso se crea un hilo
para ese proceso. Luego, este hilo puede
crear otros hilos dentro del mismo proceso.
El hilo tendrá su propio contexto y su propio
espacio de la columna, y pasará al final de
los Listos.
- Bloqueo
- Cuando un hilo necesita esperar por un suceso, se bloquea
(salvando sus registros de usuario, contador de programa y
punteros de pila). Ahora el procesador podrá pasar a ejecutar
otro hilo que esté en el final de los Listos mientras el anterior
permanece bloqueado.
- Desbloqueo
- Cuando pasa el suceso por el que el
hilo se bloqueó, el mismo pasa a la
final de los Listos.
- Terminación
- Cuando un hilo finaliza se
liberan tanto su contexto
como sus columnas.
- Generalmente cada hilo
tiene una tarea
determinada, como forma
de aumentar la eficiencia
del uso del procesador.
- Hilos de Nivel Usuario
- o User level Threads, ULT. Son
implementados en alguna
librería. Estos hilos se gestionan
sin soporte del SO, el cual solo
reconoce un hilo de ejecución.
Los ULT tienen como beneficio
que su cambio de contexto es
más sencillo que el cambio de
contexto entre los KLT.
- Hilos de Nivel Núcleo
- o Kernel level threads, KLT.
Conocidos también como hilos
soportados por el núcleo (Kernel
supported threads) mayormente
usado en Lightweight process
(procesos ligeros)
- VENTAJAS DE LOS HILOS CONTRA LOS PROCESOS
- Se tarda mucho menos tiempo
en crear un hilo nuevo en un
proceso existente que en crear
un proceso.
- Se tarda mucho menos en
terminar un hilo que un proceso,
ya que cuando se elimina un
proceso se debe eliminar el BCP
del mismo, mientras que un hilo
se elimina su contexto y pila.
- Se tarda mucho menos tiempo en
cambiar entre dos hilos de un mismo
proceso
- Los hilos aumentan la eficiencia de la comunicación entre
programas en ejecución. Si hay una aplicación que debe
implementarse como un conjunto de unidades de ejecución
relacionadas, es más eficiente hacerlo con una colección de hilos
que con una colección de procesos separados.
- PROGRAMAS, PROCESOS E HILOS
- Los hilos de un Proceso
- Denominados subprocesos en los
SO. Un hilo es la unidad de ejecución
de un proceso.
- Se puede dividir el proceso en
subprocesos y cada uno de ellos
será un hilo de ejecución
- Si se tienen procesos multi-hilo, estos
podrán dividirse en varios trozos, y cada uno
de esos hilos comparte los recursos
asignados al proceso. Por eso la ejecución en
múltiples hilos es más eficiente
- DIFERENCIA ENTRE GPU Y CPU
- La CPU y la GPU son dos procesadores
principales que existen en todo PC, el
primero se encarga de todo tipo de tareas
mientras que el segundo está especializado
en los gráficos, ambos están formados por
los mismos elementos básicos.
- Una GPU esté optimizada para procesar
grandes cantidades de datos y realizar las
mismas operaciones específicas una y otra
vez. Una GPU es capaz de ejecutar miles de
programas a la vez, pero mucho más
específicos que los que puede manejar una
CPU.
- Diferencias entre la arquitectura de ambos componentes