Sistema operativo

Solo disponible en BuenasTareas
  • Páginas : 5 (1009 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de septiembre de 2012
Leer documento completo
Vista previa del texto
Inversión de la prioridad y el programador de Windows NT

Resumen

El núcleo del programa un subproceso con la clase de prioridad de procesos en tiempo real por delante de todos los subprocesos con otra clase de prioridad (casi todos los subprocesos de modo de usuario). Windows NT no altera la prioridad de subprocesos en tiempo real. El sistema confía en que el programador evitan lainversión de prioridad. El resto de este artículo se habla sobre la programación de subprocesos que no son de clase de prioridad en tiempo real y cómo el sistema resuelva el problema de la inversión de prioridad.

Subprocesos se programan según su prioridad. Cuando el núcleo es elegir el subproceso que se ejecutará en un procesador, se selecciona en el subproceso de la prioridad dinámica (variable) másalto. Inversión de la prioridad se produce cuando dos (o más) de subprocesos con prioridades distintas que se encuentren en contención para ser programado. Considere un caso sencillo con tres subprocesos: subproceso 1 es de alta prioridad y esté preparada para ser programado, mientras se está ejecutando el subproceso 2, un subproceso de baja prioridad, en una sección crítica. Subproceso 1, elsubproceso de alta prioridad, empieza a esperar un recurso compartido desde el subproceso 2. Un tercer subproceso tiene prioridad Media. El tercer subproceso recibe todo el tiempo de procesador, porque el subproceso de prioridad alta (el subproceso 1) está ocupado, esperando a los recursos compartidos desde el subproceso de prioridad baja (subprocesos 2). El subproceso 2 no deje la sección crítica,ya que no es el subproceso de prioridad más alto y no se puede programar.

El programador de Windows NT resuelve este problema incrementando la prioridad de subprocesos que están listos para ejecutarse (en este caso, los propietarios de bloqueos de prioridad baja) de forma aleatoria. Los subprocesos de baja prioridad se ejecutan lo suficientemente largos para soltarlo su bloqueo (salir de lasección crítica) y el subproceso de prioridad alta recibe el bloqueo. Si el subproceso de prioridad baja no obtener suficiente tiempo de CPU para liberar su bloqueo de la primera vez, aparecerá otra oportunidad en la siguiente ronda de programación.

Inversión de la prioridad se controla de forma diferente en Windows 95. Si un subproceso de prioridad alta depende de un subproceso de prioridad bajaque no se pueden ejecutar porque está recibiendo un subproceso de prioridad Media todo el tiempo de CPU, el sistema reconoce que el subproceso de prioridad alta depende en el subproceso de prioridad baja y aumentará la prioridad baja prioridad del subproceso hasta la prioridad del subproceso de prioridad alta. Esto permitirá que el subproceso de prioridad baja anteriormente ejecutar y desbloquearel subproceso de prioridad alta que estaba esperando.

Más información

Cada proceso tiene una prioridad básica. Cada subproceso tiene una prioridad básica que es una función de su prioridad base del proceso. Prioridad de base de un subproceso es posible establecer para:

•1 ó 2 puntos por encima de la base de procesos
•igual a la base de procesos
•1 ó 2 puntos por debajo de la base deprocesos
Configuración de prioridad se expone a través de la API de Win32. Además de una prioridad básica, todos los subprocesos tienen prioridad dinámica. La prioridad dinámica nunca es menor que la prioridad básica. El sistema provoca y disminuye la prioridad dinámica de un subproceso según sea necesario.

Toda la programación se realiza estrictamente por prioridad. El programador elige elsubproceso de prioridad más alto que está listo para ejecutarse. En sistemas multiprocesador (MP), los más altos n puede ejecutables subprocesos ejecutan (donde n es el número de procesadores). La prioridad de subproceso que se utiliza para tomar estas decisiones es la prioridad dinámica del subproceso.

Cuando se programa un subproceso, tiene un quantum de tiempo en que se va a ejecutar....
tracking img