Алгоритмы и механизмы синхронизации процессов в операционных системах

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

тм синхронизации для её решения, используя знания, полученные на предыдущих уроках.

Контрольные вопросы:

4.Что из себя представляют классические задачи синхронизации?

5.Какие проблемы нужно решить в задаче обедающих философов?

.Какой механизм подходит для этого больше всего? Почему?

Методические рекомендации учителю:

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

Урок 17.

Тема: Контрольное занятие.

Тип урока: Практический.

Цели урока:

уметь:

отвечать на теоретические вопросы по пройденному материалу.

определять стабильность работы механизмов синхронизации.

Краткое содержание урока:

В ходе урока ученики выполняют тестовые занятия для проверки усвоенного материала элективного курса. После этого они выполняют задания связанные с программным продуктом реализации семафора.

Типы практических заданий:

Выполняется работа, которая должна содержать следующие пункты:

1.Вариант индивидуального задания.

2.Временные диаграммы работы потоков.

.Результаты решения, представленные в режиме Числовые параметры.

.Анализ стабильности синхронизации.

.Выводы по работе.

Требования к уровню подготовки учащихся после изучения элективного курса.

Учащиеся должны:

Знать/понимать:

Основные понятия, связанные с процессами и синхронизацией, такие как процесс, поток, системные ресурсы, процессорное время, синхронизация, критические секции, семафор, монитор.

Классификацию ОС семейства Windows.

Иметь представление о принципах взаимодействия процессов.

Алгоритмы синхронизации.

Структуру механизма синхронизации типа семафор.

Уметь:

Приводить примеры ОС разных поколений.

Называть различные алгоритмы и механизмы синхронизации.

Применять алгоритмы синхронизации.

Применять механизм синхронизации типа семафор.

Решать классические задачи синхронизации.

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

2.2 Программная поддержка элективного курса Процессы в ОС Windows

 

Описание программного продукта Реализация семафора

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

Программа состоит из двух модулей: основного модуля Main.pas и модуля WriterThread.pas.

В основном модуле прописаны процедуры создания потоков и их начальные параметры, а также процедуры, обеспечивающие отображение работы программы (графику) в двух режимах: Числовые параметры и Диаграмма работы. При нажатии на кнопку Создать потоки создаются два потока, которые, получив соответствующие параметры, запускаются и работают, пока не выполнят функцию Execute (основная функция потока). Так же при этом создается семафор с параметрами: начальное значение счётчика равно 1, максимальное значение счётчика равно 1 (семафор является двоичным), имя семафора - qwerty. Для создания семафора вызывается функция Semaphore:=CreateSemaphore(nil, 1,1, qwerty).

Модуль WriterThread.pas имитирует работу потоков. Работа потоков оформлена как процедуры Thread1.Execute и Thread2.Execute. В этом же модуле реализовано динамическое построение графиков для потоков и самого семафора, а так же динамическое добавление числовой информации.

Окно программы поделено на две части (рис 7):

1)Настройка трех основных параметров работы семафора - время работы вне критической секции, время работы в критической секции и время ожидания освобождения семафора. Вводимые значения должны быть в формате миллисекунд. Здесь же находятся кнопки создания потоков, переключения режима отображения данных и очистки данных (рис. 7-1)Каждый из трех параметров записывается в соответствующую переменную и передается потоку:

Работа в критической секции - WorkSemafor.

Работа вне критической секции - SleepDuration.

Время ожидания освобождения семафора - WaitForDuration.

2)Вывод данных полученных в результате работы потоков через семафор. Данные представлены в двух видах - числовом и графическом. За переключение режима отображения отвечает кнопка Диаграмма работы/Числовые параметры. (рис 7-2)

Также происходит инициализация графики функцией GraphInit для последующего динамического рисования графиков.

Функция отвечает за:

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

Рисование черных линий для визуального разграничения места графиков.

Добавление пояснительных надписей

Рисование квадратов с примерами цветового оформления графиков.

В режиме отображения числовых параметров в ListBox выводятся следующие данные (Рис 8):

.Номер потока.<