Что такое ресурс в программировании

: Программирование в среде X Window на основе библиотеки Xlib :

С о д е р ж а н и е

Ресурсы программ

Как правило, программисты создают ресурсы каждый по-своему. В X Window сделана попытка унифицировать этот процесс.

Формат файла ресурсов

В X файл ресурсов есть обычный текстовый файл, каждая строка которого задает тот или иной параметр (ресурс) программы. (При этом предполагается, что программу «населяют» именованные объекты, связанные в некоторую иерархию). Общий вид строки следующий:

Подобная строка задает значение ресурса для подобъектов иерархии объектов программы. Например, запись

говорит, что в программе ProgramName у объекта с именем DialogWindow параметр Background (цвет фона) имеет значение Red (красный цвет).

Вместо имен объектов могут указываться их классы. Обычно класс имеет то же самое имя, что и объект, но начинается с заглавной буквы, например,

Часть объектов или классов в левой части строки, задающей ресурс, может заменяться символом ‘*’, например, строка

Связка с помощью символа ‘.’ имеет больший приоритет, чем связка с помощью ‘*’. Так, если в файле, задающем ресурсы, есть две строки

Доступ к ресурсам программ

Фрагмент программы, выполняющий чтение из файла ресурсов, будет выглядеть следующим образом:

Функция XGetDefault() проста в обращении, но не достаточно гибка. Так, например, с ее помощью нельзя прочитать содержимое произвольного файла ресурсов. Есть другие более развитые возможности.

Вызов функции XrmInitialize() инициализирует менеджер ресурсов. Обращение к этой функции предшествует вызовам остальных функций.

Функция XrmGetFileDataBase() позволяет считать указанный ресурсный файл и создать по нему в памяти базу данных ресурсов. Функция

Функция XrmPutResource() сохраняет ресурс в базе данных. XrmPutFileDatabase() записывает базу данных ресурсов в файл.

Источник

Практически любое высококачественное приложение должно использовать ресурсы. Ресурс представляет собой любые неисполняемые данные, которые логически развертываются вместе с приложением. Ресурсы могут отображаться в приложении в виде сообщений об ошибках либо как часть интерфейса пользователя. Ресурсы могут содержать данные различных видов, включая символьные строки, изображения и объекты. (Для записи сохраняемых объектов в файл ресурсов объекты должны быть сериализуемыми.) Благодаря хранению данных в файле ресурсов сами данные можно изменять без повторной компиляции всего приложения. Это также позволяет хранить данные в одном месте и исключает необходимость в использовании жестко закодированных данных, которые хранятся в нескольких местах.

Создание и локализация ресурсов

В нелокализованном приложении файлы ресурсов можно использовать как хранилище для данных приложения, особенно для строк, которые в противном случае было бы необходимо жестко задавать в нескольких местах в исходном коде. Чаще всего ресурсы создаются в виде текстовых (txt) или XML-файлов (.resx), а для их компиляции в двоичные RESOURCES-файлы используется Resgen.exe (генератор файлов ресурсов). Эти файлы можно затем встроить в исполняемый файл приложения с помощью компилятора языка. Дополнительные сведения о создании ресурсов см. в разделе Создание файлов ресурсов.

Вы также можете локализовать ресурсы приложения для конкретных языков и региональных параметров. Это позволяет создавать локализованные (переведенные) версии приложений. При разработке приложения, использующего локализованные ресурсы, необходимо назначить язык и региональные параметры, являющиеся нейтральными или резервными, языком и региональными параметрами, ресурсы которого используются в случае отсутствия подходящих ресурсов. Как правило, ресурсы нейтрального языка и региональных параметров хранятся в исполняемом файле приложения. Остальные ресурсы для отдельных языков и региональных параметров хранятся в автономных вспомогательных сборках. Дополнительные сведения см. в разделе Создание вспомогательных сборок.

Упаковка и развертывание ресурсов

Развертывание ресурсов локализованного приложения выполняется во вспомогательных сборках. Вспомогательная сборка содержит ресурсы для одного языка и региональных параметров; в ней нет никакого кода приложения. В модели развертывания вспомогательной сборки вы создаете приложение с одной сборкой по умолчанию (которая обычно является главной сборкой) и одной вспомогательной сборкой для каждого языка и региональных параметров, поддерживаемых приложением. Поскольку вспомогательные сборки не являются частью главной сборки, ресурсы, относящиеся к конкретному языку и региональным параметрам, можно легко заменять или обновлять, не заменяя главную сборку приложения.

Точно определите ресурсы, которые будут применяться в сборке ресурсов по умолчанию для приложения. Так как сборка по умолчанию является частью главной сборки, то при внесении в нее любых изменений потребуется замена главной сборки. Если ресурс по умолчанию не предоставлен, то в случае его поиска процессом использования резервных ресурсов будет создаваться исключение. В хорошо спроектированном приложении при использовании ресурсов исключения никогда не создаются.

Дополнительные сведения см. в статье Упаковка и развертывание ресурсов.

Извлечение ресурсов

Приложение во время выполнения загружает соответствующие локализованные ресурсы отдельно для каждого потока на основе языка и региональных параметров, которые заданы свойством CultureInfo.CurrentUICulture. Значение этого свойства формируется следующим образом:

Присвоением свойству Thread.CurrentUICulture объекта CultureInfo, который представляет локализованные значения языка и региональных параметров.

Если язык и региональные параметры не заданы явным образом, соответствующие значения по умолчанию для пользовательского интерфейса каждого потока извлекаются из свойства CultureInfo.DefaultThreadCurrentUICulture.

Дополнительные сведения об указании языка и региональных параметров для пользовательского интерфейса см. в разделах справки CultureInfo и CultureInfo.CurrentUICulture.

Ресурсы для текущего или определенного языка и региональных параметров пользовательского интерфейса можно получить с помощью класса System.Resources.ResourceManager. Хотя для получения ресурсов чаще всего используется класс ResourceManager, пространство имен System.Resources содержит дополнительные типы, которые можно использовать для получения ресурсов. Сюда входит следующее.

Класс ResourceReader, который позволяет перечислять ресурсы, встроенные в сборку или хранящиеся в отдельном двоичном RESOURCES-файле. Это удобно, когда точные имена ресурсов, доступных во время выполнения, неизвестны.

Класс ResXResourceReader, который позволяет получать ресурсы из XML-файла (.resx).

Класс ResourceSet, который позволяет получать ресурсы для конкретного языка и региональных параметров без учета правил отката. Ресурсы могут храниться в сборке или отдельном двоичном RESOURCES-файле. Можно также разработать реализацию IResourceReader, которая позволит использовать класс ResourceSet для извлечения ресурсов из другого источника.

Класс ResXResourceSet, который позволяет получить в память все элементы из XML-файла ресурсов.

Источник

Понятия вычислительного процесса и ресурса.

Вычислительный процесс − это процесс выполнения программы совместно с ее данными на процессоре (редактирование текста, трансляция, выполнение какой-либо программы).

Под ресурсом понимают некоторый объект, который обладает свойствами повторного и неоднократного использования процессами, запрашивающими, используемыми и освобождающими ресурсы.

На начальном этапе программирования ВС ресурсами считались: процессорное время, память, команды ввода-вывода, периферийные устройства. С расширением понятия объекта расширилось и понятие ресурса.

Ресурс – это абстрактная структура с некоторым набором атрибутов, которые характеризуют ее физические характеристики и способы доступа к ней. Программные и информационные ресурсы, сообщения, синхросигналы могут быть определены как подобные объекты. Концепция ресурса определяется с целью выработать механизмы распределения и управления ресурсами.

Ресурсы подразделяются на делимые (оперативная память) и неделимые (принтер, однократно используемые программные модули – модули загрузки), делимые подразделяются на используемые одновременно (в один и тот же момент времени, например, жесткий диск) и используемые параллельно (попеременно за некоторый интервал времени, например, процессорное время, данные).

Для более полного понимания понятия процесса и ресурса невозможно обойти такое понятие, как мультипрограммирование. Цель мультипрограммирования – повысить быстродействие ВС в целом. В первых ВС, созданных на принципах Дж. Неймана, все подсистемы и устройства ЭВМ управлялись только центральным процессором (ЦП). Выполнение любой программы прерывалось, например, операциями ввода-вывода. Ввод в состав ВС контроллеров позволил распараллелить ввод-вывод и вычисления. Но ЦП всё равно простаивал в ожидании ввода-вывода очередной порции данных. Поэтому был предложен мультипрограммный режим, суть которого состоит в выполнении различных действий в одно и то же время. Т.е. для одной задачи делаются вычисления, для другой – ввод, для третьей – вывод и т.д. С ростом загрузки ресурсов растет и время выполнения каждой задачи, или другими словами, мультипрограммирование повышает пропускную способность системы, но замедляет работу по каждой задаче за счет затрат времени на ожидание освобождения ресурса.

Ресурс задаче может быть выделен если:

1) ресурс свободен и на него нет запроса от задачи с более высоким приоритетом.

2) текущий и предыдущие запросы позволяют использовать ресурс совместно, то ресурс делится.

3) ресурс используется задачей более низкого приоритета, то ресурс временно отбирается.

Если условие выполнено, то задача выполняется с выделенным ресурсом, а если нет, то задача ставится в очередь к ресурсу и переводится в режим ожидания.

Управление ресурсами организуется на основе некоторой стратегий или набора правил, которые обеспечивают высокую эффективность использования ресурсов.

Память может делиться параллельно между некоторыми процессами, которые одновременно в ней существуют, либо последовательно по очереди в порядке выполнения. Параллельное деление более эффективно в плане загрузки процессора (одновременно выполняется множество задач), но ухудшает условия выполнения для каждого процесса в отдельности из-за постоянных обменов память − диск.

Для внешней памяти ресурсами считаются как ее объем, так и доступ к ней: память может разделяться одновременно, а доступ к ней − попеременно. Внешние устройства, как объект реализации внешней памяти, − диски, магнитные ленты или стриммеры, внешняя периферия − разделяются между процессами параллельно, если используют механизм прямого доступа, и являются неделимым ресурсом, если работают с последовательным доступом.

Ещё один вид ресурсов − это программные модули. Выделяют, как важнейший ресурс, системные модули. Среди них − однократно используемые (неделимый ресурс) – модули загрузки ОС и многократно используемые (разделяемый ресурс) − утилиты, подпрограммы. Многократно используемые делятся на:

• Привилегированные модули, они работают в привилегированном режиме (когда никакие внешние события не могут нарушить порядок их работы или при отключенной системе прерываний). Они являются попеременно разделяемым ресурсом.

• Непривилегированные модули, они работают в обычном режиме (с включенной системой прерываний). Они не являются разделяемыми ресурсами.

• Реентерабельные модули, они допускают повторное обращение или повторное прерывание, т.е. у них допускается повторный запуск другим процессом после прерывания их работы в первом процессе.

• Повторно-входимые (re-entrance), они подобны предыдущим, но их выполнение нельзя прервать.

К особому виду ресурсов относят информационные ресурсы (или данные). Они существуют в виде переменных в ОП или файлов на диске. Данные, используемые процессами только для чтения, можно считать разделяемыми ресурсами. Если же процессы могут изменять информационные ресурсы, то необходимо специальным образом организовать работу с такими данными.

Источник

Понятие процесса и ресурса

Дата добавления: 2013-12-23 ; просмотров: 1754 ; Нарушение авторских прав

Введение

Системы

Состав и назначение и классификация операционной

Вычислительная система содержит в первую очередь аппаратное обеспечение: процессор, память, монитор, дисковые устройства и т.д., обычно объединенные между собой магистральными или иными связями. Во вторую очередь это программное обеспечение. Все программное обеспечение принято делить на две части: прикладное и системное. К прикладному программному обеспечению, как правило, относятся разнообразные пользовательские приложения, игры, текстовые процессоры, и т.п. Под системным программным обеспечением обычно понимают программы, способствующие функционированию и разработке прикладных программ. Операционная система является фундаментальным компонентом системного программного обеспечения.

1. Предоставление пользователю некоторой виртуальной или расширенной машины, которая предоставляет удобства работы с ЭВМ;

2. Распределение ресурсов между выполняющимися программами (задачами, процессами).

Понятие вычислительного процесса, или просто процесса, является одним из основных при рассмотрении операционных систем. Процесс, иногда называемый задачей (task), состоит из команд программы, выполняемых процессором, данных и информации о выполняемой задаче, такой как выделенная область памяти, открытые файлы и статус процесса. Таким образом, программа является статическим объектом, а процесс – динамическим.

Концепция процесса предполагает два аспекта: во-первых, он является носителем данных и, во-вторых, он собственно и выполняет операции, связанные с обработкой этих данных.

В качестве примеров процессов (задач) можно назвать прикладные программы пользователей, утилиты и другие системные обрабатывающие программы. Процессом может быть редактирование какого-либо текста, трансляция исходной программы, ее компоновка, исполнение. Причем трансляция какой-нибудь исходной программы является одним процессом, а трансляция следующей исходной программы — другим процессом, поскольку транслятор как объединение программных модулей здесь выступает как одна и та же программа, но данные, которые он обрабатывает, являются разными.

Концепция процесса преследует цель выработать механизмы распределения и управления ресурсами. Понятие ресурса, так же как и понятие процесса, является, пожалуй, основным при рассмотрении операционных систем. Термин ресурс обычно применяется по отношению к многократно используемым, относительно стабильным и часто недостающим объектам, которые запрашиваются, задействуются и освобождаются в период их активности. Другими словами, ресурсом называется всякий объект, который может распределяться внутри системы.

Существует несколько видов ресурсов:

Ресурсы устройств – это время, в течение которого устройство занято некоторой выполняющейся программой. Прежде всего, одним из важнейших ресурсов устройств является сам процессор, точнее — процессорное время.

Вторым видом ресурсов вычислительной системы является память. Ресурс памяти – это емкость, требуемая для выполняющейся программы. В оперативной памяти одновременно может располагаться несколько задач одновременно. Желательно память выделять для возможно большего числа исполняемых задач. С другой стороны, чем больше оперативной памяти может быть выделено для конкретного текущего вычислительного процесса, тем лучше будут условия его выполнения. Поэтому проблема эффективного разделения оперативной памяти между параллельно выполняемыми вычислительными процессами является одной из самых актуальных.

Особым видом ресурсов являются программные модули. Прежде всего, речь идет о системных программных модулях, поскольку именно они обычно считаются программными ресурсами и поэтому могут распределяться между выполняющимися процессами.

Внешняя память тоже является ресурсом, который часто необходим для выполнения вычислений. Внешняя память обладает двойственным ресурсом. С одной стороны она является ресурсом памяти, с другой стороны – ресурсом устройства. Когда говорят о внешней памяти (например, НМД), то собственно память и время доступа к ней считаются разными видами ресурса, причем каждый из них может предоставляться независимо. Но для полноценной работы с внешней памятью необходимо иметь оба этих ресурса.

Источник

Работаем с ресурсами

Если вы уже достаточно программировали под Win32, то не можете не знать, что такое ресурсы. Однако у начинающих программистов этот термин нередко вызывает вопросы, поэтому, думаю, будет нелишним напомнить (или объяснить), что мы имеем в виду, когда говорим «ресурс».

Традиционно выделяют разные типы ресурсов. К стандартным относятся значки (иконки), курсоры для мыши, bitmap-картинки, строки и таблицы строк, комбинации «горячих» клавиш (accelerators), меню, диалоговые окна и информация о версии приложения. Существует также специальный тип ресурсов под названием RCDATA, позволяющий добавить в программу любые данные, не подходящие под приведенную выше классификацию, и работать с ними тоже как с обычными ресурсами.

«Классическое» программирование под Win32, давно ставшее анахронизмом, предусматривает такой подход к созданию приложений, при котором ресурсы используются более чем интенсивно. Однако в большинстве сред разработки, с которыми поставляются фирменные библиотеки для создания пользовательского интерфейса, ресурсы задействованы не совсем так, как предлагали создатели операционной системы. Например, в Borland Delphi и C++ Builder все формы (окна) и всё, что на них, включая меню и таблицы «горячих» клавиш, находятся в секции RCDATA в виде специального текстового описания формы.

С WYSIWYG-редакторами работать, конечно же, на порядок проще, чем писать скрипты в блокноте. Картинки в них рисовать, естественно, не так удобно, как в Adobe Photoshop, но в плане редактирования меню, диалогов, да и иконок с курсорами всё не так уж и плохо. В них ресурсы можно редактировать, как правило, и в виде скриптов, и в скомпилированном двоичном виде. Таких программ, к счастью тоже немало. Наиболее хорошо знаком программистам, пожалуй, редактор ресурсов из Microsoft Visual Studio. Есть также Borland Resource Workshop, которому сто лет в обед, а в последних версиях сред разработки от Borland его уже не видно и не слышно.

Программы, которые умеют работать с ресурсами в исполняемых файлах, как правило, тоже имеют некоторые зачатки WYSIWYG. Дальше всех в этом направлении продвинулся Resource Hacker, но и остальные тоже не так уж плохи.


Resource Builder от SiComponents

После скачивания пробной версии и её установки вы сможете запустить программу и увидеть примерно то же самое, что содержит скриншот к статье. В целом, по моему скромному мнению, интерфейс достаточно удобный и симпатичный.

Что такое ресурс в программировании. Смотреть фото Что такое ресурс в программировании. Смотреть картинку Что такое ресурс в программировании. Картинка про Что такое ресурс в программировании. Фото Что такое ресурс в программировании

Разработчики Resource Builder’а утверждают, что это единственный WYSIWYG-редактор ресурсов, поддерживающий Unicode-ресурсы, в том числе и RC-скрипты в этой кодировке. Кроме того, программа поддерживает и 16-битные, и 32-битные скомпилированные файлы ресурсов, аналогично и исполняемые файлы. Также присутствует поддержка изменения ресурсов без перекомпиляции исполняемого файла, которая, по существу, является стандартной и реализована во многих программах, однако это ничуть не умаляет полезности данной функции. Что интересно, Resource Builder умеет работать и с ресурсами компонентов Delphi/C++ Builder.

Графический редактор, встроенный в Resource Builder, по своим возможностям просто-таки близнец Paint’а. В то же время, в отличие от многих других редакторов, он поддерживает редактирование изображений любого размера и с любой глубиной цвета. В справке написано, что программа умеет работать не только со стандартными BMP-картинками, но и с изображениями в формате JPEG. Однако с такими ресурсами нельзя будет работать теми же системными средствами, что и с BMP, поэтому лично мне эта возможность не кажется такой уж полезной.

С редактированием стандартных диалоговых ресурсов тоже никаких проблем нет. Resource Builder поддерживает как стандартные элементы, предоставляемые Windows, так и позволяет осуществить подключение сторонних библиотек с элементами управления. Причём одна такая библиотека поставляется вместе с самим Resource Builder’ом. Она, правда, небольшая и содержит всего две кнопки, но зато снабжена исходными текстами, так что каждый желающий сможет создать на её основе свою библиотеку элементов управления.

Вместе с Resource Builder поставляется и консольный компилятор ресурсных скриптов, поэтому те, кто хочет компилировать ресурсы из командной строки, также будут иметь возможность это сделать. Языковые возможности компилятора полностью совпадают с возможностями визуального редактора ресурсов, так что все ресурсные скрипты, созданные с помощью Resource Builder’а, полностью с ним совместимы.

Ресурсы в программе можно поместить в специальную ресурсную DLL-библиотеку, причём для того, чтобы сделать это, не требуется никаких сторонних инструментов. Одним движением руки в программу или в ресурсный файл можно добавить XP Manifest (специальный ресурс, обеспечивающий поддержку визуальных стилей Windows XP). Для удобства пользователя в Resource Builder’е имеется поддержка многоязычного интерфейса, причём русский язык включён в дистрибутив пробной версии программы. Также стоит отметить присутствие «Мастера настроек», который можно в любой момент вызвать из меню «Инструменты». С его помощью можно быстро настроить самое важное, не вникая в детали всех настроек, которых в Resource Builder’е не так уж и мало.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *