Тема: Вычислительные процессы
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1.ПРОЦЕССЫ
1.1Основные понятия о процессах
1.2Взаимодействие процессов
2.КРИТИЧЕСКИЕ ИНТЕРВАЛЫ
2.1Понятие критических интервалов
2.2Взаимное исключение критических интервалов
2.2.1Примитив взаимоисключения
3.АЛГОРИТМ ДЕККЕРА
4.ЗАДАЧА «О СИНХРОНИЗАЦИИ СТРЕЛКОВ»
4.1Постановка задачи
4.2Алгоритм решения задачи
4.3Программная реализация задачи
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
📖 Введение
Для того чтобы избежать состязания существуют различные способы, одним из основных является предотвращение проблем в этой и любых других ситуациях, которые будут связаны с конкурентным использованием памяти и файлов, то есть запрет одновременной записи и чтения разделяемых данных более чем одним процессом. Другими словами, требуется взаимное исключение, а именно, в тот момент, когда один процесс использует общие данные, другому процессу это делать будет запрещено. Выбор подходящей операции, которая реализует взаимное исключение, является важным моментом разработки операционной системы.
Проблему исключения состояний состязания можно определить следующим образом. Определенный интервал времени процесс занят внутренними расчетами и другими задачами, которые не приводят к состояниям состязания. В другие интервалы времени процесс обращается к совместно используемым данным или выполняет любое другое действие, которое может привести к состязанию. Фрагмент программы, в которой происходит обращение к совместно используемым данным, называется критической областью или критической секцией. В случае, если получится избежать одновременного нахождения двух и более процессов в критических областях, удастся избежать состязаний. Поставленное требование исключает состязание, но, несмотря на это, его недостаточно для верной совместной работы параллельных процессов и успешного использования общих данных. Для этого должны выполняться следующие условия.
Два процесса не могут одновременно находиться в критических областях.
В программе недопустимы предположения о скорости или количестве процессоров.
У процесса, который находится вне критической области, нет возможности блокировки других процессов.
Недопустима ситуация, в которой процесс постоянно ждет попадания в критическую секцию.
✅ Заключение
Алгоритм Деккера - первое известное корректное решение проблемы взаимного исключения в конкурентном программировании. Он позволяет двум потокам выполнения совместно использовать неразделяемый ресурс без возникновения конфликтов, используя только общую память для коммуникации. Одним из преимуществ алгоритма является то, что он не требует специальных Test-and-set инструкций и вследствие этого он легко переносим на разные языки программирования и архитектуры компьютеров. Таким образом, данный алгоритм оптимизирует управление работой многозадачных операционных и многопроцессорных вычислительных систем.
Современные операционные системы предоставляют примитивы синхронизации более общие и гибкие по сравнению с алгоритмом Деккера. Тем не менее, следует отметить, что в случае отсутствия реальной конкуренции между двумя процессами, операции входа в критическую секцию и выхода из неё будут являться очень эффективными при использовании этого алгоритма.
В ходе работы была решена задача "О синхронизации стрелков". В ней было продемонстрировано взаимодействие двух процессов с помощью семафоров, а именно взаимодействие процесса «офицер» и процесса «стрелки».



