Как смоделировать планирование процессора (многоуровневую очередь) с помощью библиотеки pthread? - PullRequest
0 голосов
/ 25 мая 2020

Я хочу смоделировать многоуровневое планирование очереди с использованием библиотеки pthread

Я создам 3 готовые очереди. Первая очередь имеет алгоритм циклического планирования (квант времени = 2); вторая очередь имеет алгоритм планирования циклического перебора (квант времени = 5); третья очередь имеет алгоритм планирования FCFS.

каждая очередь имеет поток, который планировать процессы.

приоритет очереди: первая очередь> вторая очередь> третья очередь

Интересно, как дать приоритет очередям. Речь идет о синхронизации с использованием семафора.

Я надеюсь, что поток очереди с более высоким приоритетом выполнится первым.

как это сделать?

Спасибо за прочтение.

1 Ответ

0 голосов
/ 25 мая 2020

Цитата из Википедии p_queue "A priority queue - абстрактный тип данных, аналогичный обычной структуре данных queue или stack, в которой каждый элемент дополнительно имеет "приоритет", связанный с ним. В очереди с высоким приоритетом элемент с высоким приоритетом обслуживается перед элементом с низким приоритетом

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

В сети полно руководств, например, здесь . вы можете реализовать приоритетную очередь с помощью кучи, а затем определить, где у вас критические разделы в исходном коде! Только в этом случае вы должны защищать и предотвращать состояние гонки в этих разделах, заблокировав эти разделы с помощью мьютекса, симафора или любого другого механизма os syn c.

...