Arquitectura de Common Language Runtime (CLR)

Common Language Runtime en .NET Framework es el componente de máquina virtual que maneja la ejecución de programas para varios lenguajes como C#, F#, Visual Basic .NET, etc. manejo, manejo de excepciones, recolección de elementos no utilizados, administración de subprocesos, etc.
Common Language Runtime implementa el VES (Sistema de ejecución virtual), que es un sistema de tiempo de ejecución que proporciona un entorno de ejecución de código administrado. El VES se define en la implementación de Microsoft de CLI (Common Language Infrastructure).

Arquitectura de Common Language Runtime

A continuación se proporciona un diagrama que demuestra la arquitectura de Common Language Runtime:

Hay varios componentes en la arquitectura de Common Language Runtime. Los detalles sobre estos se dan a continuación:

  • Compatibilidad con la biblioteca de clases base: Common Language Runtime proporciona compatibilidad con la biblioteca de clases base. La BCL contiene múltiples bibliotecas que brindan varias funciones, como colecciones , E/S , XML , definiciones de tipos de datos , etc. para los múltiples lenguajes de programación .NET .
  • Soporte de subprocesos: CLR proporciona soporte de subprocesos para administrar la ejecución paralela de múltiples subprocesos. La clase System.Threading se usa como clase base para esto.
  • Marshaller COM: La comunicación con el componente COM (Modelo de objetos componentes) en la aplicación .NET se proporciona mediante el Marshaller COM. Esto proporciona el soporte de interoperabilidad COM.
  • Verificador de tipos : el verificador de tipos proporciona seguridad de tipos mediante el uso del Sistema de tipos comunes (CTS) y la Especificación de lenguaje común (CLS) que se proporcionan en el CLR para verificar los tipos que se usan en una aplicación.
  • Administrador de excepciones: el administrador de excepciones en CLR maneja las excepciones independientemente del lenguaje .NET que las creó. Para una aplicación en particular, el bloque catch de las excepciones se ejecuta en caso de que ocurran y si no hay un bloque catch, la aplicación finaliza.
  • Motor de seguridad: el motor de seguridad en CLR maneja los permisos de seguridad en varios niveles, como el nivel de código, el nivel de carpeta y el nivel de máquina. Esto se hace utilizando las diversas herramientas que se proporcionan en el marco .NET .
  • Motor de depuración: una aplicación se puede depurar durante el tiempo de ejecución utilizando el motor de depuración. Existen varias interfaces ICorDebug que se utilizan para rastrear el código administrado de la aplicación que se está depurando.
  • Compilador JIT: el compilador JIT en CLR convierte el lenguaje intermedio de Microsoft (MSIL) en el código de máquina que es específico para el entorno informático en el que se ejecuta el compilador JIT. El MSIL compilado se almacena para que esté disponible para llamadas posteriores si es necesario.
  • Administrador de código: el administrador de código en CLR administra el código desarrollado en el marco .NET, es decir, el código administrado. El código administrado se convierte en un lenguaje intermedio mediante un compilador específico del lenguaje y luego el lenguaje intermedio se convierte en el código de máquina mediante el compilador Just-In-Time (JIT).
  • Recolector de basura: la administración automática de memoria es posible mediante el recolector de basura en CLR. El recolector de elementos no utilizados libera automáticamente el espacio de la memoria cuando ya no es necesario para que pueda reasignarse.
  • Cargador CLR: el cargador CLR carga varios módulos, recursos, ensamblajes, etc. Además, este cargador carga los módulos a pedido si realmente se requieren para que el tiempo de inicialización del programa sea más rápido y los recursos consumidos sean menores.

Publicación traducida automáticamente

Artículo escrito por harkiran78 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *