Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx54 / Курсовая работа - Силина.docx
Скачиваний:
64
Добавлен:
01.08.2013
Размер:
155.16 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

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

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

Кафедра программного обеспечения вычислительной техники

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

Курсовая работа

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

"Разработка ПО для регулирования движения поездов

при помощи семафора Дейкстра"

Автор работы Силина Т.С. ПВ-32

(ФИО, группа)

Руководитель проекта Михелев В.М.

(ФИО)

Белгород

2012Г. Оглавление

Введение 2

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

1.1 Основные определения 4

1.2 Синхронизация 6

1.3 Методы синхронизации 9

1.4 Постановка задания 13

1.5 Подход к решению задачи 14

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

3. Структура разработанной программы 17

3.1 Модульная схема 17

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

Заключение 21

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

Приложение 23

Введение

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

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

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

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

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

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

Пояснительная записка состоит из 4 глав:

  • В первой главе даётся описание общих теоретических сведений о проблеме синхронизации, постановка моего задания и пример его решения.

  • Вторая глава описывает использованные в приложении API-функции Win32.

  • Третья часть показывает структуру разработанной программы.

  • В четвертой главе приведен один из тестов программы, а также представлены копии экрана работающей программы в различные моменты времени.

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

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

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

1.1 Основные определения

Приложение (application) Windows - это совокупность исполняемых прог­рамм и вспомогательных файлов. Например, Microsoft Word представляет собой одно из популярных приложений Windows. Процессом называется исполняемый экземпляр приложения. В большинстве случаев пользователь может запускать несколько экземпляров (копий) одного и того же приложения одновре­менно. Каждый исполняемый экземпляр - это отдельный процесс со своей соб­ственной областью памяти.

Если сформулировать точнее, то процессом (process) называется исполняемый экзем­пляр (running instance) приложения и комплект ресурсов, отводящийся данному исполняемому приложению.

Поток (thread) - это внутренняя составляющая процесса, которой операци­онная система выделяет процессорное время для выполнения кода. Именно пото­ки исполняют программный код, а не процессы. Каждый процесс должен иметь как минимум один поток. Конечно, основное назначение потоков - дать процессу возможность поддерживать несколько ветвей управления, то есть выполнять больше действий одновременно. В многопроцессорной конфигурации (компью­тер с несколькими процессорами) Windows NT (но не Windows 9x) может распре­делять потоки по процессорам, реально обеспечивая параллельную обработку. В однопроцессорной конфигурации процессор должен выделять кванты времени (time slices) каждому исполняемому в данный момент потоку.

Потоки могут находиться в одном из нескольких состояний:

  • Ready (готов) – находящийся в пуле (pool) потоков, ожидающих выполнения;

  • Running (выполнение) - выполняющийся на процессоре;

  • Waiting (ожидание), также называется idle или suspended, приоста­новленный - в состоянии ожидания, которое завершается тем, что поток начинает выполняться (состояние Running) или переходит в состояние Ready;

  • Terminated (завершение) - завершено выполнение всех команд потока. Впоследствии его можно удалить. Если поток не удален, система может вновь установить его в исходное состояние для последующего использования.

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