Handle
En programación de computadoras, un handle es una referencia abstracta a un recurso utilizado cuando un programa hace referencia a bloques de memoria u objetos que son administrados por otro sistema informático, como una base de datos o un sistema operativo.
El handle de un recurso puede ser un identificador opaco (un identificador que no expone sus detalles internos),[1] en cuyo caso a menudo es un número entero (a menudo un índice de matriz en una matriz o "tabla" que se utiliza para administrar ese tipo de recurso), o puede ser un puntero que permite el acceso a más información. Handles comunes incluyen descriptores de archivo, sockets de red, conexiones de base de datos, identificadores de proceso (PID), e identificadores de trabajo (Job ID). Los PID y los Job ID son enteros explícitamente visibles; mientras que los descriptores de archivo y sockets (que a menudo se implementan como una forma de descriptor de archivo) se representan como enteros, generalmente considerados como opacos.
Comparación con punteros estándar
editarMientras que un puntero estándar literalmente contiene la dirección en la memoria de algún objeto, un handle es una abstracción de una referencia que se administra externamente; su opacidad permite que el referente pueda ser reubicado en la memoria por el sistema sin que deje de ser válido (lo cual sería imposible de realizar con punteros) y de ahí su nombre en inglés handle, que significa literalmente «tirador» o «manija», en el sentido de que mediante su uso se controla o maniobra. La capa extra de indirección también incrementa el control que el sistema tiene para maniobrar sobre operaciones llevadas a cabo sobre el referente (véase ocultación de información y encapsulamiento).
Ejemplos
editarLos handles fueron una solución popular para la gestión de memoria en los sistemas operativos desarrollados en los años 1980, tales como Mac OS y Windows.[2] En Unix los descriptores de archivos son esencialmente handles. Como en otros entornos de escritorio, el API de Windows utiliza handles intensamente para representar objetos en el sistema y provee de un canal de comunicaciones entre el sistema operativo y el espacio de usuario. Por ejemplo, una ventana sobre el escritorio es representada por un handle de tipo HWND
(handle, window).
Referencias
editar- ↑ «What are opaque identifiers with regards to handles? - Stack Overflow». Stack Overflow. Stack Exchange Inc. 1 de diciembre de 2017. Consultado el 28 de octubre de 2021.
- ↑ Hertzfeld, Andy (febrero de 1982). «The Original Macintosh: Hungarian» (en inglés). Archivado desde el original el 19 de junio de 2010. Consultado el 10 de mayo de 2010.
Véase también
editarEnlaces externos
editar- Handles and Objects (en inglés)
- Pushing the Limits of Windows: Handles (en inglés)