Курсовая работа: Информатика как наука
4.
5. В чем состоят функции загрузчика?
Загрузчик - программа, которая подготавливает объектную программу к выполнению и инициирует ее выполнение.
Более детально функции Загрузчика следующие:
· выделение места для программ в памяти (распределение);
· фактическое размещение команд и данных в памяти (загрузка);
· разрешение символических ссылок между объектами (связывание);
· настройка всех величин в модуле, зависящих от физических адресов в соответствии с выделенной памятью (перемещение);
· передача управления на входную точку программы (инициализация).
Не обязательно функции Загрузчика должны выполняться именно в той последовательности, в какой они описаны. Опишем эти функции более подробно.
Функция распределения, по-видимому понятна из ее названия. Для размещения программы в оперативной памяти должно быть найдено и выделено свободное место в памяти. Для выполнения этой функции Загрузчик обычно обращается к операционной системы, которая выполняет его запрос на выделение памяти в рамках общего механизма управления памятью.
Функция загрузки сводится к считыванию образа программы с диска (или другого внешнего носителя) в оперативную память.
Функция связывания состоит в компоновки программы из многих объектных модулей. Поскольку каждый из объектных модулей в составе программы был получен в результате отдельного процесса трансляции, который работает только с одним конкретным модулем, обращения к процедурам и данным, расположенным в других модулях, в объектных модулях не содержат актуальных адресов. Загрузчик же "видит" все объектные модули, входящие в состав программы, и он может вставить в обращения к внешним точкам правильные адреса. Загрузчики, которые выполняют функцию связывания вместе с другими функциями, называются Связывающими Загрузчиками. Выполнение функции связывания может быть переложено на отдельную программу, называемую Редактором связей или Компоновщиком. Редактор связей выполняет только функцию связывания - сборки программы из многих объектных модулей и формирование адресов в обращениях к внешним точкам. На выходе Редактора связей мы получаем загрузочный модуль.
Функция перемещения необходимо потому, что программа на любом языке разрабатывается в некотором виртуальном адресном пространстве, в котором адресация ведется относительно начала программной секции. При написании программы и при ее трансляции, как правило, неизвестно, по какому адресу памяти будет размещена программа (где система найдет свободный участок памяти для ее размещения). Поэтому в большинстве случаев в командах используется именно адреса меток и данных. Однако, в некоторых случаях в программе возникает необходимость использовать реальные адреса, которые определяться только после загрузки. Все величины в программе, которые должны быть привязаны к реальным адресам, должны быть настроены с учетом адреса, по которому программа загружена.
Существуют программы, которые при написании рассчитываются на размещение в определенных адресах памяти, так называемые,абсолютные программы. Подготовка таких программ к выполнению значительно проще и выполняется она Абсолютным Загрузчиком. Функции такого Загрузчика гораздо проще:
· функция распределения не выполняется, так как реальное адресное пространство, в котором размещается программа предполагается свободным;
· функция загрузки, конечно, выполняется, но она предельно проста;
· функция связывания может быть исключена из Абсолютного Загрузчика: поскольку все адреса программы известны заранее, адреса, по которым происходят обращения к внешним точкам, могут быть определены заранее;
· функция перемещения исключается;
· функция инициализации остается.
Доля абсолютных программ в общей массе программного обеспечения ничтожно мала. Абсолютными могут быть системные программы самого низкого уровня, программы, записываемые в ПЗУ, программы для встраиваемых устройств и т.п. Подавляющее же большинство системных и все прикладные программы являютсяперемещаемыми, то есть, они могут загружаться для выполнения в любую область памяти, и Загрузчик для таких программ выполняет перечисленные функции в полном объеме.
6. Особенности пользовательского графического интерфейса
Графическим пользовательским интерфейсом (ГИП) (graphical user interface – GUI) называется пользовательский интерфейс, основанный на визуализации объектов, с которыми взаимодействует пользователь в процессе работы.
Первой особенностью ГИП являются, то что в основе его разработки лежат принципы:
· "рабочего стола", обозначающий создание для пользователя его единой рабочей среды, в которой для него доступны не только определенные источники информации (текст, таблицы, графики рисунки и т.д.), но и средства обработки этой информации (приложения);
· "работаете с тем, что видите", обозначающий, что в каждый момент времени сидящий за "рабочем столом" пользователь может работать только с теми документами, которые он видит перед собой; если необходимый доку-мент в данный момент отсутствует на "столе", его предварительно требуется достать из "ящика стола", "папки", "портфеля" и т.д.;
· "что вы видите, то и получите" (WISIWYG), обозначающий идентичность визуального представления информации (документа) как на этапе разработки, так и на этапе использования (например, электронный документ, созданный с помощью редактора Word, выглядит также, как и его бумажная копия; визуальный HTML-редактор (Dreamweaver, FrontPage и др.) позволяет Web-дизайнеру представить создаваемую страницу в том виде, в котором ее сможет просматривать пользователь с помощью броузера; RAD-система (Delphi, Visual C++ и др.) позволяет разработчику приложения представить его в таком виде, в котором с ним будет работать пользователь).
В рамках ГИП все три принципа получили адекватное воплощение: пространство экрана монитора – это рабочий стол пользователя, необходимые для решения задачи объекты представлены на нем в виде соответствующих графических образов (пиктограмм и окон), а чтобы изменить рабочую среду, пользователю достаточно изменить состав объектов, представленных на рабочем столе; при этом все необходимые действия выполняются не с помощью команд, а путем прямого манипулирования образами объектов.
Достоинства прямого манипулирования:
· обеспечивает визуальный контроль за выполняемыми операциями;
· позволяет легко восстановить предшествующее состояние "рабочего стола";