2013 Saktaganov_3-kr (1162819), страница 2

Файл №1162819 2013 Saktaganov_3-kr (Задачи прошлых лет) 2 страница2013 Saktaganov_3-kr (1162819) страница 22019-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Должны выполняться следующие условия:

А) NR > N / 2 (Таненбаум – «Распределенные системы»);
Почему это?

Описался, должно быть NW > N / 2, это для предотвращения конфликтов двойной записи. Повторения описки из-за копи-паста.

В лекциях сказано, что обращаться с записью надо ко всем серверам. В книге ситуация другая – не определяется, как должны работать несколько клиентов, желающих писать в файл. Реально есть два способа – либо на запись может открыть файл только один клиент, либо могут открыть несколько, но тогда для коррекции файла каждый должен его захватывать и освобождать. Операции открытия и захвата/освобождения мы не рассматриваем.

Б) NW > 0;

В) NR + NW > N.

Г)T>0

Что это такое?

Условие Т > 0 добавил после того, как получил линейную функцию относительно кворума записи. Т.к. надо минимизировать эту функцию, но при этом значение отрицательным быть не может (Наверно условие лучше стоило добавить в конце).

Пусть NR + NW = N + 1 = 20;

Рассмотрим операцию записи. Запрашиваем запись у всех ЭВМ (В том числе собственный). Все ЭВМ отвечают ему, отправляя текущую версию файла.

Пусть текущая версия у всех ЭВМ совпадает, в том числе на ЭВМ, где выполняется наш процесс. Тогда достаточно записать у себя и на остальных NW-1 ЭВМ.

WR – WriteRequest;

WA – WriteAnswer;

F – File.

(N-1)*(Ts+Tb*SIZEWR) – время запроса у всех на запись;

(N-1)*(Ts+Tb*SIZEWA) – время ответа;

(NW-1)*(Ts+Tb*SIZEF) – время записи.

Теперь рассмотрим операцию чтения. Запрашиваем чтение у NR ЭВМ. Они отвечают текущей версией файла. Выбираем наиболее «свежую» версию и читаем.

RR – ReadRequest;

RA – ReadAnswer.

(NR-1)*(Ts+Tb*SIZERR) – время запроса на чтение;

(NR-1)*(Ts+Tb*SIZERA) – время ответа;

Ts+Tb*SIZEF – время чтения(добавляем если у нас не самая «свежая» версия).

Пусть количество записей – A, количество чтений – B. Пусть при чтении у нас не самая «свежая» версия.

Общее время():

T = A*((N-1)*(Ts+Tb*SIZEWR)+(N-1)*(Ts+Tb*SIZEWA)+(NW-1)*(Ts+Tb*SIZEF))

+B*((NR-1)*(Ts+Tb*SIZERR)+ (NR-1)*(Ts+Tb*SIZERA)+Ts+Tb*SIZEF)=

=A*(N-1)(3*Ts+Tb(SIZEWR+SIZEWA+SIZEF))+

+(NR-1)(Ts*(2B-A)+Tb*(B*(SIZERR+SIZERA)-A*SIZEF)) + B*(Ts + SIZEF*Tb)

Пусть размеры запросов и ответов по 1 байту. Тогда

Ts*(2B-A)+Tb*(B*(SIZERR+SIZERA)-A*SIZEF) = 100*(24-2)+12*2-2*300=1624

Получили линейную функцию от NR с положительным коэффицентом. Учитывая условия, поставленные в начале задачи, получим NR = 1;=>NW=19.

Ответ: NR = 1, NW=19.

А как же А) NR > N / 2 (Таненбаум – «Распределенные системы»);

Ответ был выше.

Пересмотрим решение с учетом Ваших исправлений:
У нас N = 18. NR + NW = N + 1 = 19. NW > N / 2;

Запрашиваем у всех N ЭВМ. Все ЭВМ отвечают ему, отправляя текущую версию файла. Пусть текущая версия у всех ЭВМ совпадает. Тогда достаточно записать у NW ЭВМ.

Смысл размножения – поддерживать все копии, но временно позволять некоторым серверам выходить из строя!!!

WR – WriteRequest;

WA – WriteAnswer;

F – File.

N*(Ts+Tb*SIZEWR) – время запроса у всех на запись;

N*(Ts+Tb*SIZEWA) – время ответа;

NW*(Ts+Tb*SIZEF) – время записи.

Теперь рассмотрим операцию чтения. Запрашиваем чтение у NR ЭВМ. Они отвечают текущей версией файла. Выбираем наиболее «свежую» версию и читаем.

RR – ReadRequest;

RA – ReadAnswer.

NR*(Ts+Tb*SIZERR) – время запроса на чтение;

NR*(Ts+Tb*SIZERA) – время ответа;

Ts+Tb*SIZEF – время чтения.

Пусть количество записей – A, количество чтений – B. Общее время:

T = A*(N*(Ts+Tb*SIZEWR) + N*(Ts+Tb*SIZEWA)+NW*(Ts+Tb*SIZEF))+

+ B*(NR*(Ts+Tb*SIZERR)+NR*(Ts+Tb*SIZERA)+Ts+Tb*SIZEF) =

{ NW = N + 1 – NR} = A*N*(3*Ts+Tb*(SIZEWR+SIZEWA+SIZEF)) +

+ (В+1)*(Ts+Tb*SIZEF) +

+ NR*(B*(2*Ts+Tb*(SIZERR+SIZERA)) – A*(Ts+Tb*SIZEF))

Пусть размеры запросов и ответов по 1 байту.

Коэффициент при NR есть B*(2*Ts+Tb*(SIZERR+SIZERA)) – A*(Ts+Tb*SIZEF) =

= (2*B-A)*Ts + (B*(SIZERR+SIZERA)-A*SIZEF)*Tb = 1624.

Получили линейную функцию от NR с положительным коэффициентом. Т.к. кворум чтения натуральное число, минимум достигается при NR = 1. Следовательно NW = 18.

Ответ: NR = 1, NW=18.

===Хорошо

  1. Консистентность памяти по входу и алгоритм ее реализации в DSM с полным размножением. Сколько времени потребует трехкратное выполнение критической секции и модификация в ней 11 переменных каждым процессом, если DSM реализована на 18 ЭВМ сети с шинной организацией (с аппаратными возможностями широковещания). Время старта (время «разгона» после получения доступа к шине для передачи) равно 100, время передачи байта равно 1 (Ts=100,Tb=1). Доступ к шине ЭВМ получают последовательно в порядке выдачи операции посылки сообщения (при одновременно выданных операциях - в порядке номеров ЭВМ). Процессорные операции, включая чтение из памяти и запись в память, считаются бесконечно быстрыми.

Решение:

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

Кроме того, критические секции, охраняемые одной синхронизационной переменной, могут быть двух типов:

  • секция с монопольным доступом (для модификации переменных);

  • секция с немонопольным доступом (для чтения переменных).

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

  1. Консистентность по входу - совместно используемые данные, относящиеся к данной критической области, становятся непротиворечивыми при входе в эту область (Таненбаум – «Распределенные системы», поэлементная непротиворечивость).

а) пишем в локальную память;

б) читаем из локальной памяти;

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

г) блокируется пока не получим актуальные копии и право собственности на синхр. переменную;

д) при входе КУДА? широковещательно отправляем «ЗАПРОС» на синхр.переменную. Если пришел «ЗАПРОС», а мы не выдавали еще широковещательно «ЗАПРОС», отвечаем «ОК». Если мы уже выдавали, добавляем в очередь, и ждем пока получим право собственности. После выполнения критической секции, первому в очереди отправляем «ОК» + текущие значения переменных, остальным отправляем просто «ОК».

Описание алгоритма. Для получения права собственности на переменную синхронизации отправляем «ЗАПРОС» широковещательно. При получении сообщения «ЗАПРОС»:

а) Если мы ждем право собственности переменной синхронизации, то добавляем «ЗАПРОС» в очередь;

б) иначе, отвечаем «ОК».

При получении права собственности (и последних значений модифицируемых переменных) на переменную синхронизации выполняем КС. После выхода из КС отвечаем первому в очереди «ЗАПРОСу» «ОК» + последние значения модифицируемых переменных. Остальным просто «ОК».

  1. Оценка времени. Допустим все 11 переменных находятся под одной переменной синхронизации. Для однократного выполнения КС одним процессом нужно 1 широковещательное сообщение «ЗАПРОС», 16 «ОК», 1 «ОК» + последние значение модифицируемых переменных. Пусть в начальный момент времени право собственности у процесса 0. Тогда он выполняет КС, потом передает право процессу 1 и т.д. Не нарушая общность рассуждений, предположим для простоты что адрес переменной занимает 1 байт, значение тоже 1 байт. Под «ЗАПРОС» и «ОК» тоже выделим по 1 байту. В сумме у нас 11+1=12 переменных. Тогда однократное выполнение КС одним процессом займет:
    TR = Ts + SIZER*Tb = 101

TOK = Ts+SIZEOK*Tb; = 101

TOK+Rights = Ts + (SIZEOK + 12*(SIZEADDRESS+SIZEVALUE))*Tb = 100 + (1 + 12*(1+1)) = 100 + 1 + 24 = 125

TKS = TR + 16*TOK + TOK+Rights = 101+16*101+125 = 1732

Общее количество КС 18*3=54. Т.к. в начале право собстенности уже находится у процесса 0, то он не будет рассылать «ЗАПРОС».

Ответ: Общее время: T = 53*TKS = 53*1732 = 91796

Про критические секции монопольные и немонопольные – ни слова!

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

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

Приведем пример:

Пусть очередь запросов следующего вида как на рис.1 (рисунки ниже). Н – запрос на немонопольный доступ. М – запрос на монопольный доступ. Координатор посылает права на немонопольный доступ первым двум запросам, удаляет их из очереди, и ждет когда они вернут эти права. В этот момент вид очереди примет вид как в рис. 2. После возвращения прав, координатор посылает право на монопольный доступ следующему запросу и удаляет его из очереди(вид как в рис. 3), после возвращения этого монопольного права, передает монопольное право следующему (вид очереди как в рис. 4). Аналогично следующим двум запросам отправляются права на немонопольный доступ и запросы удаляются из очереди (рис. 5) и т.д. (рис. 6-7).

Ответы по плану:

  1. Консистентность по входу - совместно используемые данные, относящиеся к данной критической области, становятся непротиворечивыми при входе в эту область (Таненбаум – «Распределенные системы», поэлементная непротиворечивость).

  2. а) пишем в локальную память;

б) читаем из локальной памяти;

в) значения модифицируемых переменных оправляется координатором запросившим процессам по мере их продвижения в очереди;

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

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

Характеристики

Тип файла
Документ
Размер
356,89 Kb
Высшее учебное заведение

Список файлов ответов (шпаргалок)

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6541
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее