20.05.2016

Управління Багатозадачністю

Original: http://www-cs.ccny.cuny.edu/~akira/javaesr.desc.html

Управління паралелізмом (СС) і алгоритми підтримки послідовності (SR) угод. Додатки, пов’язані з підтримкою білінгу, роздрібної торгівлі, а також рішення які поділяють спільну проблему зниження продуктивності, часто є причиною перешкод між довгими тяговими операціями запиту і поновлення операцій. Зокрема, останнім часом додатки баз даних, побудованих на інтернет-середовищі знайшли суворе SR занадто обмежувальними. Серйозною проблемою продуктивності може виникнути, коли ці додатки, розроблені поверх Java / JDBC і інтерфейс Servlet широко покладаються на використання контролю потоків в Java для їх паралельної обробки. управління потоками в Java є підтримка точки синхронізації, а не для досягнення складного управління паралелізмом. Епсілон Серіалізуемое (ESR) вводиться для вивчення можливого вирішення цієї проблеми.

Важливість Епсілон послідовності: Концепція ШОЕ пропонується пом’якшити SR обмеження, дозволяючи історію транзакцій, щоб мати деяку обмежену непослідовність. Зокрема, обмежена кількість невідповідності можна побачити тільки для читання транзакцій. Специфікація цього допуску помилок називається специфікацією епсилон (epspec). Вона може бути визначена як міра відстані в просторі стану бази даних. Простий приклад є розрахунковий рахунок сум до запиту — менеджер банку хоче знати, скільки мільйонів доларів у клієнта є у всіх поточних рахунків зі ставкою допуску помилок півмільйона (тобто epspec = $ 0,5 М) , Помилка запиту округлення півмільйона доларів. Цей запит повертає значущий результат, навіть вона може містити помилки, через несеріалізуемих конфліктів з деякими оновленнями, до півмільйона доларів. Шляхом вимірювання відстані для державних несеріалізуемих операцій, а змушують сувору серіалізації, ця сума вгору запиту значно швидше закінчується. Управління Дивергенція (DC) алгоритми були розроблені, щоб пов’язані кількість невідповідності для ESR того ж управління способом паралелізм підтримує SR. Насправді, DC алгоритми поширюються класичні алгоритми CC, такі як двофазного замок, оптимістична перевірки і тимчасові мітки.

Java послідовность: Java, потік дозволяє програмісту написати код, який виконується паралельно. Кілька потоків, як правило, спільно використовувати об’єкти, і, отже, об’єкти повинні використовувати механізми синхронізації для координації доступу потоків до цих об’єктів. Паралельне управління для групи активних потоків заснована на цій синхронізації — тільки один потік може бути запущений в той час на об’єкті і всіх конкуруючих потоків, щоб отримати доступ до цього об’єкта будуть поставлені в чергу. синхронізація потоків Java використовує монітор примітив, який реалізує взаємне виключення, використовуючи блокування, коли замок зернистість є об’єктом. запобігання тупиків несе відповідальність програміста як монітор не підтримує дозвіл тупикових ситуацій. У типовій середовищі нитки, елементи даних об’єкта колекції, скажімо, об’єкт, що має масив деяких об’єктів в якості елементів даних, одночасно зчитуються і записуються. Наївний підхід підтримувати послідовна зміна стану такого об’єкта є використання мови Java примітив, званий синхронізований метод, який буде sequentialize операції читання і запису. Це, однак, дають високі накладні витрати, якщо додаток, побудоване на об’єкті колекції в основному зчитує елементи даних. Слід пам’ятати, що більш ніж одна операція читання не може співіснувати навіть операція читання не змінює стан об’єкта. Краще, якщо множинні операції читання не заважають; ще краще, якщо замок гранула тонше, тобто кожен елемент даних в масиві вибирається для блокування блоку замість об’єкта колекції (холдинг елементи, такі дані) в цілому. Це спостереження спонукає нас досліджувати структуру ШОЕ, особливо в ситуації, що додаток яку переносять з обмеженою неузгодженості для більш швидкої обробки.

Значення проекту: Даний проект спрямований реалізувати альтернативу методу синхронізації в Java. Концепція ШОЕ застосовується для реалізації Java Розбіжність Control. Управління дивергенція на основі двох фазової синхронізації був реалізований і його правильність була підтверджена в 2000 році, як і планувалося в первісному реченні. Наступним етапом є реалізація оптимістичного управління дивергенції (ODC) для синхронізації потоків в Java. За оптимістичними, ми маємо на увазі, що перевірка розділяється (читання) блокування буде відкладено до тих пір стан об’єкта не отримує змінений операцією запису. Кожен потік, який прочитав об’єкт буде перервана і повторно виконати для того, щоб гарантувати Серіалізуемое, якщо один з потоків пише, що об’єкт. Тупик ніколи не відбудеться в цьому випадку. Оптимістичний управління паралелізмом, на відміну від двофазної блокування (як в Java реалізації монітора), був запропонований в 1980-х роках в контексті обробки баз даних. Кілька досліджень показали, що моделювання, при читати інтенсивної середовищі, оптимістичний метод перевершує інші методи управління паралелізмом. Важливість використання оптимістичний метод, заснований ШОЕ може збільшитися, коли додаток отримує перевагу в продуктивності в присутності обмеженої кількості неузгодженості. Багато читання інтенсивних додатків, побудованих на вершині Інтернету могли б отримати вигоду з цього підходу. Таким чином, метою проекту є демонстрація потенційне перевагу використання Розбіжність управління для середовища Java потоків. Це одна з перших частин роботи, яка досліджує розширення контролю потоків в Java. Результати цього дослідження забезпечать багато корисних керівних принципів, таких як технічних рішень і показників порівняння для розробки нового механізму управління потоками.

About The Author

admin

Comments are closed.