Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué es exactamente un identificador de Windows?

¿Qué es exactamente un identificador de Windows?

Los identificadores son la base de toda la programación de Windows. Un identificador se refiere a un valor entero único, es decir, un valor de cuatro bytes de longitud, que se utiliza para identificar diferentes objetos en la aplicación y diferentes instancias de objetos similares, como una ventana, botón, icono, barra de desplazamiento, dispositivo de salida, control. o archivo, etc. La aplicación puede acceder a la información del objeto correspondiente a través del identificador, pero el identificador no es un puntero y el programa no puede utilizar el identificador para leer directamente la información del archivo. Si el identificador no se utiliza en el archivo de E/S, es inútil. Un identificador es un número entero único utilizado por Windows para marcar la creación o el uso de una aplicación. Windows utiliza una gran cantidad de identificadores para marcar muchos objetos.

La razón por la que Windows necesita configurar identificadores se debe fundamentalmente al problema del mecanismo de administración de memoria: la dirección virtual, en resumen, es necesario cambiar la dirección de los datos. para registrar el cambio de gestión (al igual que lo mismo que la gestión de registro de hogares), por lo que el sistema utiliza identificadores para registrar cambios en las direcciones de datos.

Después de cargar el objeto de datos en la memoria, obtiene la dirección, pero esta dirección no es fija (en cuanto a por qué y bajo qué circunstancias cambia, es necesario estudiar el principio y el mecanismo de lo virtual. direcciones Solo mencionaré esto aquí. Ejemplos que seguramente conoceremos) Los objetos de datos se moverán entre la memoria y el disco duro según sea necesario (por ejemplo, los datos que se usan con poca frecuencia cederán el espacio de memoria ocupado por los datos de uso común y luego se eliminarán). en la memoria virtual del disco duro para optimizar la configuración general de los recursos del sistema (mejorando así la eficiencia y el rendimiento), por lo que su dirección física siempre cambia. Como administrador, debe estar plenamente consciente de los cambios en los objetos administrados. el sistema asigna una dirección fija (identificador) al proceso para almacenar el proceso. La dirección modificada del objeto de datos también es la dirección actual. De hecho, el mecanismo de diseño es muy simple: después de que un departamento en el sistema mueve la dirección del. objeto, se informa al gerente del departamento al que pertenece el identificador y el gerente escribe los cambios en el identificador. Cuando se reutilicen los datos, basta con ir al identificador al que pertenecen y acceder a él según el contenido.

Handle, inglés: HANDLE, es un concepto muy importante en la programación de Windows y juega un papel importante en muchos lugares. Pero los conceptos de identificadores resultantes también son similares. Por ejemplo, el concepto de identificadores en el libro "Microsoft Windows 3 Developer's Workshop" (Microsoft Press, de Richard Wilton) es: En el entorno de Windows, los identificadores se utilizan para identificar proyectos.

En programación, un identificador es un puntero inteligente especial. Cuando una aplicación quiere hacer referencia a bloques de memoria u objetos administrados por otros sistemas (como bases de datos y sistemas operativos), se utilizan identificadores.

La diferencia entre un identificador y un puntero ordinario es que el puntero contiene la dirección de memoria del objeto referenciado, mientras que el identificador es un identificador de referencia administrado por el sistema, que puede reubicarse en una dirección de memoria mediante el sistema. Este modo de acceso indirecto a objetos mejora el control del sistema sobre el objeto al que se hace referencia.

En la gestión de la memoria de los sistemas operativos (como Mac OS y Windows) en la década de 1980, los identificadores se utilizaban ampliamente. Los descriptores de archivos en los sistemas Unix son básicamente identificadores. Al igual que otros entornos de escritorio, la API de Windows hace un uso extensivo de identificadores para identificar objetos en el sistema y establecer canales de comunicación entre el sistema operativo y el espacio del usuario. Por ejemplo, un formulario en el escritorio se identifica mediante un identificador de tipo HWND. Hoy en día, los aumentos en la capacidad de memoria y los algoritmos de memoria virtual han favorecido punteros más simples, mientras que los identificadores que apuntan a otro puntero han caído en desgracia. No obstante, muchos sistemas operativos todavía se refieren a punteros a objetos privados e índices de matrices internos que un proceso pasa al cliente como identificadores.