задача на C#. планировщик - задача с наименьшим временем выполнения первая.
условие подробнее:
каждый поток для себя генерирует время выполнения
планировщик запускает потоки, каждый имитирует работу и считает сколько времени он выполняется
планировщик потом его снимает, выбирает следующий с наименьшим временем выполнения
планировщик запустил процесс и сам заснул (пассивное ожидание, т.е. планировщик не должен крутиться в цикле, пока кто-то один работает, он просыпается только для выбора нового рабочего из очереди)
очередь готовых и заблокированных
время от времени из заблокированных кого-то освобождается(у заблокированного тикает время блокировки, после этого разблокировка) и время от времени генерируются новые потоки и добавляются в очередь готовых (ожидающих запуска)
итак, работает всегда один поток. поток может закончиться, о чём он должен сообщить планировщику, планировщик в таком случае просыпается, пишет на форму сообщение о том, что этот поток завершился и запускает новый поток(берёт из списка), сам засыпает.
поток может случайно заблокироваться на какое-то время, в этом случае он также сигнализирует об этом спящему планировщику, тот пишет сообщение на форму об этом, останавливает этот поток, добавляет его в список (планировщик в себе содержит список активных потоков и заблокированных) заблокированных, извлекает из списка активных новый поток, запускает его и засыпает.
поток может разблокироваться, тогда планировщик просыпается, удаляет этот поток из заблокированных, останавливает поток, работающий сейчас, разблокированный добавляет в список активных, извлекает оттуда поток, запускает его, засыпает
P.S. Прикрепляю чужую лабу с этим условием, на форме всё работает корректно, нужно сделать так же (только почему-то работающий поток отображается в очереди ожидающих). вроде норм класс обёртки над потоком и класс отсортированного списка, но в планировщике всё нужно переделать (сделать пассивное ожидание, чтобы планировщик запускал кого-то и сам засыпал, ждал сигнала). и убрать небезопасные методы для работы с потоками, поменять на более современные.
(также есть скрин формы)
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |