Моделирование вытесняющей многозадачности

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Ответить
MrBrain
Сообщения: 24
Зарегистрирован: 14 май 2009, 16:17

Помогите пожалуйста с алгоритмом программы, я что-то не совсем понимаю что нужно делать. Заранее спасибо!
Необходимо разработать программу, демонстрирующую работу диспетчера в многозадачной среде. Каждая задача заключается в построение заданной функции (синусоиды). Всего может быть не более 10 функций с номерами 0…9. Координаты начала прорисовки функций:
-по оси абсцисс – левый край экрана (окна);
-по оси ординат – зависит от номера кривой (чем больше номер, тем ниже кривая на экране (в окне).
В любой момент времени любая кривых может быть добавлена, остановлена или удалена. Каждая из вновь добавляемых кривых должна прорисовываться оригинальным цветом, амплитудой и иметь уникальный период.
При реализации алгоритма работы диспетчера, необходимо использовать динамическую память. Для каждой из задач необходимо отображать время выполнения текущей задачи и процент от общего времени выполнения задач. Время выполнения текущей задачи (ti) – это время с момента начала ее прорисовки по текущий момент. Если кривая была остановлена, то время выполнения текущей задачи (ti) не изменяется.
Процент от общего времени (P) – это отношение времени текущей задачи – ti – к общему времени (Т), потраченному на прорисовку всех кривых работы программы
Вывод на экран каждой из функций должен осуществляться с помощью единой, общей для всех процедуры.
Текущие данные для каждой задачи должны располагаться в динамической памяти. Очередность выполнения задач определяется положением в очереди процессов.
При работе программы, переключение с прорисовки одной кривой на другую осуществляется по окончанию выделенного кванта времени. Кванты времени для всех кривых одинаковы. Сумма квантов на прорисовку всех десяти кривых составляет 1 сек. Т.о., если строится только одна кривая, то весь квант (1 сек) отдается ей. Если выводятся две кривые, то каждая из них получает по 1/2 сек, три кривые – по 1/3 сек и т.д
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Да и не знаю что тут можно по самому алгоритму добавить. Алгоритм как раз разжёван в деталях.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
MrBrain
Сообщения: 24
Зарегистрирован: 14 май 2009, 16:17

Romeo писал(а):Да и не знаю что тут можно по самому алгоритму добавить. Алгоритм как раз разжёван в деталях.

Ну я просто раньше с этой темой не сталкивался, поправьте меня если я что-то не так понял:
-к каждому графику выводить меню (остановить/удалить), также есть кнопка добавить график.
-графики рисуются за 1 сек., потом перерисовываются при нажатии кнопок
-остановленные графики не рисуются
lehua768
Сообщения: 2
Зарегистрирован: 10 июл 2010, 11:16

Помогите пожалуйста с алгоритмом программы, я что-то не совсем понимаю что нужно делать. Заранее спасибо!
Необходимо разработать программу, демонстрирующую работу диспетчера в многозадачной среде. Каждая задача заключается в построение заданной функции (синусоиды). Всего может быть не более 10 функций с номерами 0…9. Координаты начала прорисовки функций:-по оси абсцисс – левый край экрана (окна);по оси ординат – зависит от номера кривой (чем больше номер, тем ниже кривая на экране (в окне).В любой момент времени любая кривых может быть добавлена, остановлена или удалена. Каждая из вновь добавляемых кривых должна прорисовываться оригинальным цветом, амплитудой и иметь уникальный период. При реализации алгоритма работы диспетчера, необходимо использовать динамическую память. Для каждой из задач необходимо отображать время выполнения текущей задачи и процент от общего времени выполнения задач. Время выполнения текущей задачи (ti) – это время с момента начала ее прорисовки по текущий момент. Если кривая была остановлена, то время выполнения текущей задачи (ti) не изменяется.Процент от общего времени (P) – это отношение времени текущей задачи – ti – к общему времени (Т), потраченному на прорисовку всех кривых работы программыВывод на экран каждой из функций должен осуществляться с помощью единой, общей для всех процедуры. Текущие данные для каждой задачи должны располагаться в динамической памяти. Очередность выполнения задач определяется положением в очереди процессов. При работе программы, переключение с прорисовки одной кривой на другую осуществляется по окончанию выделенного кванта времени. Кванты времени для всех кривых одинаковы. Сумма квантов на прорисовку всех десяти кривых составляет 1 сек. Т.о., если строится только одна кривая, то весь квант (1 сек) отдается ей. Если выводятся две кривые, то каждая из них получает по 1/2 сек, три кривые – по 1/3 сек и т.д




__________________
Designer Handbags
Replica Watches
Replica Handbags
Ответить