Aplicaciones | semáforo o baja sobrecarga spinlock bloqueo gratis (zona crítica tiempo de ejecución más rápida)
preferencia de giro de bloqueo
bajo bloqueo en cabeza (ejecución sección crítica por un largo tiempo)
preferencia del semáforo
región crítica podría contener código
causa del sueño no puede elegir un bloqueo de bucle, se puede seleccione el semáforo area la crítica se encuentre en un contexto no-proceso, esta vez no puede dormir
cerraduras preferencia de giro, incluso si selecciona semáforos sólo se puede utilizar
down_trylock no bloqueando de manera
cuatro bloqueos de giro y el proceso del núcleo de Linux Discutimos la programación de la relación
Caso 3 de 1-1 en la siguiente tabla (en varios otros casos más fáciles de entender), si la región crítica podría contener código que hace que el sueño no se puede utilizar un bloqueo de bucle, puede causar un punto muerto. Entonces, ¿por
cantidad de código de protección de señal puede dormir bloqueos de giro no pueden hacer? Qué buscar en la aplicación de la barra de bloqueo de giro, sigue sustancialmente la forma de bloqueo de giro:
spin_lock (& mr_lock); //región spin_unlock crítico (&mr_lock);
Realizar un seguimiento de spin_lock (& mr_lock) aplicación
#define spin_lock (bloquear) _spin_lock (bloquear)
#define _spin_lock (bloquear) __LOCK (bloqueo)
__LOCK #define (bloqueo) \\
do {preempt_disable (); __acquire (bloqueo); (void) (bloquear);} while (0)
observado y " preempt_disable () y ", esta función se llama y " fuera y " preferencia; (derecho de prioridad se volverá a abrir en spin_unlock in). Como puede verse, el uso de bloqueos de giro para proteger el área de trabajo se encuentra en un estado no preferente; ni siquiera quedan atrapados en y " Spin " también desactivar el sobreseimiento de estado. Sabiendo esto, creo que debemos ser capaces de entender por qué el bloqueo de bucle para proteger el código no puede dormir. Imagínese, si duerme en medio de un bloqueo de bucle para proteger el código, entonces el proceso de programación se produce, puede ser otro proceso llama a esto la protección spinlock código de nuevo. Y ahora sabemos aún menos que en la adquisición de cerraduras y " Spin " estado, también está prohibido para aprovechar, y " Spin " y dinámica, no va a dormir, y que está en el procesador en no habrá proceso programado para ocurrir, a continuación, se produce un interbloqueo de forma natural.
podemos resumir las características de los siguientes bloqueos de giro: Read l solo procesador no preferente núcleo: bloqueos de giro se ignoran en tiempo de compilación;
l solo procesador de núcleo de preferencia en: Auto cerrojos giratorios provistos sólo como un interruptor kernel preventiva; el multiprocesador
l: esta vez para desempeñar plenamente el papel de bloqueo de giro del núcleo de bloqueo de giro está diseñado para evitar que múltiples procesadores al mismo tiempo acceder a una crítica zona, para evitar la competencia provocada por tanteo núcleo.
cinco, Linux
aprovechar el momento de aprovechar la Linux pasó la última vez ocurrió en la comprensión, aprovechar apoderarse dividido en usuario y la preferencia del núcleo.
usuario preemption generada en los siguientes casos:
l llamada para regresar al espacio de usuario
l de retorno desde el controlador de interrupción
preemption espacio
usuario kernel se producirá en el sistema:
l espacio del núcleo, al regresar del controlador de interrupción cuando el núcleo tiene el tiempo y de preferencia; l de
de nuevo cuando el código del núcleo que tiene el tiempo de tanteo.
(Tales como: spin_unlock)
l Si la tarea central de una llamada explícita a schedule ()
l Si la tarea está bloqueada en el núcleo.
planificación de procesos
básico es lo que ha sucedido después de la interrupción de reloj, y el proceso de descubrimiento se ha utilizado durante porción de tiempo,
proceso tiene lugar de preferencia. Por lo general, vamos a utilizar controlador de interrupciones Devuelve el espacio del núcleo de tiempo puede ser núcleo de preferencia esta función para mejorar la cantidad en tiempo real de las operaciones de E /S, tales como: ¿Cuándo eventos de E /S es el tiempo, el manejador de interrupción correspondiente se activa cuando se encontró que el proceso mientras se espera para el evento de e /S, se activa el proceso de espera, y conjunto del indicador need_resched Actualmente proceso en ejecución, de modo que una interrupción cuando los rendimientos de controlador, se activa el programador, esperando la original para I /O curso de los acontecimientos (lo más probable) para obtener el derecho a realizar, garantizando así una respuesta relativamente rápida a eventos de E /S (milisegundos). Como puede verse, cuando se produce el evento I /O, el procedimiento de procesamiento de eventos de E /S se adelanta el proceso actual, independientemente de la duración de la velocidad de respuesta del sistema de rebanada programación de tiempo.
Noticias de Computer Shop: ¿Recuerdas que Steam está listo para salir? Ahora hay nuevas noticias: es
Para el entretenimiento, decidí iniciar un servidor Linux, luego ejecutar el comando " rm &
Descripción del problema Solución Analice el motivo, tal vez porque la migració
Mono es un marco de desarrollo .NET de código abierto y multiplataforma. Soporte para sistemas Lin
compilación de GCC parte de la información incrustada
Introducción a la instalación de software Linux
Linux sistema de visualización de chino confuso cómo hacerlo?
Administración y mantenimiento del sistema Linux - comando gzip /gunzip
estudio en profundidad tasa de barniz de aciertos de caché de
Sincronización en el kernel de Linux Knowledge
Análisis de mecanismo de implementación de prioridad de kernel de Linux
Sistema de limpieza de registro de LINUX
Windows Server 2008 Virtualization Feature Resolution
QQ Pinyin versión de la utilización de pura grieta realización
¿Cómo recuperar la pérdida de la tabla de particiones Win7?
Disco duro móvil no se puede abrir ¿Cómo resolver?
Microsoft confirmó que ha deshabilitado todas las claves de vista previa de Win10
Microsoft corrige un error no reconocido de USB en Win7 SP1
No es necesario formatear el disco U FAT32 a formato NTFS tutorial
¿Cómo ver la configuración de la tarjeta de video win10? El sistema