WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 |   ...   | 2 | 3 || 5 | 6 |   ...   | 14 |

2) протокол взаимодействия между ядром и файловым сервером;

3) библиотека разработчика libfuse;

4) реализация файловой системы.

С точки зрения разработчика Linux FUSE представляет собой набор:

— колбеков (callback), реализуемых файловым сервером для обработки запросов ядра.

— функций управления, например fuse_main() из libfuse, обеспечивающих управление файловым сервером.

Libfuse имеет довольно простой API, что облегчает разработку ФС в сравнении с разработкой ФС в составе ядра. По сути, модуль ядра экспортирует внутренние интерфейсы в адресное пространство приложений. В силу того что эти интерфейсы разработаны для режима ядра, данный модуль является довольно сложной частью FUSE и его поддержка от версии к версии Linux требует значительных усилий со стороны разработчиков ядра.

NetBSD FUSE Реализованный в этой ОС фреймворк PUFFS является прямым аналогом LinuxFUSE [5].

Семантика API в обоих случаях одна и та же. Основное различие заключается в том, что в PUFFS используются континуации (continuations), а в FUSE — потоки (threads). Континуации, по сути, являются потоками с явной диспетчеризацией. Такая модель упрощает отладку и позволяет представить файловый сервер в виде конечного автомата. Учитывая, что ни в FUSE, ни в PUFFS запросы не обрабатываются параллельно, это является значительным преимуществом.

Для поддержки FUSE в NetBSD используют специальную библиотеку librefuse, которая обеспечивают совместимость с файловыми серверами, написанными для FUSE.

FUSE в NetBSD имеет следующую структуру:

1) модуль ядра (puffs);

2) протокол взаимодействия между ядром и файловым сервером;

Сборник трудов молодых ученых и сотрудников кафедры ВТ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ 3) библиотека libpuffs;

4) библиотека librefuse, используемая для коммуникаций между libpuffs и файловыми серверами FUSE;

5) реализация пользователем файловой системы (файлового сервера).

Как было отмечено выше, данный подход практически не отличается от Linux FUSE, за исключением деталей реализации, которые в данном случае обусловлены лишь предпочтениями разработчика и в незначительной степени — особенностями NetBSD. Так как не существует ФС, разработанных для PUFFS (за исключением нескольких тестовых), авторы считают данную работу реализацией поддержки FUSE в NetBSD.

ФС в MINIX MINIX 3 является наиболее развитой микроядерной операционной системой. Поддержка POSIX и совместимость с прикладными программами NetBSD делают систему функциональной и пригодной для полноценного использования.

MINIX 3 широко известна в академических кругах и активно используется в качестве платформы для исследований в области микроядерных ОС [6, 7].

Рассмотрим работу файловой системы (сервера) в микроядерной ОС на примере MINIX 3. На рис. 1 проиллюстрировано взаимодействие ФС (FS) с другими модулями системы.

1. Пользовательский процесс делает системный вызов, связанный с ФС.

2. VFS осуществляет предварительную обработку вызова и отправляет запрос ФС. Рис. 3. Файловая система обрабатывает запрос, при этом возможно обращение к диску.

FUSE в MINIX В MINIX 3 для поддержки FUSE используются собственная реализация PUFFS и оригинальная версия librefuse из NetBSD (рис. 2).

Рис. Сборник трудов молодых ученых и сотрудников кафедры ВТ 28 ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ 1. Пользовательский процесс осуществляет системный вызов, связанный с ФС.

2. VFS обрабатывает запрос и запрашивает ФС (libpuffs).

3. Libpuffs инициализирует свои структуры данных, используя данные запроса от VFS, и вызывает обработчик, предоставленный librefuse.

4. Librefuse преобразует запрос в соответствующий для libfuse и вызывает обработчик, предоставленный ФС (например, fuse-ntfs-3g).

5. Реализация ФС, например fuse-ntfs-3g, обрабатывает запрос. При этом возможны дополнительные запросы к VFS посредством системных вызовов, в частности для ввода— вывода.

По сравнению с Linux и NetBSD поддержка FUSE в MINIX 3 не требует значительных усилий. Это обусловлено тем, что в микроядерной ОС работа ФС в АПП изначально возможна. Но для поддержки «чужих» файловых систем, основанных на FUSE, требуются дополнительные накладные расходы на преобразование структур данных.

Файловые системы, разработанные с использованием FUSE, могут функционировать в MINIX 3 без каких-либо модификаций, благодаря тому что протоколам взаимодействия ФС в АПП с ядром ОС присуще единообразие, обусловленное семантикой файловых системных вызовов.

Заключение Переход на файловые системы, работающие в адресном пространстве пользователя, актуален, но затруднен тем, что ФС является сложным и большим по объему компонентом операционной системы. Как было показано, Rump можно считать решением для постепенного перехода к ФС в АПП. При этом новые реализации должны быть «истинно» микроядерными или использовать FUSE, в то время как работу существующих ФС в АПП целесообразно обеспечивать на основе Rump.

Преимущество FUSE в сравнении с «истинными» микроядерными ФС заключается в доступности на разных платформах, что и говорит о кроссплатформенности их реализаций.

Этот факт играет важную роль в организации бета-тестирования и создании коммерческих продуктов.

В MINIX 3 в настоящее время доступны ext2 и fuse-ntfs-3g, возможно применение этой ОС в учебном процессе при изучении проблем обеспечения кроссплатформенности. Проведение сравнений с аналогичными ФС в Linux пока затруднено, так как в MINIX 3 ни ext2, ни FUSE еще не оптимизированы.



ЛИТЕРАТУРА 1. Accetta M., Baron R., Bolosky W., Golub D., Rashid R., Tevanian A., and Young M. Mach: A New Kernel Foundation for UNIX Development // Proc. of Summer Usenix. 1986. July.

2. Herder J. N., Bos H., Gras B., Homburg Ph., Tanenbaum A. S. Construction of a Highly Dependable Operating System // Proc. 6th Europ. Dependable Computing Conf. (EDCC-6).

Coimbra, Portugal, 2006. P. 3—12.

3. AnttiKantee. Rump File Systems: Kernel Code Reborn // USENIX Annual Technical Conf. 2009.

4. MiklosSzeredi. Filesystem in USErspace [Электронный ресурс]: .

5. AnttiKantee. Puffs — Pass-to-Userspace Framework File System // AsiaBSDCon 2007. P. 29—42.

6. Таненбаум Э., Вудхалл А. Операционные системы: разработка и реализация. СПб: Питер, 2007.

7. Tanenbaum A. S., Appuswamy R., Bos H., Cavallaro L., Giuffrida C., Hruby T., Herder J. N., van der Kouwe E., van Moolenbroek D. MINIX 3: Status Report and Current Research // USENIX.

2010. Vol. 35, N 3. P. 7—13.

Сборник трудов молодых ученых и сотрудников кафедры ВТ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ Сведения об авторах Иванов Евгений Юрьевич — студент; Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, кафедра вычислительной техники; E-mail: i@eivanov.com Тимченко Борис Дмитриевич — канд. техн. наук, доцент; Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, кафедра вычислительной техники; E-mail: bdtimchenko@gmail.com Сборник трудов молодых ученых и сотрудников кафедры ВТ КОМПЬЮТЕРНЫЕ СИСТЕМЫ И СЕТИ УДК 004.272.ПОВЕДЕНЧЕСКОЕ ОПИСАНИЕ АППАРАТНЫХ БЛОКОВ ОБРАБОТКИ ДАННЫХ В НЕФОННЕЙМАНОВСКИХ ПРОЦЕССОРАХ А. В. Пенской Рассматриваются особенности поведенческого описания аппаратной составляющей нефоннеймановского процессора, ориентированного на обработку цифровых сигналов в режиме реального времени (фильтрация, синхронное детектирование, ПИД-регулирование). Также рассматривается архитектура специализированного процессора.

Ключевые слова: нефоннеймановская архитектура, поведенческое описание, аппаратура.

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

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

— разрядность цифрового сигнала — 32 бита;

— частота дискретизации — 1 МГц;

— возможность изменения функциональности между запусками не специалистом в области вычислительной техники;

— возможность изменения параметров ВС в режиме реального времени.

Для совмещения высокой производительности и гибкости ВС потребовалось создание семейства специализированных процессоров модифицированной MIMD-архитектуры [1], обладающей следующими особенностями:

— глобальный параллелизм вычислений;

— специализированные вычислительные блоки;

— программное управление с гарантированным временем исполнения;

— расширяемая архитектура (изменение набора вычислительных блоков).

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

Архитектура вычислителя Данная архитектура относится к классу модифицированных MIMD-архитектур (множественный поток инструкций, множественный поток данных), это позволяет:

— максимизировать параллелизм вычислений благодаря использованию множества вычислителей, связанных по данным только причинностью;

Сборник трудов молодых ученых и сотрудников кафедры ВТ КОМПЬЮТЕРНЫЕ СИСТЕМЫ И СЕТИ — использовать различные блоки обработки данных с различными протоколами управления благодаря множественному потоку инструкций.

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

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

Управляющая шина Диспетчер БОД n БОД 1 БОД Бод 1 Бод 2 Бод n Внешние устройства Шина данных Данные передаются с помощью общей 32-битной шины данных без арбитража. Отсутствие конфликтов при передаче данных обеспечивает компилятор. Операции ввода/вывода реализуются непосредственно блоками обработки данных, что позволяет абстрагироваться от этого вопроса при рассмотрении архитектуры.

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

— описание алгоритма, который должна реализовывать ВС (не рассматривается в настоящей статье);

— описание конкретной реализации процессора:

— схема подключения блоков обработки данных к шине управления;





— описание блоков обработки данных.

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

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

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

Сборник трудов молодых ученых и сотрудников кафедры ВТ 32 КОМПЬЮТЕРНЫЕ СИСТЕМЫ И СЕТИ — невозможность использования блока обработки данных при решении всего доступного для него спектра задач, приводящая к неэффективности распределения загрузки процессора;

— высокая связанность программного обеспечения и аппаратуры, затрудняющая поддержку;

— невозможность создания единого полного шаблона, позволяющего описать произвольное поведение блока обработки данных;

— сложность и высокая стоимость поддержки множества шаблонов.

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

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

— расширение необходимыми временными задержками приводит к неконтролируемому скачку сложности описания;

— не отражает параллелизм происходящих процессов, чем затрудняет восприятие описания.

Задача: описание произвольной функциональности блока обработки данных во времени. Способ описания: язык темпоральной логики [2]. Данное описание, как и императивное, подразумевает явное разделение между физическим и поведенческим аспектами. Поведенческое описание представляет собой совокупность высказываний на языке темпоральной логики, которая отражает порядок и временные интервалы между событиями (установка управляющего сигнала, установка стабильного значения в выходном порту, загрузка значения во входной порт и т.д.). Так как данный подход не обладает существенными недостатками, он был выбран как основной.

Существует целый ряд различных темпоральных логик [3] и систем, которые их реализуют. В рамках данного проекта в качестве основы была выбрана реализация SystemVerilog Assertions [4] благодаря:

— промышленному стандарту для спецификации и верификации протоколов;

— простоте генерации описаний блоков обработки данных;

— наличию готового инструментария.

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

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

Сборник трудов молодых ученых и сотрудников кафедры ВТ КОМПЬЮТЕРНЫЕ СИСТЕМЫ И СЕТИ Дальнейшее развитие разработки направлено на формализацию и унификацию описаний и механизмов работы. В качестве наиболее перспективного направления развития видится применение теории категорий [5], что позволит:

— унифицировать описания, применяемые в инструментарии;

— обеспечить высокую модульность инструментария;

— получить готовые механизмы работы с представлениями;

— обеспечить высокий уровень формализации решаемой задачи.

ЛИТЕРАТУРА 1. Таненбаум Э. Архитектура компьютера. СПб: Питер, 2007. 844 с.

2. Emerson E. A. Temporal and modal logic. Handbook of Theoretical Computer Science. The MIT Press, 1990.

3. Narayanan S. Choice of Temporal Logic Specifications // EE219C Lecture. 2003.

4. Pellauer M., Lis M., Baltus D., Nikhil R. Synthesis of Synchronous Assertions with Guarded Atomic Actions. Massachusetts Institute of Technology, 2005.

5. Fiadeiro J. L. Categories for Software Engineering. University of Leicester, UK: Springer, 1998.

255 p.

Pages:     | 1 |   ...   | 2 | 3 || 5 | 6 |   ...   | 14 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.