День сто сорок восьмой. #ВопросыНаСобеседовании
Самые часто задаваемые вопросы на собеседовании по .NET
2. Что такое CLR?
CLR (Common Language Runtime) – Общеязыковая Среда Исполнения. Она работает как слой между операционной системой и приложениями, написанными на языках .Net, которые соответствуют Общеязыковой Спецификации (CLS). Основной функцией CLR является преобразование управляемого кода в машинный код и последующее выполнение программы. Управляемый код компилируется только тогда, когда это необходимо, то есть он преобразует соответствующие инструкции при вызове каждой функции. Компиляция JIT позволяет преобразовать промежуточный язык (MSIL) в машинный код по требованию во время выполнения приложения.
Во время выполнения приложения .Net управление переходит к операционной системе, она создает процесс для загрузки CLR. Программа, используемая операционной системой для загрузки CLR, называется средой выполнения, которая отличается в зависимости от типа приложения: настольное, веб-приложение и т.д.
Среда выполнения CLR имеет набор сервисов:
1. Распознаватель Сборок (Assembly Resolver)
Читает манифест приложения, определяет приватную или общую сборку, необходимую для выполнения приложения и передаёт запрос загрузчику сборок.
2. Загрузчик Сборок (Assembly Loader)
Загружает сборку в процесс приложения на основе инструкций распознавателя сборок.
3. Инспектор Типов (Type Checker)
Проверяет типы, используемые в приложении, на соответствие со стандартами CTS или CLS, поддерживаемыми CLR, что обеспечивает безопасность типов.
4. Маршаллер COM (COM marshaller)
Обеспечивает связь с COM-компонентами.
5. Диспетчер Отладки (Debug Manager)
Активирует утилиту отладчика для поддержки построчного выполнения. Разработчик может вносить изменения, не прерывая отладки приложения.
6. Поддержка Потоков (Thread Support)
Управляет потоками выполнения в процессе приложения.
7. IL Компилятор (IL to Native compiler)
Компилятор IL в машинный язык называется JIT-компилятором (Just-In-Time). Он преобразует IL-код в машинный код операционной системы во время выполнения.
8. Менеджер Исключений (Exception Manager)
Обрабатывает исключения, генерируемые приложением, выполняя блоки catch, либо при отсутствии обработчика завершает работу приложения.
9. Сборщик Мусора (Garbage Collector)
Освобождает память от неиспользуемых объектов, это обеспечивает автоматическое управление памятью.
Источник: https://www.c-sharpcorner.com
Самые часто задаваемые вопросы на собеседовании по .NET
2. Что такое CLR?
CLR (Common Language Runtime) – Общеязыковая Среда Исполнения. Она работает как слой между операционной системой и приложениями, написанными на языках .Net, которые соответствуют Общеязыковой Спецификации (CLS). Основной функцией CLR является преобразование управляемого кода в машинный код и последующее выполнение программы. Управляемый код компилируется только тогда, когда это необходимо, то есть он преобразует соответствующие инструкции при вызове каждой функции. Компиляция JIT позволяет преобразовать промежуточный язык (MSIL) в машинный код по требованию во время выполнения приложения.
Во время выполнения приложения .Net управление переходит к операционной системе, она создает процесс для загрузки CLR. Программа, используемая операционной системой для загрузки CLR, называется средой выполнения, которая отличается в зависимости от типа приложения: настольное, веб-приложение и т.д.
Среда выполнения CLR имеет набор сервисов:
1. Распознаватель Сборок (Assembly Resolver)
Читает манифест приложения, определяет приватную или общую сборку, необходимую для выполнения приложения и передаёт запрос загрузчику сборок.
2. Загрузчик Сборок (Assembly Loader)
Загружает сборку в процесс приложения на основе инструкций распознавателя сборок.
3. Инспектор Типов (Type Checker)
Проверяет типы, используемые в приложении, на соответствие со стандартами CTS или CLS, поддерживаемыми CLR, что обеспечивает безопасность типов.
4. Маршаллер COM (COM marshaller)
Обеспечивает связь с COM-компонентами.
5. Диспетчер Отладки (Debug Manager)
Активирует утилиту отладчика для поддержки построчного выполнения. Разработчик может вносить изменения, не прерывая отладки приложения.
6. Поддержка Потоков (Thread Support)
Управляет потоками выполнения в процессе приложения.
7. IL Компилятор (IL to Native compiler)
Компилятор IL в машинный язык называется JIT-компилятором (Just-In-Time). Он преобразует IL-код в машинный код операционной системы во время выполнения.
8. Менеджер Исключений (Exception Manager)
Обрабатывает исключения, генерируемые приложением, выполняя блоки catch, либо при отсутствии обработчика завершает работу приложения.
9. Сборщик Мусора (Garbage Collector)
Освобождает память от неиспользуемых объектов, это обеспечивает автоматическое управление памятью.
Источник: https://www.c-sharpcorner.com