Планирование: первая - с наименьшим оставшимся временем выполнения

Ожидает покупки
Заказ
6525431
Раздел
Программирование
Предмет
C#
Антиплагиат
Не указан
Срок сдачи
24 Янв в 09:00
Цена
1 500 ₽
Блокировка
10 дней
Размещен
23 Янв в 09:30
Просмотров
49
Описание работы

задача на C#. планировщик - задача с наименьшим временем выполнения первая.


условие подробнее:

каждый поток для себя генерирует время выполнения


планировщик запускает потоки, каждый имитирует работу и считает сколько времени он выполняется


планировщик потом его снимает, выбирает следующий с наименьшим временем выполнения


планировщик запустил процесс и сам заснул (пассивное ожидание, т.е. планировщик не должен крутиться в цикле, пока кто-то один работает, он просыпается только для выбора нового рабочего из очереди)


очередь готовых и заблокированных


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


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


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

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


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


(также есть скрин формы)

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир
Ошибка при загрузке заказов 1
×