es.phhsnews.com


es.phhsnews.com / ¿Por qué no hay identificadores de proceso de Windows impar-numerados?

¿Por qué no hay identificadores de proceso de Windows impar-numerados?


Si adora jugar con Windows y aprender sobre la marcha, puede haber notado que el proceso de Windows y las ID de subprocesos tienen números pares y múltiplos de cuatro. ¿Porqué es eso? La publicación de preguntas y respuestas SuperUser de hoy tiene las respuestas a las preguntas de un lector curioso.

La sesión de preguntas y respuestas de hoy nos llega cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios de preguntas y respuestas impulsada por la comunidad.

The Question

SuperUser reader Peter Hahndorf quiere saber por qué no hay identificadores de proceso de Windows impares:

Hay muchas maneras de ver los ID de proceso en Windows. Usando PowerShell:

obtengo este resultado:

Como puede ver, todas las identificaciones de proceso tienen números pares, no solo eso, todas son múltiplos de cuatro. Puede mirar tan duro como lo desee y nunca encontrará una ID de proceso con número impar, al menos no en ninguna versión basada en Windows NT. ¿Cuál es la razón de esto?

¿Por qué no hay identificadores de proceso de Windows con número impar?

El contribuidor de Superconductor Answer

DavidPostill tiene la respuesta para nosotros:

¿Por qué no hay un proceso de Windows impar? ¿IDs?

El mismo código que asigna los identificadores de kernel también se usa para asignar identificadores de proceso y de subprocesos. Como los controladores del kernel son múltiplos de cuatro, también lo son los identificadores de procesos y subprocesos.

¿Por qué los identificadores de procesos y subprocesos son múltiplos de cuatro?

En sistemas operativos basados ​​en Windows NT, los identificadores de procesos y subprocesos siempre son múltiples de cuatro. ¿Es solo una coincidencia?

Sí, es solo una coincidencia, y no debes confiar en ella ya que no es parte del contrato de programación. Por ejemplo, el proceso de Windows 95 y las ID de subprocesos no siempre eran múltiplos de cuatro. En comparación, la razón por la que los controladores del kernel son siempre múltiplos de cuatro es parte de la especificación y se garantizará en el futuro previsible.

Las identificaciones de procesos y subprocesos son múltiplos de cuatro como efecto secundario de la reutilización del código. El mismo código que asigna los identificadores de kernel también se usa para asignar identificadores de proceso y de subprocesos. Como los controladores del kernel son múltiplos de cuatro, también lo son los identificadores de proceso y de subprocesos. Este es un detalle de implementación, así que no escriba código que dependa de él. Solo te pido que satisfagas tu curiosidad.

Fuente: ¿Por qué los identificadores de procesos y subprocesos son múltiplos de cuatro?

¿Por qué los manejadores del núcleo son siempre un múltiplo de cuatro?

Algo que no está muy bien es sabido que los dos bits inferiores de los controladores del kernel son siempre cero; en otras palabras, su valor numérico es siempre un múltiplo de cuatro. Tenga en cuenta que esto se aplica solo a los controles del kernel; no se aplica a pseudoasas ni a ningún otro tipo de identificador (identificadores USER, identificadores GDI, manejadores multimedia, etc.). Los manejadores del núcleo son cosas que se pueden pasar a la función CloseHandle.

Que al menos la parte inferior de los manejadores del kernel sean siempre cero está implícito en la función GetQueuedCompletionStatus, que indica que puede establecer el bit inferior del identificador de evento para suprimir la finalización notificación de puerto. Para que esto funcione, el bit inferior normalmente debe ser cero.

Esta información no es útil para la mayoría de los escritores de aplicaciones, que deberían seguir tratando los identificadores como valores opacos. Las personas que estarían interesadas en los bits de etiquetas son aquellos que están implementando bibliotecas de clases de bajo nivel o están envolviendo objetos kernel dentro de un marco más grande.

Fuente: ¿Por qué los manejadores del kernel son siempre un múltiplo de cuatro?

Lectura adicional

Lo viejo: desarrollo práctico a lo largo de la evolución de Windows por Raymond Chen ( Principal ingeniero de diseño de software en Microsoft )


¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios. ¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Consulte el hilo de discusión completo aquí.


Olvídese de las ROM intermitentes: utilice el Framework Xposed para ajustar su Android

Olvídese de las ROM intermitentes: utilice el Framework Xposed para ajustar su Android

Muchos ajustes de bajo nivel normalmente solo se pueden realizar en Android mediante el flasheo de ROM personalizados. Xposed Framework le permite modificar su sistema existente sin instalar una nueva ROM personalizada. Todo lo que se necesita es acceso de root. RELACIONADO: Cómo flashear una nueva ROM en su teléfono Android Claro, es posible que desee flashear una ROM personalizada como CyanogenMod para obtener la última versión de Android o utilizar un amplia variedad de ajustes, pero si te gusta la versión de Android que ya tienes, el framework Xposed es muy flexible.

(how-to)

Cómo enviar iMessages autodestructivos con Confide

Cómo enviar iMessages autodestructivos con Confide

¿Desea algo un poco más efímero que lo que permite la "Invisible Ink" de iMessage? Confide te ayuda a enviar mensajes de autodestrucción que se ven una vez y luego desaparecen para siempre. Cómo funciona Confide en iMessage Como hemos resaltado en nuestra descripción de las funciones de iOS 10 y luego nos sumergimos en nuestra guía de aplicaciones de iMessage, ahora iMessage un ecosistema de aplicaciones que es como una versión en miniatura de la App Store de iOS.

(how-to)