Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx31 / Отчет (3).docx
Скачиваний:
96
Добавлен:
01.08.2013
Размер:
606.3 Кб
Скачать

Белгородский государственный технологический университет

им. В.Г. Шухова

Институт информационных технологий и управляющих систем

кафедра: Программное обеспечение

вычислительной техники и

автоматизированных систем

дисциплина: «Операционные системы»

Курсовая работа на тему:

Разработка программного обеспечения для решения задачи «обедающих философов» с использованием синхронизации с помощью семафоров”

Выполнил:

Юсюмбели Николай

группа ПВ-32.

Проверил:

К. Т. Н., доцент

Михелев В.М.

Белгород 2012

Оглавление

Введение 4

1.Теоретические сведения 6

1.1 Методы синхронизации 6

1.2 Синхронизация потоков, классические задачи 8

2. Постановка задачи. 10

Проблемы 10

Решение задачи. Иерархия ресурсов. 11

3. Использованные API-функции 13

4. Модульная схема 16

Описание основного модуля Unit1.pas 16

Описание модуля Filosof.pas 17

5. Результаты тестирования программы 18

Заключение 22

Использованная литература 23

Приложение 24

Основной модуль Filosof.pas 24

unit Unit1 26

unit Unit2 29

Введение

Данная работа посвящена изучению основ работы с потоками в операционной системе Windows и методам их синхронизации.

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

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

При многопоточной организации работы приложения необходимо уметь

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

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

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

Объектом исследования в данной курсовой работе является API (application programming interfaces – интерфейс программирования приложений)операционных систем семейства Microsoft Windows. Предметом исследования являются объекты ядра ОС Windows, в частности процессы, потоки и семафоры.

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

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

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

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

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

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

При выполнении данной работы, я опирался на книгу: Назарр К., Рихтер Дж. «Windows via C/C++». Изд. Питер, 2009 г. , 896 стр. Данная книга посвящена технологии разработки приложений в 32- и 64-разрядных версиях операционных систем Windows XP и Windows Vista с использованием функций Windows API. Детально раскрываются все важные аспекты работы с ядром ОС Windows.

Соседние файлы в папке docx31