Взаимное исключение при взаимодействии процессов

Автор: Пользователь скрыл имя, 12 Марта 2012 в 16:03, курсовая работа

Описание работы

Целью данной курсовой работы является реализация приложения реализуещего задачу «взаимного исключения». Для достижения намеченной цели будет необходимо решение нескольких задач:
- изучение предметной области;
- изучение основных задач синхронизации: взаимное исключение, производители-потребители, читатели-писатели;
- реализация решения задачи «взаимного исключения»;

Содержание

Введение 3
1.Процессы 5
2. Задачи синхронизации
3. Семафоры 19
4. Реализация приложения с использованием взаимного исключения.
Заключение
Список используемой литературы

Работа содержит 1 файл

Курсовая третий курс!!!!!!!!! - копия.doc

— 198.50 Кб (Скачать)


             

 

Зарегистрировано «___»_____20___г.

________ __________________________

Подпись                    (расшифровка подписи)

 

 

ФЕДЕРАЛЬНОЕ Государственное АВТОНОМНОЕ образовательное учреждение высшего профессионального  образования

БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

(НИУ «БелГУ»)

 

 

 

ФАКУЛЬТЕТ КОМПЬЮТЕРНЫХ НАУК И ТЕЛЕКОММУНИКАЦИЙ

 

КАФЕДРА МАТЕМАТИЧЕСКОГО И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

ИНФОРМАЦИОННЫХ СИСТЕМ

 

 

ВЗАИМНОЕ ИСКЛЮЧЕНИЕ ПРИ ВЗАИМОДЕЙСТВИИ ПРОЦЕССОВ

 

 

 

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

студента дневного отделения 3 курса группы 140902

Колесникова Артура Валериевича

 

 

Научный руководитель:

Лихошерстный А.Ю.

 

 

 

 

 

 

 

 

 

 

БЕЛГОРОД  2012



              25

Содержание

 

Введение              3

1.Процессы              5

2. Задачи синхронизации             

3. Семафоры              19

4. Реализация приложения с использованием взаимного исключения.

Заключение

Список используемой литературы

Приложение              26

 

Введение

Процессы могут выполняться параллельно до тех пор, пока не возникнет потребность в общении между ними. Для обеспечения такого рода взаимодействия необходимо специальным образом планировать и управлять ими в составе любой ОС. Специальные средства ОС устанавливают определенные ограничения на последовательность (очередность) выполнения взаимосвязанных параллельных процессов, обеспечения тем самым их синхронизацию и общение. В каждом конкретном случае синхронизация задается с помощью синхронизирующих правил, которые устанавливаются системой между процессами и определяют порядок их выполнения с целью обеспечения должного взаимодействия. Существуют основные отношения типа: отношение предшествования, отношение приоритетности, отношение взаимного исключения. Эти отношения и определяют существо синхронизирующих правил. Реализация синхронизирующих правил осуществляется с помощью механизмов (средств) синхронизации. Такие механизмы весьма многочисленны по способам реализации, отличаются степенью эффективности и областями использования в различных ОС.

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

Целью данной курсовой работы является реализация приложения реализуещего задачу «взаимного исключения». Для достижения намеченной цели будет необходимо решение нескольких задач:

- изучение предметной области;

- изучение основных задач синхронизации: взаимное исключение,  производители-потребители, читатели-писатели;

- реализация решения задачи «взаимного исключения»;

Курсовая работа написана на 28 листах. Курсовая работа содержит 3  рисунка, 2 листинга.


1.Процессы

1.1.Понятие процесс, состояние процесса

 

 

 

В общем случае процесс—это некоторая деятельность, связанная с исполнением программы на процессоре.[2,37]

При исполнении программ на центральном процессоре чаще всего различают следующие характерные отдельные состояния:

              порождение — подготавливаются условия для первого исполнения на процессоре

              активное состояние — программа исполняется на процессоре

              ожидание — программа не исполняется на процессоре по причине занятости какого-либо требуемого ресурса

              готовность — программа не исполняется, но для исполнения предоставлены все необходимые в текущий момент ресурсы, кроме центрального процессора

              окончание — нормальное или аварийное окончание исполнения программы, после которого процессор и другие ресурсы ей не предоставляются

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

Рисунок 1. Граф существования процесса

 

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

 


1.2.Свойства и классификация процессов

 

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

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

В любой ОС по требованию существующего или существовавшего процесса проводится работа по порождению процессов. Процесс, задающий данное требование, называют порождающим, а создаваемый по требованию — порожденным. Если порожденный процесс на интервале своего существования в свою очередь выдает требование на порождение другого процесса, то он одновременно становится и порождающим.

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

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

В операционной системе принято различать процессы не только по времени, но и по месту их развития, т. е. на каком из процессоров исполняется программа процесса. Точкой отсчета принято считать центральный процессор (процессоры), на котором развиваются процессы, называемые программными или внутренними. Такое название указывает на возможность существования в системе процессов, называемых внешними. Это процессы, развитие которых происходит под контролем или управлением ОС на процессорах, отличных от центрального. Ими могут быть, например, процессы ввода — вывода, развивающиеся в канале. Деятельность любого пользователя ЭВМ, который в том или ином виде вводит посредством ОС информацию, требуемую для исполнения одной или нескольких программ, можно также рассматривать как внешний процесс.

Программные процессы принято делить на системные и пользовательские. При развитии системного процесса исполняется программа из состава операционной системы. При развитии пользовательского процесса исполняется пользовательская (прикладная) программа.

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

При наличии между процессами управляющей связи устанавливается отношение вида "порождающий—порождаемый", рассмотренное выше. Если два взаимосвязанных процесса при развитии используют совместно некоторые ресурсы, но информационно между собой не связаны, т. е. не обмениваются информацией, то такие процессы называют информационно-независимыми. Связь между такими процессами может быть либо функциональная, либо пространственно-временная. При наличии информационных связей между двумя процессами их называют взаимодействующими, причем схемы, а, следовательно, и механизмы установления таких связей могут быть различными. Особенность, во-первых, обусловлена динамикой процессов (т.е. являются ли взаимодействующие процессы последовательными, параллельными или комбинированными); во-вторых, выбранным способом связи (явным, с помощью явного обмена сообщениями между процессами, или неявным, с помощью разделяемых структур данных). Когда необходимо подчеркнуть связь между взаимосвязанными процессами по ресурсам, их называют конкурирующими.

Управление взаимосвязанными процессами в составе ОС основано на контроле и удовлетворении определенных ограничений, которые накладываются на порядок выполнения таких процессов. Данные ограничения определяют виды отношений, которые допустимы между процессами, и составляют в совокупности синхронизирующие правила.

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

Отношение приоритетности. Процесс с приоритетом Р может быть переведен в активное состояние только при соблюдении двух условий: в состоянии готовности к рассматриваемому процессору нет процессов с большим приоритетом; процессор либо свободен, либо используется процессом с меньшим, чем Р, приоритетом.[2,44]

Отношение взаимного исключения. Здесь два процесса используют обобщенный ресурс. При этом совокупность действий над этим ресурсом в составе одного процесса называют критической областью. Критическая область одного процесса не должна выполняться одновременно с критической областью над этим же ресурсом в составе другого процесса.

Рисунок. 2 Классификация процессов

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

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


2. Задачи синхронизации

2.1. Задача взаимного исключения

 

 

Задача взаимного исключения. Это фундаментальная по своему назначению задача.[1,138] Любая ОС, управляющая параллельными процессами, должна обеспечить тот или иной вариант реализации ее решения. Необходимо согласовать работу n>1 параллельных процессов при использовании некоторого критического ресурса таким образом, чтобы удовлетворить следующим требованиям:

              одновременно внутри критической области должно находиться не более одного процесса

Информация о работе Взаимное исключение при взаимодействии процессов