|
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 16
|
|
Программная реализация простого бесприоритетного планировщика потоков01.09.2017, 00:13. Показов 5124. Ответов 48
Метки нет (Все метки)
Программная реализация простого бесприоритетного планировщика потоков.
Исходные данные: - возможные состояния потоков: выполнение, ожидание, блокировка - отрабатываемые события: создание нового потока, завершение активного потока, завершение кванта времени у активного потока, блокирование потока, разблокирование потока - основная структура данных: массив дескрипторов потоков с двумя полями - идентификатор потока, состояние потока - массив реализует простейшую очередь со сдвигом элементов при удалении - язык реализации - любой по выбору: C/C++, C#, Java, Pascal/Delphi Я прислал преподу код: с реальным созданием потоков. Вот что ответил перепод: "Нет, это совсем не то что требуется. Реальные потоки создавать не надо, достаточно продемонстрировать работу основной структуры - очереди потоков на основе массива. Программа должна отрабатывать с помощью простейшего меню все 5 событий, показывая состояние очереди после отработки каждого события. " Помогите, я так понимаю, что нужно создать меню с созданием эмулятора таких потоков. Возможно есть готовое решением. Выручайте. Заранее спасибо.
0
|
|
| 01.09.2017, 00:13 | |
|
Ответы с готовыми решениями:
48
Программная реализация простого бесприоритетного планировщика потоков Программная реализация очереди Программная реализация I2C. |
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 01.09.2017, 21:09 | ||
|
0
|
||
|
10 / 4 / 3
Регистрация: 29.01.2016
Сообщений: 131
|
||
| 01.09.2017, 21:14 | ||
|
Чую все равно перпод найдет что то что ему не нравиться. Сдам преподу и потому отпишусь потом.
0
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 01.09.2017, 21:20 | ||
|
0
|
||
|
10 / 4 / 3
Регистрация: 29.01.2016
Сообщений: 131
|
||
| 02.09.2017, 17:16 | ||
|
Добавлено через 12 минут В крайнем случае можно сделать что бы прыгало через блокированный на след поток. Добавлено через 18 часов 57 минут Комментарии препода Кликните здесь для просмотра всего текста
Массив увеличить до 20 элементов. Начальное состояние массива пустое (потоков нет). Потоки можно нумеровать по порядку их создания. При завершении кванта, завершении выполнения потока или его блокировании должен меняться статус следующего за ним потока, это имитация запуска потока на выполнение. Непонятен выбор разблокируемого потока. Добавьте больше комментариев. Число глобальных переменных можно уменьшить. Вместе с исправленным текстом пришлите исполняемый файл. Использование турбопаскаля как то прошлым веком отдает. Консоль можно делать на более современных платформах, например на бесплатном Лазарусе, если уж вам паскаль так дорог... Renji, по моему это то о чем ты говорил? Выделил черным Добавлено через 14 минут Добавлено через 25 минут Хорошо, изначально поток пуста. Когда создаем поток и добавляем этот поток в очередь она автоматический должна брать управление, иначе никак не получается если это не так. Может ли этот поток сама себя завершит, получается нет? Опять запутался уже.
0
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 02.09.2017, 20:53 | |||
|
0
|
|||
|
10 / 4 / 3
Регистрация: 29.01.2016
Сообщений: 131
|
|||
| 02.09.2017, 20:57 | |||
|
Сегодня ничего не буду делать, завтра утром постараюсь что то сделать.
0
|
|||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 02.09.2017, 21:29 | ||
|
Когда управление у текущего потока по каким-то причинам отбирают (кончился квант/заблокировали/прибили), это самое управление передается следующему в очереди не заблокированному потоку. И статус этого самого следующего меняется на "активный". Если вообще все потоки в очереди заблокированы - поздравляем, вы познакомились с дедлоком. Пишем что программист этих потоков - криворукий идиот. Все это никак не мешает потоку прибить самого себя. Было бы вообще очень странно, если бы поток этого сделать не мог.
0
|
||
|
10 / 4 / 3
Регистрация: 29.01.2016
Сообщений: 131
|
||
| 02.09.2017, 23:36 | ||
Сообщение было отмечено Runinterface как решение
РешениеЗапустите программу, создайте например 4 потока и попробуйте закончить квант(команда 3). Я не знаю что преподу тут не понравилось, может он не пробовал его запустить потому что я наделялся что он его скомпилирует. А отправил я ему только исходный код. Это не какой ни вирус как подумал тут один из форумчанина, зачем мне это вообще, я здесь за помощью так то. Проверьте пожалуйста.
0
|
||
|
10 / 4 / 3
Регистрация: 29.01.2016
Сообщений: 131
|
|
| 03.09.2017, 10:21 | |
|
Потестил функции "Блокировка" и "Разблокировка" работают как я задумал, теперь проверьте пожалуйста логическую часть всех 5 функции.
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 03.09.2017, 14:42 | ||
|
0
|
||
|
10 / 4 / 3
Регистрация: 29.01.2016
Сообщений: 131
|
|||||||
| 03.09.2017, 14:45 | |||||||
|
Кликните здесь для просмотра всего текста
0
|
|||||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 03.09.2017, 14:51 | ||
|
0
|
||
|
10 / 4 / 3
Регистрация: 29.01.2016
Сообщений: 131
|
||
| 03.09.2017, 15:14 | ||
|
0
|
||
|
1121 / 992 / 153
Регистрация: 10.08.2015
Сообщений: 5,449
|
|
| 03.09.2017, 17:03 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 16
|
||||||
| 03.09.2017, 22:41 [ТС] | ||||||
|
Добавлено через 8 минут
EpicSR,
0
|
||||||
|
10 / 4 / 3
Регистрация: 29.01.2016
Сообщений: 131
|
|
| 04.09.2017, 08:16 | |
|
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||||||
| 05.09.2017, 12:37 | ||||||
|
Странное представление у препода о работе ОСи.
ОСь создает процессы, которые создают потоки, один или несколько, к примеру у Photoshop их 4(было в 2000 году, сейчас не знаю, может больше). Сами процессы ведут себя, несколько иначе, количество статусов больше. Подобный эмулятор проще делать на списках, а не массивах.
1
|
||||||
|
10 / 4 / 3
Регистрация: 29.01.2016
Сообщений: 131
|
|
| 05.09.2017, 13:19 | |
|
Спасибо за код.
В данном заданий потоки существует только в очереди, вне очереди(вне массива их не существует) что ж поделать такая задача. И по этому процессы здесь не рассматриваются. Количество статусов может быть сколько угодно, главное что бы вразумительное количество, ни больше ни меньше. На счет списка то да, ты прав. К сожалению это условия задачи, мягко говоря бредовые. Это если как бы : сделать танк из дерева пользуясь только ложкой. Пока читать твой код не буду но заметил сразу несколько ошибок и за одно обнаружил у себя ошибку с присвоением одного и того же id разным потокам. Идентификатор не должен быть рандомным на то он и идентификатор. Например в моей проге она принимает значения от 0 до 19.
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||
| 05.09.2017, 13:59 | ||
|
В некоторой системной области при запуске процесса, выделяется свободная память под описание процесса, в которой хранится вся информация о самом процессе. Обычно ОСь в PID записывает адрес начала этой области, хотя некоторые ОСи в PID пишут индекс таблицы процессов.
0
|
||
|
10 / 4 / 3
Регистрация: 29.01.2016
Сообщений: 131
|
||
| 06.09.2017, 16:33 | ||
|
Значит препод принял работу и поставил 3-ку(как и ожидалось) со следующими комментариями :
Ответ : потому что нет понятия на какой уровень абстракции рассчитывал преподаватель, то есть какие элементы можно опускать какие нет. Я на разных форумах спрашивал и везде отвечали по разному как это делать. Мои комментарии(только на форуме, естественно я ему не писал) к комментариям преподавателя. Вообще то мне кажется для заблоченного потока только есть одно событие - это быть разблокированным. Вообщем программа(то что я написал ) нашла свою задачу по уровню : ). Всем огромное спасибо за помощь.Особенно Renji, Constantin Cat.
0
|
||
| 06.09.2017, 16:33 | |
|
CRC32, программная реализация Программная реализация процессора Программная реализация номограммы Программная реализация getchar Программная реализация дека Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|