Java Processing Scheduler Simulator Анимация Рекомендации? - PullRequest
1 голос
/ 18 ноября 2011

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

Моя первая мысль - использовать javax.swing.Я знаю это немного, достаточно для функциональности, но я не думаю, что это даст мне наиболее информативный метод демонстрации планирования процесса.

Срок моего проекта скоро приближается, и я только читаю java.awt (GraphicsEnvironment) и javax.swing.Если вы можете порекомендовать что-то более простое (или более эффективное), пожалуйста, сделайте это.Я открыт практически для всего.

Учебное видео / руководства или руководства были бы очень полезны.

Спасибо,

chickeneaterguy

РЕДАКТИРОВАТЬ: я думаю, я не совсем ясно,Я просто ищу способ наглядно продемонстрировать, как процессы обрабатываются в их простейшей форме - с временными срезами ввода / вывода и срезами ЦП наряду с приоритетами.Я хочу продемонстрировать это графически, а не просто смотреть на кучу разных процессов, получая отведенное им время.

@ mKorbel - там ничего не спрятано.Просто ищу способ визуально представить процесс планирования.

@ r0ast3d - спасибо, я посмотрю.

** EDIT2 : Это больше похоже на то, что я собираюсь сделать (в Java) - http://www.youtube.com/watch?v=bta48Ix3t_Q (начните смотреть примерно через 2 минуты).Я хочу, чтобы данные соответствовали тому, что происходит в коде, чтобы не было жестко закодированных изображений.Будет ли моя лучшая ставка делать что-то вроде апплета? **

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Если у вас есть рабочая модель, добавление подходящего вида с использованием шаблона Модель – Представление – Контроллер является хорошим подходом, как обсуждалось здесь .JFreeChart хорошо работает с MVC, и вот соответствующий пример .

Как вы думаете, использование апплетов было бы хорошим подходом для этого?

Вместо апплета я бы создал обычное приложение и распространил его, используя .Это связанное моделирование противопоставляет два подхода в гибриде.Это также демонстрирует использование javax.swing.Timer для простой анимации, такой как показано в видео .

1 голос
/ 18 ноября 2011

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

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

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

// create a JFrame
JFrame frame = new JFrame();
// A Textarea allows you to store multiple lines
JTextArea area = new JTextArea();
// put the area onto the Frame
frame.add(area);
// set initial size in width, height
frame.setSize(800, 600);
// make frame initially visible
frame.setVisible(true);
do {
  // actualize the frame every second
  Thread.sleep(TimeUnit.SECONDS.toMillis(1));
  // getYour text provides the displayed text, something like:
  // "Thread1 sleeps \n Tread2 is active" 
  // where \n leads to a new line in the area
  String text = getYourText();
// put your termination condition in here
} while (simulation.isRunning());
// this stops the GUI and removes the JFrame afterwards
frame.dispose();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...