Преимущества и недостатки со статическим и динамическим планированием

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

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

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

До сих пор я получил следующее:

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

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

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

java,multithreading,concurrency,real-time,scheduling,

3

Ответов: 2


5 принят

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

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

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

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

Дополнение:

Сравнение между статическим и динамическим планированием

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

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

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

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

Положительные и отрицательные

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

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

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

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


0

Динамическое планирование -

o Основные преимущества (PROs): - Позволяет обрабатывать случаи зависимости, неизвестные во время компиляции. - Упрощает компилятор. - Позволяет скомпилированный код работать эффективно на другом конвейере.

o Недостатки (CON): - Значительное увеличение сложности аппаратного обеспечения - Увеличение потребления энергии - Могут возникнуть неточные исключения

Java, многопоточность, параллелизм, в режиме реального времени, планирование,
Похожие вопросы