2016-10-16 11 views
3

Я открываю эти вопросы, так как не могу найти легко понять сводная информация по этой теме. Это даже не очень хорошее видео с YouTube.Преимущества и недостатки со статическим и динамическим планированием

В настоящее время я изучаю программирование в реальном времени, а статично-динамическое планирование - это его часть. Кажется, я просто не могу об этом подумать.

Если есть кто-то, кто может объяснить преимущества и недостатки с помощью статического и динамического планирования в образовательной форме, это действительно будет полезно.

То, что я получил до сих пор является следующее:

  1. Статическая графика: Является офф-лайн подход, при котором расписание генерируется вручную. Он может быть изменен во время выполнения, но не предлагается, потому что он может привести к тому, что потоки будут пропущены. Его легко реализовать и проанализировать. Поскольку легко анализировать, легко увидеть, будет ли система делать все свои крайние сроки.

  2. Динамическое планирование: Является ли он-лайн подход, когда расписание генерируется автоматически. Он может быть изменен во время выполнения системой, и он не должен вызывать (в большинстве случаев) потоки, чтобы пропустить свои крайние сроки. Если система изменяется, легко создать новое расписание, так как оно автоматически генерируется. Нет гарантии, что система соответствует всем ее срокам.

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

+0

Что вы подразумеваете под образовательным путем ?? –

+0

@SupunWijerathne Ха-ха, спасибо google translate ... Это слово, которое мы используем в Швеции. Но я имею в виду «в понятном для понимания способом». –

+0

Я на самом деле хорош на английском, просто интересно, что вы на самом деле ожидали. :)) –

ответ

4

Проще говоря,

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

Dynamic Scheduling - это механизм, в котором планирование потоков выполняется операционными системами на основе любого scheduling algorithm, реализованного на уровне ОС. Таким образом, порядок выполнения потоков будет полностью зависеть от этого алгоритма, если мы не поставим на него некоторый контроль (со статическим планированием).

Я думаю, что термин «преимущества» не будет лучшим термином здесь. Просто, когда вы реализуете какой-либо контроль над потоками с вашим кодом для достижения какой-либо задачи, вы должны убедиться, что вы использовали минимальные элементы управления, а также наиболее оптимизированным образом. :))

Дополнение

Сравнение статических & динамического планирования

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

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

И некоторые программы были бы сильно динамическими (слабо статическими). This был бы хорошим примером для этого. Там вы можете увидеть, кроме начала двух потоков, остальная часть выполнения программы будет бесплатным флаером.

Пожалуйста, не пытайтесь найти критерии отказа, которые запечатывают программу либо сильно статической, либо сильно динамичной. :))

Положительных & Отрицательного

  • Динамического планирование планирования является быстрее в исполнении, чем статическое планирование, так как это в основном бесплатный флаер без какого-либо преднамеренного жду, объединений и т.д. (любой вид синхронизации/защиты между потоками).

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

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

Я думаю, что я накрыл немало вещей. Пожалуйста, поднимите мне вопросы, если они есть. :))

+0

Хорошее объяснение. «Преимущества», возможно, были плохим выбором слова, но не можете ли вы добавить какой-то список положительных/отрицательных факторов между статическим и динамическим планированием к вашему ответу? :) –

+0

уверен, что я добавлю некоторое описание и дам вам знать, как только позволит время. :)) –

+1

Извините за медленный ответ. Я работаю целую неделю. Но да, дополнение к вашему предыдущему ответу было очень полезно! Большое спасибо :) –

 Смежные вопросы

  • Нет связанных вопросов^_^