
- •1 Билет
- •1) Стандарт орс (назначение и общее представление, орс сервер, орс группа, орс item).
- •2) Процесс разработки по систем управления(обычный подход – «waterfall», итеративный подход).
- •2 Билет.
- •1) По систем управления. Основные понятия(представление о классах, сом интерфейсах, ActiveX).
- •Билет №3.
- •2) Оригинальные инструментальные средства разработки программного обеспечения систем управления (nCsApp Wizard, State Machine Builder).
- •Билет №4.
- •1) Основные классы mfc (cObject, коллекции, cString, cWnd, механизм документа отображение).
- •2) Идеи компонентного подхода (базовый интерфейс iUnknown, включение, агрегация).
- •IUnknown
- •5 Билет.
- •1) Операционные системы реального времени и системы управления (классификация систем реального времени, Windows nt & rtx, VxWorks, многопоточность).
- •2) Поддержка com в Windows nt (реестр Widows, dcom, реализация сервера в процессе, реализация сервера за пределами процесса).
- •6 Билет.
- •1)Средства синхронизации потоков на примере Windows nt & rtx (Критическая секция,mutex, семафор, shared memory, приоритеты, ...).
- •2) Распределенная модель системы управления (Пример выделения компонентов на базе геометрического канала).
- •Глава 4. Технологии разработки программного обеспечения систем управления 221
- •7 Билет.
- •2.2.3. Базовые понятия операционной системы реального времени
- •2.2.4. Использование в системах управления операционной системы Windows nt
- •2) Общее представление, назначение и использование ActiveX (место ActiveX-элементов в системе управления, способы их создания на базе mfc и на базе atl).
- •4.4.1. Базовые понятия
- •9 Билет.
- •1)Стратегия диспетчеризации на базе расширения rtx (основные потоки системы управления с использованием Windows nt и rtx).
- •2)Назначение страниц свойств, сериализация свойств (стандартные и пользовательские property page).
- •2) Назначение страниц свойств, сериализация свойств (стандартные и пользовательские property page).
- •10 Билет.
- •1) Базовые функции коммуникационной среды (запрос, управление, отображение, вспомагательные функции; выделение фазы обмена данными).
- •2) Идеи ole-автоматизации (базовый интерфейс iDispatch, его ключевые функции).
6 Билет.
1)Средства синхронизации потоков на примере Windows nt & rtx (Критическая секция,mutex, семафор, shared memory, приоритеты, ...).
Синхронизация потоков системы PCNC с помощью объектов ядра Windows NT. Использование многопоточности требует решения таких проблем, как работа с разделяемой памятью, синхронизация потоков, работа с разделяемыми ресурсами (например, портами ввода-вывода). Решения строятся на использовании стандартных объектов ОС (критические секции, мютексы, таймеры, семафоры, события), большая часть из которых является объектами ядра. Формально потоки делятся на основные и порожденные от основных.
Далее рассмотрены проблемы работы с основными потоками, поскольку порожденные могут использовать другие средства ОС для синхронизации потоков (блокировки потоков с помощью оператора SleepO, таймеры Windows, передачи управления с помощью функции PeekMessageO).
Использование критической секции в разделяемой памяти рассмотрим на примере интерпретатора и интерполятора. Интерпретатор интерпретирует кадр и записывает его в формате IPD (Interpolator Data) в кольцевой буфер. Интерполятор считывает кадр из буфера и интерполирует его. На этапе записи и считывания кольцевой буфер должен быть заблокирован, чтобы избежать чтения неполного кадра или перезаписи неполностью прочитанного. Для этой цели создается критическая секция и инициализируется, например, в главном потоке процесса. В обоих потоках защищаемый код обрамлен вызовом функций EnterCriticalSectionO и LeaveCriticalSectionO в начале и конце. Если передача управления осуществлена в критической секции, второй поток не сможет войти в нее и передаст управление первому потоку для выхода из критической секции.
Другим объектом синхронизации потоков служит мютекс(mutex), который позволяет синхронизировать потоки разных процессов. Рассмотрим пример синхронизации данных коммуникационной среды между процессами реального и машинного времени, передаваемых через разделяемую память. Мютекс-объект создается в коммуникационном потоке процесса реального времени с помощью функции CreateMutex(), которая сразу же возвращает описатель (handler) объекта. Win32-поток получает описатель мютекс-объекта с помощью функции CreateMutex() или OpenMutex(). Код в синхронизируемых потоках обрамлен функциями WaitForSingleObject() и ReleaseMutex() в начале и конце. Таким образом, блокируются попытки записи и считывания из разделяемой памяти соответственно коммуникационных потоков реального и машинного времени.
Семафор используют для управления ресурсами, например портами ввода-вывода в системе PCNC. Когда запрашивается ресурс, то ОС уменьшает содержимое счетчика ресурсов. Семафор создается с помощью функции CreateSemaphor(), в которой указано количество ресурсов, подлежащих мониторингу. Описатель семафора из другого потока создается с помощью той же функции или функции OpenSemaphor(). Синхронизация осуществляется в блоке, обрамленном функциями WaitForSingIeObject() и
ReleaseSemaphor(). В отличие от мютекса, освобождение которого возможно только занявшим его потоком, семафор может быть освобожден любым потоком.
Существует и другой объект ядра для синхронизации потоков - событие. В системах PCNC событие можно использовать, когда код инициализации системы или код выхода из ошибки выводится в отдельном потоке. Инициализирующий поток переводит объект-событие в состояние «занято» и приступает к своим операциям. В этот момент рабочий поток приостанавливает свое исполнение и ждет. По окончании инициализации поток инициализации возвращает объект-событие в состояние «свободно». Рабочий поток активизируется и продолжает свою работу. Использование события-объекта позволяет упростить диспетчеризацию процессов реального времени. Диспетчер построен на базе таймера. По сути, это отдельный поток с наивысшим приоритетом. При каждом срабатывании таймера вызывается его call-back функция, в которой реализована схема диспетчеризации. Согласно этой схеме управление потоками осуществляется путем изменения их приоритетов. На этом работа call-back функции таймера завершается. Останов и запуск процессов осуществляет сама ОС.
(СТРАНИЦА 207 Учебника Мартинова и Сосонкина Системы ЧПУ)
Пример – Лекция №8 Средства синхронизации потоков на прмере Windows NT.