# data[].attributes.attachment_link.description
Procesos Ligeros: Hilos o Hebras Un proceso ligero es una unidad básica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Com...

# data[].attributes.attachment_link.readable_text
Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros.Dentro de un proceso puede haber uno o más hilos de control cada uno con:Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se tarda menos tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo, y en hacer un cambio de contexto entre hilos de un mismo proceso. Al someter a un mismo proceso a varios flujos de ejecución se mantiene una única copia en memoria del código, y no varias.Figura 1 Procesos ligerosFigura 2 Tareas con una y varias hebrasFigura 3 Estados de los Procesos ligeros
Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a través de uno o más programas. Esta ejecución se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecución, listo, etc) y una prioridad de expedición u origen. La unidad planificada y expedida por el sistema operativo es el proceso.

Diferencia entre Proceso e Hilo

Un proceso es una entidad relativamente independiente que dispone de su propio espacio de direcciones, su propia información de estado y que utiliza los mecanismos de comunicación entre procesos que le proporciona el sistema operativo para comunicarse con otros procesos.

Un ejemplo de aplicación que podría hacer uso de los hilos es un servidor de ficheros de una red de área local. Cada vez que llega una solicitud de una operación sobre un fichero, se puede generar un nuevo hilo para su gestión. El servidor gestiona multitud de solicitudes, por tanto, se pueden crear y destruir muchos hilos en poco tiempo para dar servicio a estas peticiones. Si el servidor es un multiprocesador, se pueden ejecutar varios hilos de un mismo proceso simultáneamente y en diferentes procesadores.

Estado de los procesos ligeros

Un proceso ligero puede estar ejecutando, listo o bloqueado .

Paralelismo

Los procesos ligeros permiten paralelizar una aplicación.

Figura 4 Paralelismo

Procesos ligeros

Un proceso ligero (thread o hebra) es un programa en ejecución que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros.

Los procesos ligeros son una unidad básica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Comparte el código, los datos y los recursos con sus hebras pares

Una tarea (o proceso pesado) está formada ahora por una o más hebras

Una hebra sólo puede pertenecer a una tarea

CARACTERISTICAS

Por otro lado, un hilo es una entidad más reducida capaz de convivir junto a otros hilos bajo el contexto de un único proceso, permitiendo compartir la información de estado, el área de memoria y/o los recursos asociados a ese proceso.

En la mayoría de los sistemas operativos, estas dos características son, de hecho, la esencia de un proceso. Sin embargo, son independientes, y pueden ser tratadas como tales por el sistema operativo. Esta distinción ha conducido en los sistemas operativos actuales a desarrollar la construcción conocida como thread, cuyas traducciones más frecuentes son hilo, hebra y proceso ligero. Si se tiene esta división de características, la unidad de asignación de la CPU se conoce como hilo, mientras que a la unidad que posee recursos se le llama proceso .

Un estado de ejecución (en ejecución, listo, bloqueado).|

Un contexto de procesador, que se salva cuando no esté ejecutándose.

Una pila de ejecución.

Algún almacenamiento estático para variables locales.

Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.

Se comparten recursos. La compartición de la memoria permite a las hebras pares comunicarse sin usar ningún mecanismo de comunicación inter-proceso del SO.

La conmutación de contexto es más rápida gracias al extenso compartir de recursos

No hay protección entre las hebras. Una hebra puede escribir en la pila de otra hebra del mismo proceso

Otro ejemplo decaso en el que son útiles los hilos es el de los navegadores de la World Wide Web, como Netscape y Mosaic. Muchas páginas Web contienen múltiples imágenes pequeñas. Para cada imagen de una página Web, el navegador debe establecer una conexión individual con el sitio de la página de casa y solicitar la imagen. Se desperdicia una gran cantidad de tiempo estableciendo y liberando todas estas conexiones. Si tenemos múltiples hilos dentro del navegador, podemos solicitar muchas imágenes al mismo tiempo, acelerando considerablemente el rendimiento en la mayor parte de los casos, ya que en el caso de imágenes pequeñas el tiempo de preparación es el factor limitante, no la rapidez de la línea de transmisión.

Entre los elementos que son distintos para cada hilo están el contador de programa, los registros y el estado. El contador de programa se necesita porque los hilos, al igual que los procesos, pueden suspenderse y reanudarse. Los registros se necesitan porque cuando los hilos se suspenden sus registros deben guardarse. Por último, los hilos, al igual que los procesos, pueden estar en los estados de ejecutándose, listo o bloqueado.

# data[].attributes.attachment_link.title
2.3 Procesos ligeros: Hilos o hebras - Materia SisOperativos

# data[].attributes.attachment_link.description
Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros.Dentro de un proceso puede haber uno o más hilos de control cada uno con:Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se tarda menos tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo, y en hacer un cambio de contexto entre hilos de un mismo proceso.

# data[].attributes.body
Ayuda a almacenar el contexto de un proceso, subproceso o estado, al que se puede acceder en el mismo punto cuando se vuelve a cargar. Además, permite que múltiples procesos compartan la misma CPU en un solo momento dado, lo que la convierte en una función multitarea.

# data[].attributes.attachment_link.readable_text
¿Alguna vez se ha preguntado cómo un procesador multitarea maneja demasiados procesos simultáneamente, y cuando regresa a cualquier contexto, comienza desde el mismo punto donde lo dejó?

Esto se debe a que el cambio de contexto en el sistema operativo ayuda a almacenar el contexto de un proceso, subproceso o estado, al que se puede acceder en el mismo punto cuando se vuelve a cargar. Además, permite que múltiples procesos compartan la misma CPU en un solo momento dado, lo que la convierte en una función multitarea.

¡Tomemos un escenario!

Hay situaciones en las que el mecanismo del sistema operativo debe restaurarse a algún otro estado, como un estado listo o un estado de bloque de espera. Cuando se debe realizar una operación de E / S en particular durante la fase de operación, el proceso debe retirarse y colocarse en la cola de E / S.

El método también puede utilizar un algoritmo por turnos, en el que el proceso debe volver al estado listo después de cualquier cantidad de tiempo establecida. Esta transición de método se logra mediante el cambio de contexto.

Cambio de contexto en el sistema operativo
El cambio de contexto en los sistemas operativos permite que varios procesos compartan una sola CPU. Ayuda a almacenar el estado de las tareas de cada proceso para que puedan reanudarse desde el estado en el que se dejaron.
En palabras más simples, es un proceso que implica cambiar entre procesos por una CPU y volver a esas funciones con el mismo estado.

¿Cómo se realiza el cambio de contexto?
Fuente de imagen
Cuando tiene lugar el cambio entre varias tareas, un sistema hace lo siguiente:

El sistema almacena el estado del proceso en ejecución anterior en registros y asigna la CPU a un nuevo proceso.

Durante el tiempo de ejecución de un nuevo proceso, el sistema hace que el anterior espere en una cola lista.

Cuando se requiere reanudar la implementación del proceso anterior, la CPU lo abre al mismo tiempo que fue interrumpido por otro proceso.

Si la CPU no guarda el estado del proceso, su ejecución comenzará desde la primera etapa. Sin embargo, el cambio de contexto permite que el sistema operativo cambie entre procesos, los almacene y recargue, y lleve a cabo tareas cuando sea necesario.

Activadores de cambio de contexto

A continuación se muestran los tres factores desencadenantes importantes del cambio de contenido:

1. Multitarea: Se pueden ejecutar múltiples procesos en un entorno multitarea desde la CPU. Esto conserva el estado del proceso anterior y carga el estado del nuevo proceso. Además, el programador en un dispositivo de protección apaga los procesos.

2. Manejo de interrupciones: El cambio de contexto es necesario cuando la CPU interrumpe un proceso para obtener datos del disco leídos.

3. Cambio de kernel / usuario: Ayuda a cambiar entre el modo Kernel y el modo Usuario.

Demostración en video
Conclusión

Para realizar múltiples tareas, es decir, multiprogramación y tiempo compartido, se utiliza la conmutación de contexto. La multitarea da a los usuarios la sensación de que se realizan más de una tarea al mismo tiempo. Sin embargo, técnicamente, un procesador solo realiza una tarea en un momento determinado. En este caso, el cambio de contexto es tan rápido que la CPU ejecuta varios procesos simultáneamente, lo que hace que los usuarios se sientan como en multitarea.

¡Salud a la multitarea!

.

# data[].attributes.attachment_link.title
Cambio de contexto en el sistema operativo ⋆ Aprende a Programar Gratis

# data[].attributes.attachment_link.description
¿Alguna vez se ha preguntado cómo un procesador multitarea maneja demasiados procesos simultáneamente, y cuando regresa a cualquier contexto, comienza desde el mismo punto donde lo dejó? Esto se debe a que el cambio de contexto en el sistema operativo ayuda a almacenar el contexto de un proceso, subproceso o estado, al que se puede [...]

# data[].attributes.body
Identificador de proceso: Es asignado por el sistema operativo ,a cada proceso como un valor numérico(ID), el cual es usado para ubicar el proceso dentro de la tabla de procesos.

Estado del proceso:

-Ejecución, es un proceso que está            uso del procesador.

-Bloqueado:  No puede ejecutarse hasta que un evento externo sea llevado a cabo.

-Listo: ha dejado disponible al procesador para que otro proceso pueda ocuparlo.

Prioridad: Define el orden en que se ejecutaran  los procesos , según su importancia.

Recursos: Son los herramientas usadas por el sistema operativo, las cuales tienen la función de permitir que el software y el hardware trabajen en conjunto, para que así la ejecución del proceso sea optima.

Planificación : Se refiere a cómo de prioritarios son el resto de los procesos, y es el evento por el cual el proceso va a esperar mientras está bloqueado. Solo en caso de que se use dicho algoritmo para planificación de CPU.

# data[].attributes.body
Es un registro especial donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular.

# data[].attributes.body
Modelo de 5 estados.

# data[].attributes.attachment_link.description
SISTEMAS OPERATIVOSmodelo de procesamiento de 5 estadosIng. Juan Paúl "El Pulpo Pul" Vargas

# data[].attributes.body
Un sistema operativo multitarea, es aquél que le permite al usuario estar realizando varias labores al mismo tiempo.

Es común encontrar interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.

# data[].attributes.body
-Son aquellos que solo permiten una tarea a la vez por el usuario.

Puede darse el caso de un sistema multiusuario y monotarea,

en el cual se admiten varios usuarios, pero cada uno de ellos

puede estar haciendo una tarea.

Ejemplos:
-Windows me
-Windows 98
-Windows xp