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