А. П. ЕРОПКИН

Научный руководитель – С. В. СИНИЦЫН, к. т.н., доцент

Национальный исследовательский ядерный университет «МИФИ»

ИСПОЛЬЗОВАНИЕ ЭМУЛЯТОРА МЕЖПРОЦЕССНЫХ МЕХАНИЗМОВ В ОБУЧЕНИИ

Рассматривается эмулятор межпроцесснных механизмов IPC ядра Linux и его применение в обучающем процессе.

Очереди сообщений являются одним из трех механизмов IPC (Inter Process Communication – Межпроцессное взаимодействие). Очереди сообщений впервые появились в UNIX System V и предназначаются для асинхронной передачи сообщений между процессами.

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

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

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

1.  ошибки, возникающие в процессе работы программы, не оказывают влияния на ОС;

2.  используемые функции и их параметры аналогичны реальным функциям за исключением случаев упрощения;

НЕ нашли? Не то? Что вы ищете?

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

4.  возможность работы как в ОС GNU/Linux, так и ОС Windows, т. к. все функции реализованы на языке С с использованием стандартной библиотеки, присутствующей в реализации компилятора на всех платформах.

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

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

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

Написание программ с использованием данной библиотеки заключается во включении необходимых заголовочных файлов и использовании функций с префиксом Lab_ .

Основные функции, реализованные в эмуляторе:

1.  int Lab_fork – функция создания процесса;

2.  int Lab_msgget – функция создания и инициализации новой очереди сообщений;

3.  int Lab_msgrcv – функция чтения сообщения из очереди;

4.  int Lab_msgsnd – функция отсылки сообщения в очередь.

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

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

Список литературы

1. “UNIX: взаимодействие процессов” – Питер, 2002, 576 с.

2.. Лабораторные работы по информатике в МИФИ по курсу “Операционные системы”.