2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

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

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

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



Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 Задача про 3 буфера
Сообщение21.12.2015, 20:00 


21/12/15
32
Санкт-Петербург
Есть следующая задача:

Имеется диспечер (Д1), который с определенными вероятностями $P_1,P_2,P_3$ соответственно на каждом шагу (такте) выбирает один из 3 буферов, чтобы поместить туда заявку. Ёмкость каждого буфера равна $n$. Так продолжается $n$ шагов. После чего в работу включается второй диспечер (Д2), который с определенными вероятностями $G_1,G_2,G_3$ безвозвратно забирает заявки из буферов. Требуется найти вероятность блокировки системы на $n+k$ - ом шагу, где $k > 1$. Блокировкой считается такое состояние системы, когда первый диспечер пытается положить заявку в уже заполненный буфер, а второй диспечер одновременно с этим пытается извлечь заявку из пустого буфера.

Например, для первого буфера можно записать:
$P^n_1 \cdot (G_2 + G_3) \cdot P^{k-1}_1 \cdot G^{k-1}_1$

Аналогично для остальных буферов.

Но это выглядит как какой-то сильно идеализированный случай. Как понимаю, для шагов выше $n+1$ нужно, чтобы для заполняемого до предела буфера извлечение заявок завершилось заранее. Не знаю, как еще объяснить что имею в виду, но попробую так: пусть на одном из следующих шагов за $n+1 $ шагом в одном из буферов ровно $n$ заявко. Тогда, если Д1 пытается поместить в этот буфер заявку, то он получит блокировку, а число заявок в буфере останется n. Тем временем, Д2 может на том же шагу забрать заявку из этого буфера, и заявок станет $n-1$. Таким образом, может случится так,что в заполняемом буфере на $n+k-1$ шаге в буфере $n-1$ заявка. Тогда на $n+k $не получим блокировки в указанном смысле. В общем, порядок событий имеет значение. И не понятно, как его учесть. Пожалуйста, посоветуйте что-нибудь.

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение23.12.2015, 01:21 


21/12/15
32
Санкт-Петербург
:-(

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение14.01.2016, 22:15 


21/12/15
32
Санкт-Петербург
Посоветуйте, пожалуйста, какую-нибудь стратегию.

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 01:14 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
Vaarallinen в сообщении #1084489 писал(а):
Блокировкой считается такое состояние системы, когда первый диспечер пытается положить заявку в уже заполненный буфер, а второй диспечер одновременно с этим пытается извлечь заявку из пустого буфера.
1) А если первый диспетчер пытается положить заявку в уже заполненный буфер, а второй выполняет корректное действие, разве блокировка не возникает? Или, если первый выполняет корректное действие, но второй пытается извлечь заявку из пустого буфера, разве блокировка не возникает?

2) В последнем абзаце Вы ставите вопрос о корректной модели синхронной работы диспетчеров. Действительно, от малого временного сдвига действий может зависеть, наступит блокировка или нет.

Чтобы «гонок» не было, примите такую модель. Пусть в буферах было соответственно $a_1, a_2, a_3$ заявок. Допустим, первый диспетчер выбрал буфер 1, а второй — буфер 3. Находим состояние после действий обоих диспетчеров:
$a_1+1, a_2, a_3-1$
Если оно окажется некорректным ($a_1+1>n$ или $a_3-1<0$), тогда блокировка.

Пусть теперь оба выбирают первый буфер. Учитываем оба изменения и присваиваем каждому счетчику его новое значение после хода:
$a_1, a_2, a_3$,
где $a_1$ получено как $a_1+1-1$, либо как $a_1-1+1$, но результат от этого не зависит.

Иными словами, считаем, что нет такого момента, когда один диспетчер уже сделал своё действие, а второй нет. Состояние счетчика может измениться не более одного раза за дискретный шаг.

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 12:23 


21/12/15
32
Санкт-Петербург
svv в сообщении #1091365 писал(а):
1) А если первый диспетчер пытается положить заявку в уже заполненный буфер, а второй выполняет корректное действие, разве блокировка не возникает? Или, если первый выполняет корректное действие, но второй пытается извлечь заявку из пустого буфера, разве блокировка не возникает?

Возникает, но только по одному диспечеру. А надо, чтобы блокировка наступала одновременно по обоим диспечерам.

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 12:50 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
Тогда надо оговорить, что всё-таки происходит, когда первый пытается положить заявку в полный буфер или второй пытается взять из пустого, но не то и другое одновременно. Первый продолжает держать заявку в руках :mrgreen: ( т.е. не кладёт её ни в какой буфер)? Скрепя сердце кладёт в другой буфер? А если остальные тоже заполнены? Возникает исключение и работа прерывается?

Вам подходит мой способ предотвращения race condition?

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 12:58 


21/12/15
32
Санкт-Петербург
svv в сообщении #1091439 писал(а):
Первый продолжает держать заявку в руках :mrgreen: ( т.е. не кладёт её ни в какой буфер)?

Да,именно так.

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 13:03 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
А этот вопрос?
svv в сообщении #1091439 писал(а):
Вам подходит мой способ предотвращения race condition?
Я не напрашиваюсь на похвалу, мне надо знать, могу ли я принять свою модель, когда вклады от действий обоих диспетчеров суммируются и только потом прибавляются к счетчикам (что исключает гонки).

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 13:07 


21/12/15
32
Санкт-Петербург
svv в сообщении #1091442 писал(а):
А этот вопрос?

В стартовом посте было такое описание:

Цитата:
пусть на одном из следующих шагов за $n+1 $ шагом в одном из буферов ровно $n$ заявок. Тогда, если Д1 пытается поместить в этот буфер заявку, то он получит блокировку, а число заявок в буфере останется n. Тем временем, Д2 может на том же шагу забрать заявку из этого буфера, и заявок станет $n-1$.

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 13:19 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
Тогда почему это осталось проблемой?
Vaarallinen в сообщении #1084489 писал(а):
В общем, порядок событий имеет значение. И не понятно, как его учесть.
Вы предложили один способ учёта совместного доступа к буферу, я другой, выбирайте любой.

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 15:33 


21/12/15
32
Санкт-Петербург
svv в сообщении #1091449 писал(а):
Тогда почему это осталось проблемой?

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

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 16:27 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
Вас устроило бы найти вероятности численно, без явной формулы?

(Оффтоп)

Я заглянул в suomalais-venäläinen sanakirja — «опасный, рискованный».

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 16:43 


21/12/15
32
Санкт-Петербург
svv в сообщении #1091486 писал(а):
Вас устроило бы найти вероятности численно, без явной формулы?

К сожалению, нет. Но,возможно, если Вы поделитесь знанием как получить численные оценки, то я смогу получить общий случай :)

(Оффтоп)

Цитата:
Я заглянул в suomalais-venäläinen sanakirja — «опасный, рискованный».

Знаю :) Где-то увидел это слово, и оно мне понравилось.

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 17:57 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
Нет, оценок у меня как раз нет. Я знаю, как получить точные цифры, но численно, не с помощью явных формул (фактически, с помощью рекуррентных).

 Профиль  
                  
 
 Re: Задача про 3 буфера
Сообщение17.01.2016, 18:03 


21/12/15
32
Санкт-Петербург
svv в сообщении #1091503 писал(а):
Нет, оценок у меня как раз нет. Я знаю, как получить точные цифры, но численно, не с помощью явных формул (фактически, с помощью рекуррентных).

Интересно было бы взглянуть на Ваши рассуждения (т.е., в чем Ваша идея).

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group