Компьютерное моделирование технологических процессов
p align="left">Если вы найдете силы пожертвовать графическим интерфейсом, то Linux окажется наиболее компактной операционной системой. А кроме того, и самой быстрой. При этом, для большинства задач вам будет достаточно 4 Мбайт оперативной памяти. В результате, Linux с успехом может эксплуатироваться на младших моделях, оснащенных процессором 80386, в то время, как для OS/2 или NT вам придется затратить немало средств на обновление компьютера. Конечно, и избытком оперативной памяти Linux сумеет распорядиться, что называется, по-хозяйски. Так, при работе с 16 Мбайт памяти, Linux оставит для приложений и динамического кэша около 12 Мбайт!Отметим, что размер системы является одной из наиболее сильных характеристик Linux. система изначально проектировалась максимально компактной и производительной, в то время как для NT основным критерием оптимизации являлась переносимость, а для OS/2 ? совместимость с предыдущими версиями системы.А кроме того, поскольку любой администратор Linux-системы имеет в своем распоряжении полный исходный текст ОС, она может быть оптимизирована для работы с конкретным оборудованием и нуждами пользователя. Увы, OS/2 и NT похвастаться такой возможностью не могут. Windows NT румяней всех, поскольку это устойчивая система, предназначенная для широко распространенных процессоров фирмы Intel. OS/2 всех румянее по той причине, что это наилучшая система для запуска 16-разрядных приложений DOS и Windows, и при этом предоставляет возможность приобщиться к привлекательному миру 32-разрядных систем. Но в обеих системах прячется червячок ? и OS/2 и NT привязывают пользователя к той или иной технологии ? ведь приложения будут работать либо в OS/2, либо в Windows NT. А вот Linux "всех белее", поскольку ему эта опасность не грозит. Приложения, разработанные для Linux могут быть перенесены на любую UNIX-систему. И если ориентация на "открытую технологию" IBM или Microsoft, является, по большому счету, рискованной игрой, то Linux предлагает выход из ловушек, расставленных гигантами. Впрочем, на этом пути вас также поджидают определенные трудности. Для того, чтобы не оказаться запертым в рамках одной операционной системы вы должны выбирать приложения, которые поддерживаются различными платформами. Если ваши любимые электронные таблицы работают в Windows, OS/2, UNIX и на Macintosh, вы можете быть уверены, что сможете запустить этот продукт и в других системах. Впрочем, не забудьте, что за это придется выкладывать звонкую монету из собственного кошелька. Приятной особенностью Linux является его способность использовать программное обеспечение, предназначенное для дркугих РС-ориентированных версий UNIX, таких, как например, SCO UNIX. Впрочем, для UNIX-систем пока не реализованы версии текстовых процессоров, сопоставимых с возможностями Microsoft Word или Lotus Word Pro. И к сожалению, именно этот факт сдерживает распространение Linux. С точки зрения корпоративного пользователя Linux идеально вписывается в концепцию "клиент/сервер", реализуемую на базе протоколов TCP/IP. При этом Linux позволяет превратить казалось бы устаревшее оборудование в мощный файл-сервер, факс-сервер, работающий как шлюз для отправки факсов через внутреннюю систему электронной почты или postscript-ориентированный принт-сервер, который обслуживает обычные матричные или лазерные принтеры. При этом, Linux зачастую работает устойчивее, чем его коммерческие собратья. Система компактна и шустра, а кроме того, может быть перекомпонована для решения вполне определенных задач. Вы можете даже установить ее на индустриальный компьютер (например, Mitac или Octagon). В Linux встроены средства поддержки электронной почты и доступа к ресурсам Internet. Cистема отлично документирована и получает все большее распространение во всем мире. Реализована поддержка работы работы с кириллицей. Но (!) есть и некоторые недостатки. Прежде всего, довольно ограничено количество коммерческих продуктов, хотя среди них уже есть и мощные SQL-серверы баз данных, и текстовые процессоры и прочие нужные вещи. Кроме того, в случае зависания системы, вы не можете свалить вину на "кривой код от Microsoft". И конечно, никто не обязан вылизывать обнаруженные вами ошибки, хотя разработчики программного обеспечения Linux обычно внимательно относятся к критике пользователей... С точки зрения технически подготовленного пользователя Linux представляет отличный шанс "поковыряться" в операционной системе. Вам полностью доступен исходный код операционной системы, что само по себе является мощным учебным пособием, которое так и тянет опробовать на практике. В результате уже сегодня вы можете воспользоваться высокопроизводительными трассировщиками для мультипликации, спектроанализаторами на базе Sound Blaster, различными компиляторами (чем, например, плохи Ада или CommonLisp?) и играми (уже реализован DOOM) и прочими продуктами. Для новичков, конечно же, предпочтительными вариантами являются OS/2, и в меньшей степени, Windows NT. Простой и понятный интерфейс OS/2 является серьезным побудительным мотивом, в то время как NT привлекает за счет своей мощи. Но, в то же время следует признать, что наибольший комфорт пользователь ощущает в старой доброй Windows 3.1, а также при работе с Norton Commander. Процесс установки 32-разрядных операционных систем и их конфигурирование может оказаться процессом далеко не тривиальным. Подводя итоги, отметим, что Linux оказывается неожиданно мощной системой, которая разработана неорганизованной группой программистов-любителей. Идеи положенные в его основу проверены временем. Количество и качество свободно распространяемых приложений просто завораживает. И если накнец будет завершен проект Wine, позволяющий запускать Windows-приложения в среде X/Window, Linux получит дополнительный козырь в борьбе с коммерческими операционными системами. Возможности этой системы открывают все новые и новые пользователи. И с эволюционным развитием всех трех систем наблюдается устойчивый рост количества пользователей Linux. Компьютерное моделирование
Прежде чем приступить к компьютерному моделированию технологического процесса, необходимо знать простейшие математические уравнения для его проведения начнем с проверки воспроизводимости опыта. Проверим воспроизводимость опытовУбедиться в том, что опыты воспроизводимы, т. е. результаты опытов, проведенных в одинаковых условиях, близки друг к другу. Для этой цели проводят несколько серий параллельных опытов. Условия реализации опытов каждой серии -- одинаковы, а разных серий -- отличаются друг от друга. Однако все опыты проводятся в рассматриваемой области изменения влияющих факторов. Результаты этих опытов сводят в таблицу табл. 10. Количество опытов во всех сериях должно быть одинаковым. Для каждой серии параллельных опытов вычисляют среднее арифметическое значение функции отклика где-- номер серии;-- число параллельных опытов, проведенных при одинаковых условиях. Затем вычисляют для каждой серии параллельных опытов величину, называемую оценкой дисперсии: Среди всех оценок дисперсий находят наибольшую. Мы обозначим ее через аблица 10 Эксперимент для проверки воспроизводимости опытов |
Номер серии опытов | Результаты параллельных опытов | Средние значения | Оценки дисперсии | | | | |
Затем находят отношение наибольшей из оценок дисперсий к сумме всех оценок дисперсий: Таблица11 Критические значения критерия Кохрена |
Число серий опытов (число оценок дисперсий) | | | | 1 | 2 | 3 | 4 | | 2 | 0,999 | 0,975 | 0,939 | 0,906 | | 3 | 0,967 | 0,871 | 0,798 | 0,746 | | 4 | 0,907 | 0,768 | 0,684 | 0,629 | | 5 | 0,841 | 0,684 | 0,598 | 0,544 | | |
Величина Gp называется расчетным значением критерия Кохрена. Критические, т. е. предельно допустимые значения критерия Кохрена G, приведены в табл. 11. Для нахождения G необходимо знать общее число N оценок дисперсий и так называемое число степеней свободы , связанных с каждой из них, причем Опыты считаются воспроизводимыми, когда выполняется условие Если опыты невоспроизводимы, то можно попытаться достигнуть воспроизводимости путем выявления и устранения источников нестабильности эксперимента, а также за счет использования более точных измерительных приборов. Наконец, если никакими способами невозможно обеспечить воспроизводимость, то математические методы планирования к такому эксперименту применять нельзя. Если при проведении эксперимента опыты дублируют и пользуются средними значениями функции откликато при обработке экспериментальных данных следует использовать В тех случаях, когда из-за недостатка времени, большой трудоемкости или высокой стоимости эксперимента опыты не дублируют, при обработке экспериментальных данных используют Таким образом, вычисления, связанные с проверкой воспроизводимости опытов, достаточно просты. Для их проведения достаточно использовать микрокалькулятор. Полный факторный эксперимент Под математическим описанием технологического процесса обычно понимают систему уравнений, связывающих функции отклика с влияющими факторами. В простейшем случае это может быть одно уравнение. Часто математическое описание называют математической моделью. С помощью математических методов планирования эксперимента можно получить математическую модель технологического процесса даже при отсутствии сведений о механизме его протекания. Это в ряде случаев бывает очень полезно. Рис. 21 Введение кодированных переменных На основе планирования эксперимента возможно моделировать химический состав продукта, его выход, усвояемость и др. показатели качества продукта или правильным термином «факторы». Математические модели, получаемые с помощью методов планирования эксперимента, принято называть экспериментально-статистическими. Метод полного факторного эксперимента дает возможность получить математическое описание пищевого технологического процесса в некоторой области факторного пространства, лежащей в окрестности выбранной точки с координатами где - число факторов). Перенесем начало координат факторного пространства в данную точку рис. 21. С этой целью введем новые переменные величины где-- выбранный нами масштаб по оси Величины не имеют размерностей и называются кодированными переменными. С помощью полного факторного эксперимента ищут математическое описание технологического процесса в виде уравнения В него входит свободный членчлены в виде произведений коэффициентов регрессиинаи члены, содержащие парные произведения кодированных переменных. Таким образом, это -- неполное квадратное уравнение. Все факторы в ходе полного факторного эксперимента варьируют на двух уровнях, соответствующих значениям кодированных переменныхи . В табл. 13 приведены условия опытов полного двухфакторного эксперимента. Часть таблицы, обведенная штриховыми линиями, называется матрицей планирования. Таблица 13 Условия полного двухфакторного эксперимента |
Номер опыта | Факторы | Функция отклика | | | X1 | X2 | | | 1 | -1 | -1 | y1 | | 2 | +1 | -1 | y2 | | 3 | -1 | +1 | y3 | | 4 | +1 | +1 | y4 | | |
Матрица содержит полный набор всех возможных комбинаций уровней варьирования факторов. Отсюда полный факторный эксперимент получил свое название. Как следует из рис. 22, результаты опытов, приведенные в табл. 13, соответствуют на факторной плоскости вершинам квадрата с центром в начале координат. Рис. 22. Полной двухфакторной эксперимент на плоскости В табл. 14 приведены условия опытов полного трехфакторного эксперимента. Эти опыты соответствуют в факторном пространстве вершинам куба с центром в начале координат. Основные принципы построения матриц планирования полного факторного эксперимента: 1) уровни варьирования первого фактора чередуются от опыта к опыту; 2) частота смены уровней варьирования каждого последующего фактора вдвое меньше, чем у предыдущего. Таблица 13 Условия полного трехфакторного эксперимента |
Номер опыта | Факторы | Функция отклика | | | X1 | X2 | X3 | | | 1. | - 1 | - 1 | -1 | y1 | | 2. | + 1 | - 1 | - 1 | y2 | | 3. | - 1 | + 1 | - 1 | y3 | | 4. | + 1 | + 1 | - 1 | y4 | | 5. | - 1 | - 1 | + 1 | y5 | | 6. | + 1 | -1 | + 1 | y6 | | 7. | - 1 | + 1 | + 1 | y7 | | 8. | + 1 | + 1 | + 1 | y8 | | |
Общее число опытов полного факторного эксперимента: где n -- число факторов. На основании результатов полного факторного эксперимента вычисляют коэффициенты регрессии, пользуясь следующими формулами: Некоторые из коэффициентов регрессии могут оказаться пренебрежимо малыми - незначимыми. Чтобы установить, значим коэффициент или нет, необходимо прежде всего вычислить оценку дисперсии, с которой он определяется: Следует отметить, что по результатам полного факторного эксперимента все коэффициенты определяются с одинаковой погрешностью. Принято считать, что коэффициент регрессии значим, если выполнено условие где-- значение критерия Стьюдента, взятое из табл. 15. Для пользования табл. 15 необходимо знать число степеней свободысвязанное с оценкой дисперсии Таблица 15 Значения критерия Стьюдента |
f | t | | 1 | 12,71 | | 2 | 4,30 | | 3 | 3,18 | | 4 | 2,78 | | 5 | 2,57 | | 6 | 2.45 | | 7 | 2,36 | | 8 | 2,31 | | 9 | 2,26 | | 10 | 2,23 | | |
Если проверка показала, что коэффициент регрессии незначим, то соответствующий член можно исключить из уравнения. Получив уравнение регрессии, следует проверить его адекватность, то есть способность достаточно хорошо описывать поверхность отклика и прогнозировать результаты опытов. Для проверки адекватности вычисляют оценку дисперсии адекватности по формуле Здесь -- число значимых коэффициентов регрессии;-- экспериментальное и расчетное значение функции отклика в опыте; -- число опытов полного факторного эксперимента. С оценкой дисперсии адекватности связано число степеней свободы Затем находят расчетное значение критерия Фишера: Уравнение регрессии считается адекватным, если выполняется условие где -- критическое значение критерия Фишера табл. 16. Для пользования табл. 19 необходимо знать числа степеней свободы, связанных с числителем и знаменателем отношения Методом дробного факторного экспериментаС увеличением числа учитываемых факторов резко возрастает число опытов полного факторного эксперимента. Для нахождения коэффициентов регрессии не всегда требуется много опытов. В таких случаях можно уменьшить объем экспериментальных работ, воспользовавшись методом дробного факторного эксперимента, который известен также под названием метода дробных реплик. Этот метод заключается в том, что для нахождения уравнения регрессии используется определенная часть полного факторного эксперимента:и т. д. Такие системы опытов называются дробными репликами табл. 19. Таблица 19 Полный трехфакторный эксперимент и его дробные реплики Расчет коэффициентов регрессии, проверка значимости коэффициентов и адекватности математического описания в данном случае осуществляются так же, как и при полном факторном эксперименте. Пусть требуется найти коэффициенты уравнения регрессии Если для этой цели воспользоваться полным трехфакторным экспериментом, то необходимо провести 8 опытов. Однако эту задачу можно решить и с помощью меньшего числа опытов. Например, возьмем матрицу полного двухфакторного эксперимента табл. 20 и приравняем произведение к фактору Рассчитаем коэффициенты регрессии: Обратим внимание на то, что в табл. 20 столбцы для произведенияи фактораполностью совпадают. Поэтому коэффициенты регрессииине могут быть определены раздельно. Таблица 20 Дробный факторный эксперимент типа 23-1 |
Номер опыта | X1 | X2 | X1X2 | X3 | Функция отклика | | 1 | - 1 | - 1 | + 1 | + 1 | y1 | | 2 | + 1 | - 1 | - 1 | - 1 | y2 | | 3 | - 1 | + 1 | -1 | - 1 | y3 | | 4 | + 1 | + 1 | + 1 | + 1 | y4 | | |
Может быть найдена только их сумма: Этот недостаток рассматриваемого плана является своеобразной «платой» за уменьшение общего числа опытов с восьми до четырех. Такое планирование эксперимента, когда некоторые из факторов приравнивают к произведениям нескольких факторов, называется планированием со смешиванием. Его обозначают символом где -- общее число факторов, а -- число факторов, приравненных к произведениям. С этой точки зрения в табл. 20 приведена матрица планирования типа Существует правило, позволяющее определить, какие коэффициенты регрессии определяются совместно при планировании со смешиванием. Рассмотрим это правило на примере. Методом дробных реплик будем искать математическое описание процесса в виде уравнения регрессии Воспользуемся планированием типаи примем Такие равенства в методе дробных реплик называются генерирующими соотношениями. Следует отметить, что выбор генерирующих соотношений в общем случае произволен. Однако он существенно влияет на характер совместных оценок коэффициентов регрессии. Правило определения совместных оценок коэффициентов заключается в следующем: Примем во внимание, что Умножив обе части генерирующих соотношений соответственно наиполучим: Эти равенства называются определяющими контрастами. Перемножив их почленно, получим новые определяющие контрасты. В данном случае _ 3. Составим алгебраическую сумму из единицы и правых частей всех полученных определяющих контрастов: 4. Умножив каждый из факторов на s и заменив факторы соответствующими коэффициентами регрессии р получим искомые совместные оценки: где-- истинные коэффициенты регрессии. В рассмотренном примере удалось значительно сократить общее количество опытов. Так, полный пятифакторный эксперимент состоит из 32 опытов. План типасодержит 8 опытов, т. е. в четыре раза меньше. Отметим еще одну интересную особенность дробного факторного эксперимента. Планирование со смешиванием иногда применяют в тех случаях, когда необходимо уменьшить влияние неуправляемых временных изменений некоторых влияющих факторов, т. е. влияние так называемого временного дрейфа. Примером временного дрейфа может служить уменьшение со временем активности катализатора вследствие отравления его каталитическими ядами. При постановке большой серии опытов, требующих длительного времени, всегда приходится опасаться нежелательных изменений исходных свойств реагентов, некоторых характеристик технологического оборудования и т. п. Влияние этого временного дрейфа на параметры математического описания процесса можно практически устранить, разбивая всю серию опытов на отдельные блоки так, чтобы эффект от временного дрейфа оказался смешанным с произведениями факторов, для которых коэффициенты регрессии достаточно малы. Допустим, что необходимо устранить влияние временного дрейфа на параметры уравнения регрессии, получаемого в результате полного трехфакторного эксперимента. С этой целью разобъем эксперимент на два блока и введем новую независимую переменную ХЛ, характеризующую дрейф. Положим Исходя из матрицы планирования, представленной в табл. 21, будем считать, что в первом блоке все результаты опытов вследствие временного дрейфа завышены наа во втором -- занижены на ту же величину. Таблица 21 Планирование в условиях временного дрейфа Если уравнение регрессии отыскивается в виде то коэффициенты регрессии будут являться следующими оценками: Рассчитаем, например, коэффициентыи: Следовательно, все коэффициенты регрессии, кроме не содержат погрешностей, обусловленных временным дрейфом. Крутое восхождениеПолученное с помощью полного или дробного факторного эксперимента уравнение регрессии служит не только математической моделью химико-технологического процесса, но используется и для его оптимизации. Оптимизацией процесса называют целенаправленный поиск наилучших в определенном смысле условий его проведения. Задачи оптимизации приходится решать при разработке новых технологий и реконструкции действующих производств. Величина, характеризующая уровень оптимизации процесса, называется критерием оптимальности или целевой функцией. Например, критерием оптимальности может быть выход целевого продукта химической реакции в расчете на израсходованное сырье. Качество процесса химической технологии обычно выражается не одним, а несколькими показателями. Безусловно, хочется, чтобы все показатели достигали одновременно своих наилучших значений. К сожалению, это невозможно. Например, максимальная производительность оборудования и минимальная себестоимость продукции обычно имеют место при различных технологических режимах. Чтобы осуществлять оптимизацию, необходимо располагать определенными ресурсами. Например, для увеличения выхода целевого продукта химической реакции, мы должны иметь возможность варьировать в определенных пределах значениями таких величин, как температура реакционной-смеси, исходные концентрации реагентов и т. д. Оптимизацию проводят, как правило, в условиях ограничений на ресурсы оптимизации и некоторые выходные параметры процесса. Задачу оптимизации можно сформулировать следующим образом. Задан критерий оптимальности и ограничения на остальные выходные параметры процесса: Заданы ограничения на ресурсы оптимизации: Требуется найти такие значения ресурсов оптимизации при которых критерий оптимальности достигает своего экстремального (т. е. наибольшего или наименьшего) значения. Д. Бокс и К. Уилсон предложили использовать для оптимизации результаты полного или дробного факторного эксперимента. Сущность этого метода состоит в следующем. Среди всех имеющихся функций отклика, описывающих объект оптимизации, выбирают одну наиболее важную и принимают ее в качестве критерия оптимальностиЗатем указывают ограничения, накладываемые на остальные функции отклика и на влияющие факторы. Один из наиболее сильно влияющих факторов принимают за базовый и для него вычисляют произведение соответствующего коэффициента регрессии на шаг варьирования. Например, для первого фактора это произведение имеет видЗатем для базового фактора выбирают шагс которым будет осуществляться оптимизация. С целью более точного нахождения координат оптимума обычно принимают После этого вычисляют отношение Для всех остальных факторов шаги движения к оптимуму рассчитывают по формуле Движение к оптимуму начинают из центра плана, который был использован для получения уравнения регрессии. Значения факторовна каждом новом шаге оптимизации находят путем прибавленияк соответствующим предыдущим значениям. Так осуществляется оптимизация по методу Бокса и Уилсона, получившему название метода крутого восхождения. Отметим некоторые особенности этого метода. Движение из центра плана начинается в сторону наиболее быстрого увеличения критерия оптимальности. Это происходит благодаря тому, что шагипропорциональны коэффициентам регрессии Если ищется минимум критериято новые значения факторов находят из предыдущих путем вычитанияТакой способ оптимизации назван методом наискорейшего спуска. Движение к экстремуму прекращают при выполнении следующих условий: 1) значения факторов(одного или нескольких) или функций отклика(одной или нескольких) вышли на допустимые границы; 2) достигнут экстремум критерия оптимальности. Рис. 23. Оптимизация по методу крутого восхождения Как следует из рис. 23, в ходе крутого восхождения по поверхности отклика сначала может быть достигнут локальный экстремум на направлении движения. В таком случае необходимо в окрестности этого экстремума поставить новый полный факторный эксперимент и реализовать новое крутое восхождение. Отметим, что в реальных условиях оптимум обычно находится на границах области допустимых значений 1.4 Среда для моделирования технологических процессов Visual Studio.NETИз чего состоит .NET Framework, NET Framework состоит прежде всего из огромной библиотеки программ, к которой можно обращаться из различных языков программирования (например из С#) с помощью различных технологий объектно-ориентированного программирования (ООП, object-oriented programming). Эта библиотека разбита на несколько различных модулей таким образом, что имеется возможность использовать ту или иную ее часть в зависимости от требуемых результатов. Так, например, в одном из модулей содержатся "кирпичики", из которых можно построить Windows-приложения, в другом -- "кирпичики", необходимые для организации работы в сети, в третьем -- все необходимое для развития Всемирной паутины (Web). Некоторые из этих модулей подразделяются на более специфические подмодули: к примеру, в состав модуля для развития Паутины входит подмодуль, предназначенный для создания web-служб. Основная идея в данном случае заключается в том, что различные операционные системы могут поддерживать некоторые или все из этих модулей (что зависит от характеристик этих операционных систем). Так, PDA потенциально мог бы поддерживать все основные функциональные возможности .NET, однако маловероятно, чтобы ему потребовались какие-либо более хитрые модули. Часть библиотеки .NET Framework посвящена описанию некоторых базисных типов. Тип -- это способ представления данных; определение наиболее фундаментальных из них (например 32-разрядного целого со знаком) облегчает совместное использование языков программирования с помощью .NET Framework. Все вместе это называется Common Type System (CTS -- единая система типов) Кроме вындописанной библиотеки, в состав системы входит также NET Common Language Runtime (CLR -- единая система выполнения программ), которая ответственна за поддержку выполнения всех приложении, разработанных с использованием библиотеки .NET, Как можно создавать приложения с помощью .NET Framework Создание приложений с помощью .NET Framework означает написание программы (на любом из языков программирования, поддерживаемых системой) посредством использования библиотеки программ. В этой книге для наших разработок мы будем использовать VS, который представляет собой мощную интегрированную среду разработки, поддерживающую С# (а также управляемый и не управляемый С+ + , Visual Basic.NET и некоторые другие языки программирования). Преимуществом данной среды является та простота, с которой возможности .NET могут быть интегрированы в наши программы. Код, который мы будем создавать, будет целиком написан на С#, однако в нем повсеместно будут использоваться возможности .NET Framework, а там, где возникнет необходимость, мы будем применять в VS дополнительные инструменты. Для того чтобы написанная на С# программа могла быть выполнена, ее необходимо преобразовать в язык, понятный операционной системе, на которой эта программа будет выполняться; такой язык известен под названием родного кода. Подобное преобразование называется компиляцией программы н выполняется компилятором. Однако в .NET этот процесс состоит нз двух этапов. MSIL и ЛТ При компиляции кода, в котором используется библиотека .NET Framework, мы не получаем сразу родной код для конкретной операционной системы. Напротив, наша программа будет откомпилирована в программу на языке Microsoft Intermediate Language (MSIL -- промежуточный язык компании Microsoft). Этот код не является специфическим ни для какой операционной системы и так же точно не является специфическим для С#. Компиляция с других языков программирования .NET -- например с Visual Basic.NET -- на первом этапе тоже происходит на этот язык. Данный этап компиляции выполняется VS в тех случаях, когда мы используем его для разработки приложений на С#, Очевидно, что для запуска приложения потребуется сделать некоторую дополнительную работу. Эта работа возлагается на ЛТ-компилятор (Just-In-Time, своевременный), который осуществляет компиляцию MSIL-кода на код, специфический для ОС и архитектуры используемого компьютера. Только после этого операционная система может выполнить приложение. В прошлом часто возникала необходимость транслировать написанную программу в несколько различных приложении, каждое нз которых предназначалось для конкретной операционной системы и архитектуры центрального процессора, Нередко это был один нз способов оптимизации (направленной на то, чтобы программа, к примеру, быстрее выполнялась на AMD-чнпах), но иногда это оказывалось критичным (например, когда приходилось использовать некоторые приложения одновременно и в среде Win9x, и в среде WinNt/2000). Теперь такая необходимость исчезла, поскольку ЛТ-компнляторы (как и предполагает их название) используют код на языке MSIL, который совершенно независим от компьютера, операционной системы н центрального процессора. Существует несколько различных JIT-компиляторов, каждый нз которых предназначается для некоторой конкретной архитектуры, поэтому для создания родного кода, необходимого в том или ином случае, будет использоваться соответствующий ЛТ-компилятор. Удобство такого подхода заключается в том, что теперь приходится выполнять существенно меньший объем работы: фактически мы получаем возможность просто забыть о системно-зависимых особенностях и сконцентрироваться на более интересных функциональных возможностях создаваемой программы. Модули Когда выполняется компилирование приложения, создаваемый MSIL-код сохраняется в некотором модуле (assembly). В состав таких модулей входят как выполняемые файлы приложений, которые могут быть запущены из Windows напрямую и которым для работы не требуется никаких других программ (такие файлы имеют расширение .ехе), так и библиотеки, предназначенные для использования другими приложениями (они имеют расширение .dil). Кроме данных на языке MSIL, в модулях хранятся метаннформацня (т. е. информация об информации, хранящейся в данном модуле, иначе известная под названием метаданных) и дополнительные ресурсы (дополнительные данные, используемые MSIL, например звуковые и графические файлы). Метаинформация делает модули полностью самоописательными. Для использования модуля не требуется никакой дополнительной информации; другими словами, исключается ситуация, когда не удается добавить необходимые данные в системный регистр, и все подобные ей, что составляло серьезную проблему прн разработке приложений на других платформах. Отсюда следует, что установка приложений зачастую сводится к простому копированию файлов в директорию удаленного компьютера. Поскольку системам, под управлением которых будет выполняться приложение, не требуется никакой дополнительной информации, мы получаем возможность просто запускать выполняемый файл из этой директории (при условии, что на данном компьютере инсталлирована CLR.NET) без каких-либо дополнительных действий, Естественно, размещать все необходимое для выполнения приложения в одном месте не обязательно. Существует возможность создавать код, выполняющий задачи, которые могут потребоваться нескольким приложениям. В подобных ситуациях полезно располагать такой многократно используемый код в месте, доступном всем приложениям. В .NET Framework таким местом является Global Assembly Cache (GAC -- кэш глобальных модулей). Разместить код в таком кэше очень просто: для этого необходимо просто поместить модуль, содержащий соответствующую программу, в директорию, содержащую этот кэш. Управляемый код Использование CLR не ограничивается тем моментом, когда мы откомпилировали программу на MSIL, а некоторый ЛТ-компнлятор откомпилировал MSIL в родной код. Код, написанный с помощью .NET Framework, является управляемым на этапе выполнения (данный этап зачастую называется временем выполнения (runtime)). Это означает, что CLR отслеживает выполнение приложений, управляя памятью, межъязыковой отладкой, обеспечением безопасности и т. п. Напротив, приложения, которые выполняются не под контролем CLR, называются неуправляемыми, и в них можно использовать определенные языки программирования, такие как С + + , для получения, например доступа к функциям нижнего уровня операционной системы. Однако на С# можно писать только код, который выполняется в управляемой среде. Мы будем использовать возможности CLR по управлению кодом и возложим осуществление любых взаимодействий с операционной системой на .NET. Сборка мусора Одной нз наиболее важных особенностей управляемого кода является понятие "сборка мусора". Это способ, применяемый в .NET и гарантирующий полное освобождение памяти, использовавшейся приложением, по завершении работы этого приложения. До появления .NET эта задача возлагалась на программистов, и наличие в программе пары простых ошибок могло привести к ситуации, когда огромные блоки памяти таинственным образом исчезали. Обычно это приводило к постепенному замедлению работы компьютера с последующим крахом системы,
Страницы: 1, 2, 3, 4
|