Описание тега mutual-exclusion

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

Какой лучший механизм блокировки ядра Linux для конкретного сценария

Мне нужно решить проблему блокировки для этого сценария: Многопроцессорная система. Все процессоры используют общий (программный) ресурс. Доступ только для чтения к ресурсу очень распространен. (Обработка входящих сетевых пакетов) Доступ на запись н…
31 май '09 в 15:15
1 ответ

Гибридное решение алгоритма потребительского производителя

Я пытаюсь показать, что следующее решение проблемы производителя / потребителя не работает, показывая, что, когда потребитель находится в начале M1, есть случай, когда он не сможет удалить из очереди конечный элемент время и / или есть случай, когда…
0 ответов

Алгоритм взаимного исключения Дейкстры

Я пытаюсь реализовать алгоритм взаимного исключения Дейкстры в C с OpenMP, алгоритм выглядит следующим образом: {1}: Тем не менее, с моим кодом только Po будет вводить en, оставляя критический раздел, но я не знаю почему. Кто-нибудь может мне помочь…
1 ответ

Почему семафоры должны быть атомными?

Я изучаю семафоры: sem_wait и sem_signal. Ресурсы говорят, что семафоры должны быть атомарными для реализации взаимного исключения. Я не могу понять, почему они должны быть атомарными?! что будет, если их нет?!
1 ответ

ОС: Соответствует ли следующий алгоритм условиям для адекватного развития процессов?

"Дан следующий алгоритм для двух процессов, 0 и 1: Process (i) REPEAT WHILE Interest [j] = 1 DO; START Interest [i]:=1; Critical Section; Interest [i]:=0; Non-critical Section; END где i=0,1; j=1-i;,% представляет собой вектор общих переменных разме…
1 ответ

Почему это решение Mutex неверно?

Есть 2 процесса P1 и P2, которые могут войти в критическую секцию. Требования к решению Mutex: Зона мьютекса - (критическая секция), которая может содержать только один процесс максимум. Нет взаимной блокировки - процесс вне критической секции не мо…
23 апр '16 в 11:33
8 ответов

Разница между монитором и замком?

Какая разница между монитором и замком? Если блокировка - это просто реализация взаимного исключения, то является ли монитор просто способом использования времени ожидания между выполнениями методов? Хорошее объяснение было бы очень полезно, спасибо…
2 ответа

Разница между взаимным исключением и синхронизацией?

В чем разница между двумя? Этот вопрос пришел мне в голову, потому что я обнаружил, что Мониторы и замки обеспечивают взаимное исключение Семафоры и условные переменные обеспечивают синхронизацию Это правда? Также во время поиска я нашел эту статью …
1 ответ

Два вопроса о распределенных системах: масштабируемость и взаимное исключение

Первый вопрос: масштабируемость В контексте распределенных систем, что именно можно назвать масштабируемостью? Я предполагаю, что это способность системы использовать столько распределенных устройств, сколько нужно, без необходимости изменять код. Э…
6 ответов

Что эквивалентно выражению C# lock в PHP?

Для обеспечения параллелизма и обеспечения целостности данных, как бы вы получили блокировку взаимного исключения для данного объекта? Нужно ли использовать блокировку в базе данных или в файле, или PHP поддерживает что-то подобное?
08 фев '10 в 15:20
0 ответов

Два скрипта python пишут с взаимоисключающим txt файлом и ждут друг друга - без многопоточности

У меня есть два скрипта, запущенных в python на той же машине, что и бесконечные циклы, они постоянно отслеживают некоторые значения. Они общаются через file.txt B добавляет сообщения в файл file.txt, чтобы они накапливались. Когда A проверяет file.…
03 апр '14 в 20:18
1 ответ

Вызов освобождения перед приобретением потоком

Я пишу небольшую программу из нескольких потоков и использую семафор для обеспечения взаимного исключения. Но у меня в голове возникает проблема. Что будет, если Semaphore.release называется раньше Semaphore.acquire? у меня работает нормально. это п…
14 янв '14 в 06:06
2 ответа

Взаимное исключение, не затрагивая оба процесса

У меня есть уникальная проблема. Два процесса (P0 и P1) пытаются получить доступ к одному файлу. P0 записывает информацию в файл, а P1 читает информацию. Между двумя существует состояние гонки, в котором P1 читает, прежде чем P0 закончит запись. Я р…
1 ответ

Алгоритм голодания в операционной системе

Существует ли алгоритм взаимного исключения с переменными общего флага, как у Петерсона, который не предотвращает голодание?
5 ответов

Как обеспечить выполнение кода проекта библиотеки Android только в одном из установленных приложений, которые его интегрируют?

Я занимаюсь разработкой библиотечного проекта, который будет интегрирован в некоторые популярные приложения для Android, которые можно увидеть в Google Play. Предположим, что у пользователя может быть установлено два или более приложений, и каждое м…
1 ответ

Как разобрать требуемый взаимоисключающий аргумент в Python C-api

Как можно разобрать группу обязательных, но взаимоисключающих аргументов, используя Python C-api? Например, дано определение функции static PyObject* my_func(PyObject *self, PyObject *args, PyObject *kwargs) { double a; // first argument, required d…
18 янв '19 в 10:29
3 ответа

Взаимное исключение в Joomla

Я создал расширение для Joomla, используя: $id=$database->insertid(); Я только что рассказал, что если два пользователя, вошедшие на сайт, будут совмещать друг с другом, выполнят две записи в базе данных, и тогда это утверждение вернет в обоих сл…
23 янв '13 в 13:12
1 ответ

Понимание критической области

Я читал в Интернете несколько примеров, касающихся критической области, протокола входа и выхода, и мне было трудно разобраться. http://pages.cs.wisc.edu/~dusseau/Classes/CS537-S01/SampleQuizzes/sol2.html class BankAccount { private int turn = 0; pr…
27 фев '14 в 15:15
3 ответа

Параллельный доступ к группам объектов

Я пытаюсь разработать приложение, которое состоит из пула потоков, используя алгоритм кражи работы для одновременного выполнения задач. Эти задачи получить доступ к предопределенному набору объектов; должен "атомарно" получить права на чтение / запи…
6 ответов

Статические переменные и потоки (C)

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