Kernel Métodos de sincronización

Mutex:

—– mutex se utiliza normalmente para serializar el acceso a una sección de ; re-entrante de código que no se puede ejecutar simultáneamente por más de un hilo. Un objeto mutex sólo permite un hilo en una sección controlada, forzando a otros temas que tratan de acceder a esa sección que esperar hasta que el primer hilo ha salido de esa sección. «

Un mutex se bloquea mecanismo que se utiliza para sincronizar el acceso a un recurso. Sólo una tarea (puede ser un subproceso o proceso basado en la abstracción OS) puede adquirir el mutex. Esto significa que no habrá propiedad asociado con exclusión mutua, y sólo el propietario puede liberar el bloqueo (mutex) .

A «mutex» (o «bloqueo de exclusión mutua») es una señal de que dos o más procesos asíncronos pueden usar para reservar un recurso compartido para su uso exclusivo. El primer proceso que hayan comprado, el «mutex», también obtiene la propiedad del recurso compartido Otros procesos deben esperar para el primer proceso para liberar es propiedad de la «mutex» antes de que puedan intentar obtener
Semophores:..
– ——–
«Un semáforo restringe el número de usuarios simultáneos de un recurso compartido, hasta un número máximo. Los temas pueden solicitar el acceso a los recursos (decrementar el semáforo), y pueden ser señal de que han terminado de utilizar el recurso (incrementando el semáforo). «

Semáforo está señalando mecanismo (» Ya he terminado, usted puede continuar «tipo de señal). Por ejemplo, si está escuchando canciones (asumirla como una tarea) en tu móvil y, al mismo tiempo que su amigo le llamó, una interrupción se disparará en los que una rutina de servicio de interrupción (ISR) señalará la tarea de procesamiento de llamadas de despertador.

Los semáforos en Linux están durmiendo cerraduras. porque causan una tarea que dormir en la contención, en lugar de girar, que se utilizan en situaciones en las que el tiempo de bloqueo sostenido de mayo ser largas. A la inversa, ya que tienen la sobrecarga de poner una tarea a dormir y luego despertar para arriba, no deben ser utilizados cuando el tiempo de bloqueo sostenido es corto. Desde duermen, sin embargo, pueden ser usados ​​para sincronizar contextos de usuario . mientras que los spinlocks no puedo decir, es seguro para bloquear mientras sostiene un semáforo
Preguntas generales:.

—————- 1 . ¿Puede un hilo de adquirir más de una cerradura (Mutex)?

Sí, es posible que un hilo podría no ser en la necesidad de más de un recurso, de ahí las cerraduras. Si alguno de los seguros no se dispone de la thread esperará (bloque) en la cerradura.

2. ¿Puede un mutex bloqueado más de una vez?

Un mutex es un bloqueo. Sólo un estado (bloqueado / desbloqueado ) se asocia con él. Sin embargo, un mutex recursivo se puede bloquear más de una vez (sistemas de denuncia POSIX), en la que una cuenta se asocia con él, sin embargo, conserva sólo un estado (bloqueado / desbloqueado). El programador tiene que desbloquear el mutex como muchas veces de número, ya que estaba cerrada con llave.

3. ¿Qué pasará si un mutex no recursiva está bloqueado más de una vez.

Deadlock. Si un hilo que ya habían bloqueado un mutex, intenta bloquear el mutex de nuevo, se entra en la lista de espera de esa exclusión mutua, lo que se traduce en un punto muerto. Esto se debe a que ningún otro flujo puede desbloquear el mutex. Un implementador sistema operativo puede actuar con diligencia en la identificación del propietario del mutex y volver si ya está bloqueado por mismo hilo para evitar que ocurran otros.

4. Son semáforo binario y mutex mismo?

No. Vamos a sugerir a tratarlos por separado, como se explicó señalización vs mecanismos de bloqueo. Pero un semáforo binario puede experimentar los mismos problemas críticos (por ejemplo, la inversión de prioridad) asociados con mutex. Cubriremos estos artículo posterior.

Un programador puede preferir mutex en lugar de crear un semáforo con la cuenta 1. />
5. ¿Qué es un mutex y sección crítica?

Algunos sistemas operativos utilizan la misma palabra sección crítica en el API. Normalmente un mutex es costoso operación debido a protocolos de protección asociados. Finalmente, el objetivo de la exclusión mutua es el acceso atómico. Hay otras maneras de lograr el acceso atómica como deshabilitar las interrupciones que pueden ser mucho más rápido, pero ruinas de respuesta. La API alternativa hace uso de las interrupciones incapacitantes.

6. ¿Cuáles son los eventos?
La semántica de mutex, semáforos, eventos, sección crítica, etc … son los mismos. Todos son primitivas de sincronización. Sobre la base de su costo en el uso de ellos son diferentes. Deberíamos consultar la documentación del sistema operativo para los detalles exactos.
7. Se Podemos adquirir mutex / semáforo en una rutina de servicio de interrupción?

Un ISR se ejecutará de forma asincrónica en el contexto del hilo actual en ejecución. no se recomienda para consultar (bloqueo de llamadas) la disponibilidad de primitivas de sincronización en un ISR. El ISR se significan ser corto, la llamada a mutex / semáforo puede bloquear el subproceso de ejecución actual. Sin embargo, un ISR puede ser señal de un semáforo o desbloquear un mutex .

8. ¿Qué queremos decir con «hilo bloqueando el mutex / semáforo» cuando no están disponibles?

Cada primitiva de sincronización tendrá lista de espera asociado a él. Cuando el recurso no está disponible, el hilo que solicita se moverá de la lista de ejecución de procesador a la lista de espera de la sincronización primitivo. Cuando el recurso está disponible, mayor será subproceso de prioridad en la lista de espera obtener recursos (más exactamente, depende de las políticas de planificación).

9. ¿Es necesario que un hilo debe bloquear siempre que los recursos no está disponible?

No necesariamente. Si el diseño está seguro «lo que tiene que hacerse cuando los recursos no está disponible ‘, el hilo puede durar hasta que el trabajo (una rama de código diferente). Apoyar requisitos de las aplicaciones del sistema operativo proporciona API de no bloqueo.

Por ejemplo POSIX pthread_mutex_trylock () de la API . Cuando el mutex no está disponible la función devolverá inmediatamente en tanto que la pthread_mutex_lock API () bloqueará el hilo hasta el recurso está disponible

Spinlock:.
——–
El bloqueo más común primitiva en el kernel es el
spinlock. El spinlock es una muy simple bloqueo de un solo titular.
Si un proceso intenta adquirir un bloqueo por bucle y es
. disponible, el proceso va a seguir intentándolo (spinning) hasta que
se puede adquirir el bloqueo Esta simplicidad crea un pequeño y
bloqueo rápido

Punto muerto:.
– ——
Un conjunto de procesos bloqueados cada uno con un recurso y esperando para adquirir un recurso en manos de otro proceso en el conjunto de condiciones necesarias

Una situación de bloqueo sólo puede existir si todos de las siguientes condiciones se cumplen de manera simultánea en un sistema:
Exclusión Mutua:. Al menos uno de los recursos debe ser no compartible [1] Sólo un proceso puede usar el recurso en un momento dado de tiempo
Espera y. Espera o Holding del recurso: actualmente un proceso mantiene al menos un recurso y solicitar los recursos adicionales que se están celebrando por otros procesos
No Preemption: El sistema operativo no debe desasignar recursos una vez que han sido asignados, sino que debe hacerlo. . ser liberado por el proceso de participación voluntaria
Espera Circular:. Un proceso debe estar esperando por un recurso que se está celebrando por otro proceso, que a su vez está a la espera para el primer proceso para liberar el recurso En general, no es un conjunto de procesos en espera, P = {P1, P2, …, PN}, de modo que P1 está esperando un recurso retenido por P2, P2 está a la espera de un recurso en manos de P3 y así sucesivamente hasta PN está esperando un . recurso retenido por P1 [1] [7]

Prevención:
———– prevención Deadlock />


——- — inanición />
El hambre es causada generalmente por una excesivamente . algoritmo de planificación simplista El algoritmo de planificación, que es parte del kernel, se supone que debe asignar los recursos de manera equitativa;., es decir, el algoritmo debe asignar recursos para que ningún proceso carece perpetuamente recursos necesarios, por ejemplo, si un (no muy bien diseñado) sistema multi-tarea siempre se alterna entre las dos primeras tareas, mientras que un tercio no llega a funcionar, entonces la tercera tarea está muerto de hambre de tiempo de CPU. />

—— ——–
El conflicto de intercambio de recursos y kernel preventiva son la razón principal de la prioridad inversion.There son 2 tipo de de inversión de prioridades que ese están acotadas e Inversión Unbounded. Examinaremos paso a . intensificar el proceso de utilización de recurso compartido y luego explicar la inversión de prioridades

Inversion Delimitada:
—————- –
Hay una tarea de prioridad baja (LPT) que se ejecuta y se cerró la tarea de alta prioridad resource.The (HPT) appear.The LPT será preventiva por la HPT, que es la característica de núcleo preferente . Pero la LPT no libera el recurso, el HPT requiere de recursos para ello está executing.In esta situación, el programador tiene que poner la HPT en estado de espera y LPT en runing estado hasta que la liberación LPT (desbloquear) el recurso, entonces el HPT puede continuar ejecutando

Unbounded Inversion ——————–
El problema se vuelve peor si durante el tiempo de que la espera HPT, LPT se está ejecutando y LPT bloqueo del recurso, que es parece la tarea de prioridad media (MPT). No MPT solicitud de recursos, y se va de Preferencia La LPT. La LPT tiene que esperar hasta MPT terminado, y continúa funcionando después suelte el recurso a la HPT. Pero no sabemos exactamente cuando el MPT terminado y MPT puede ejecutar forever.The situación ahora, la LPT espera de MPT terminado y no se puede desbloquear recursos para HPT, el HPT esperando recursos fot de LPT, el MPT funcionamiento . desconocido

Filesyste:

——— Un sistema de archivos (o sistema de archivos) es un medio para organizar los datos que se espera sean retenidos después de un programa termina proporcionando procedimientos para almacenar, recuperar y actualizar los datos, así como gestionar el espacio disponible en el dispositivo (s) que lo contiene. Un sistema de archivos organiza los datos de una manera eficiente y está sintonizado a las características específicas del dispositivo. Una apretada acoplamiento normalmente existe entre el sistema operativo y el sistema de archivos. Algunos sistemas de archivos ofrecen mecanismos para controlar el acceso a los datos y metadatos. Garantizar la fiabilidad es una responsabilidad principal de un sistema de archivos. Algunos sistemas de ficheros permiten que varios programas para actualizar el mismo archivo casi al mismo tiempo .
1) En una computadora, un sistema de archivos (sistema de archivos a veces se escribe) es la manera en la que los archivos se llaman y dónde están colocados lógicamente para el almacenamiento y recuperación de información. El DOS, Windows, OS / 2, Macintosh y los sistemas operativos basados ​​en UNIX tienen sistemas de archivos en el que los archivos se colocan en algún lugar en un (árbol) estructura jerárquica. Un archivo se coloca en un directorio (carpeta en Windows) o subdirectorio en el lugar deseado en la estructura de árbol.

Los sistemas de archivos especifican las convenciones para nombrar archivos. Estos convenios incluyen el número máximo de caracteres en un nombre, que se pueden usar caracteres, y, en algunos sistemas, el tiempo que puede ser el nombre del archivo sufijo. Un sistema de archivos también incluye un formato para especificar la ruta de acceso a un archivo a través de la estructura de directorios.

2) A veces el término se refiere a la parte de un sistema operativo o un programa añadido de que es compatible con un sistema de archivos como se define en (1). Ejemplos de tales sistemas de complemento en el archivo incluyen el Sistema de archivos de red (NFS) y el sistema de archivos Andrew (AFS).

3) En la jerga especializada de los profesionales de almacenamiento, un sistema de archivos es el hardware que se utiliza para el almacenamiento no volátil, la aplicación de software que controla el hardware y la arquitectura, tanto del hardware como del software. />

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ dispositivos Plataforma />

puentes de acogida a los autobuses periféricos, y la mayoría de los controladores integrados
en las plataformas de sistema en un chip. Lo que por lo general tienen en />
ser conectado a través de un segmento de unos otro tipo de bus, pero sus registros />

.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *