- •Вопросы:
- •Лекция №5-6. Базовые элементы платформы приложений су для построения интерфейса пользователя. Концепция открытой модульной архитектуры в приложениях прикладного программного обеспечения
- •Компоненты каркаса
- •Конфигурирование компонентов в составе системы
- •Вопросы
- •Лекция №9-10. Принципы классификации прикладных компонентов систем управления. Принцип трехуровневого конфигурирования компонентов в приложениях су. Инструменты конфигурирования и их принципы работы.
- •Виртуальная структура прикладной области
- •Преобразование исходных кодов в новый формат языков .Net
- •Обобщенно использование двоичных компонентов заключается в следующем:
- •Вопросы
- •Лекция №13-14. Инструменты отладки приложений в .Net Framework 2.0 и выше.
- •Сборка мусора в .Net Framework
- •Причины смешивания управляемого и неуправляемого кодов
- •2. В чём заключается Концепция CoDeSys?
- •Для высших стандартов качества системы существует три аспекта:
- •Интерфейс PlcHandler предоставляет следующие функции и сервисы:
- •Реализация opc компонентов диагностики для контроллеров CoDeSys sp
- •Вопросы
- •Каскадный жизненный цикл
- •Тестирование, верификация и валидация - различия в понятиях
- •Задачи и цели процесса верификации
- •2) Сценарии на формальных языках
- •Принцип использования коммерческих приложений для тестирования пользовательского интерфейса
- •Обзор Quickt Test. Основные понятия
- •Использование объекта DataTable и параметризация
- •Распознавание объектов в qtp и уникальность их свойств
- •5. Использование объекта DataTable и параметризация
- •6. Распознавание объектов в qtp и уникальность их свойств
- •5. Практический (лабораторный) комплекс Лабораторная работа №1
- •Лабораторная работа №2
- •Лабораторная работа № 3
- •6. Перечень тестовых вопросов для промежуточного и итогового контроля
- •197.Группа компьютеров, связанных каналами передачи информации и находящихся в пределах территории, ограниченной небольшими размерами: комнаты, здания, предприятия, называется:
Сборка мусора в .Net Framework
Сборщик мусора - это подсистема платформы .Net, предназначенная для того, чтобы очищать память. Идея состоит в том, что вся динамически выделяемая память распределяется в области кучи. Всякий раз когда .NET обнаруживает, что управляемая куча данного процесса заполнилась и нуждается в приведении в порядок, он вызывает сборщик мусора. Этот сборщик мусора проходит по всем переменным, находящимся в контексте вашего кода, и проверяет ссылки на объекты, расположенные в области кучи, чтобы идентифицировать, какие из них доступны из кода, то есть, чтобы узнать, на какие объекты существуют ссылки. Любой объект с отсутствием ссылок рассматривается как такой, к которому больше не будет осуществляться доступ из кода, потому объект может быть удален. Подобный этому механизм сборки мусора применяется и в Java.
Сборка мусора работает в .NET потому что IL спроектирован так, чтобы облегчить этот процесс. Принципы организации IL гласят, что вы не можете получить ссылки на существующий объект иначе, кроме как копированием существующих ссылок, а также то, что IL - язык безопасный к типам. В данном контексте мы имеем в виду, что если существует какая-то ссылка на обьект, то в этой ссылке содержится информация, достаточная для того, чтобы в точности определить тип объекта.Механизм сборки мусора невозможно применить с таким языком, как например неуправляемый С++, потому что С++ допускает свободное приведение указателей к другим типам. Одно важное свойство сборки мусора заключается в том, что это недетерминированный процесс. Другими словами, вы не можете знать, когда будет вызван сборщик мусора; он будет вызван тогда, когда CLR решит, что в этом есть необходимость, хотя также можно перекрыть этот процесс и вызвать сборщик мусора из вашего приложения.
Ограничения на использование управляемых типов в C++
Существует множество правил, которые ограничивают использование управляемых типов (классов, структур, интерфейсов), что ведет к затруднениям в работе с ними по сравнению с традиционными неуправляемыми типами в C++:
Управляемый тип не может быть наследован из неуправляемого типа. С другой стороны, неуправляемый тип не может быть наследован из управляемого типа. Это значит, что структуры иерархий наследственности управляемых и неуправляемых классов всегда отделены друг от друга.
В отличие от неуправляемых типов, управляемые не поддерживают множественную наследуемость реализации.
Управляемый тип может, очевидно, содержать член, который является указателем на управляемый объект. Управляемый тип также может содержать элемент данных, который является неуправляемым объектом или указателем на таковой. С другой стороны, неуправляемый тип не может включать в себя экземпляр управляемого типа или указатель на таковой.
Неуправляемый класс, в котором не указан явно базовый класс, является независимым корневым классом. В то же время управляемый класс, в котором не указан явно ни один класс в качестве базового, является производным от корневого класса System: :Object.
К объекту, участвующему в сборке мусора (т.е. к экземпляру управляемого класса), можно получить доступ только посредством указателя (или ссылки) на объект в управляемой динамически распределяемой области памяти. Это является отличием от неуправляемых типов, которые могут содержаться либо непосредственно в переменной типа значения, либо к ним можно получить доступ посредством указателя на неуправляемую динамически распределяемую область памяти.
