Реализация трех многоприоритетных очередей готовности для потока ЦП. ⇐ Linux
Реализация трех многоприоритетных очередей готовности для потока ЦП.
Добавление очередей с несколькими приоритетами RQ0, RQ1 и RQ2 для каждого потока потребителя или процессора. • Различие трех разных типов процессов: SCHED_FIFO, SCHED_RR и SCHED_NORMAL. • Добавление блокировки/разблокировки очередей потребителей/ЦП. • Выбор следующего процесса для «запуска». А. Общее описание упрощенного планирования Linux: Для планирования принятия решений используются различные уровни приоритета. В современном Linux диапазон приоритетов — [0, 140) или 0–139 включительно. Ниже приводится краткое описание некоторых функций, используемых в Linux Completely Fair. Планировщик (CFS).
[*]Многоуровневые очереди: Linux CFS использует многоуровневый планировщик очередей, и каждая очередь связана с приоритетное значение. Всего приоритетов 140, а это значит, что очередей 140. Linux использует эффективная аппаратная инструкция растрового изображения для проверки всех 140 очередей, когда ЦП должен выбрать текстовый процесс для запуска. Это очень эффективно с аппаратной поддержкой. Для этой лабораторной работы и задания мы упрощаем этот уровень до трех готовых очередей, т. е. RQ0, RQ1 и RQ2. представляющий порядок убывания приоритета, т. е. приоритет RQ0 > RQ1 > RQ2. Обычно процессы в каждом очередь будет организована с использованием связанного списка. Но для лабораторной работы или задания это не требуется. RQ0 предназначен для приложений реального времени (SCHED_FIFO и SCHED_RR) с диапазоном приоритетов [0,100), т. е. от 0 до 99, включительно. Приоритет процессов реального времени (SCHED_FIFO и SCHED_RR) статический, т.е. не изменяется. как только он будет создан производителем. SCHED_FIFO не является вытесняющим, т. е. он выполняется до завершения или когда запущенный процесс блокируется. Для lab, мы предполагаем, что процессы SCHED_FIFO не будут заблокированы до их завершения. Другими словами, те процессы будут выполняться до завершения после его выбора. Но процессы SCHED_RR являются вытесняющими. Для лабораторной работы предположим, что запущенные процессы блокируются только прерывания таймера на каждой итерации, т. е. они используют весь расчетный интервал времени или размер кванта, а не из-за любое другое событие. Но ожидаемое время обслуживания (генерируемое производителем) в несколько раз превышает заявленное. квантовый размер. См. формулу расчета размеров квантов. 3 Приоритеты для процессов SCHED_NORMAL находятся в диапазоне [100, 140). Обычно SCHED_NORMAL процессы со значением статического приоритета (SP) по умолчанию 120 изначально будут помещены в RQ1, а когда динамический приоритет >= 130, процессы будут перемещены в RQ2. Начальные процессы, значения приоритетов и ожидаемое время выполнения можно считать из предварительно настроенного входной файл основным потоком. Для справки смотрите конец описания. Если основной поток читает процесс информации из входного файла, поток-производитель можно исключить. Предположим, что процессы происходят равномерно. распределяется изначально в четыре очереди, т.е. все потоки потребителя/ЦП имеют одинаковое количество SCHED_FIFO, Процессы SCHED_RR и SCHED_NORMAL в очередях
Я не знаю, с чего начать. Я подумываю создать функцию для добавления элементов в очередь, но не знаю, как это сделать.
Добавление очередей с несколькими приоритетами RQ0, RQ1 и RQ2 для каждого потока потребителя или процессора. • Различие трех разных типов процессов: SCHED_FIFO, SCHED_RR и SCHED_NORMAL. • Добавление блокировки/разблокировки очередей потребителей/ЦП. • Выбор следующего процесса для «запуска». А. Общее описание упрощенного планирования Linux: Для планирования принятия решений используются различные уровни приоритета. В современном Linux диапазон приоритетов — [0, 140) или 0–139 включительно. Ниже приводится краткое описание некоторых функций, используемых в Linux Completely Fair. Планировщик (CFS).
[*]Многоуровневые очереди: Linux CFS использует многоуровневый планировщик очередей, и каждая очередь связана с приоритетное значение. Всего приоритетов 140, а это значит, что очередей 140. Linux использует эффективная аппаратная инструкция растрового изображения для проверки всех 140 очередей, когда ЦП должен выбрать текстовый процесс для запуска. Это очень эффективно с аппаратной поддержкой. Для этой лабораторной работы и задания мы упрощаем этот уровень до трех готовых очередей, т. е. RQ0, RQ1 и RQ2. представляющий порядок убывания приоритета, т. е. приоритет RQ0 > RQ1 > RQ2. Обычно процессы в каждом очередь будет организована с использованием связанного списка. Но для лабораторной работы или задания это не требуется. RQ0 предназначен для приложений реального времени (SCHED_FIFO и SCHED_RR) с диапазоном приоритетов [0,100), т. е. от 0 до 99, включительно. Приоритет процессов реального времени (SCHED_FIFO и SCHED_RR) статический, т.е. не изменяется. как только он будет создан производителем. SCHED_FIFO не является вытесняющим, т. е. он выполняется до завершения или когда запущенный процесс блокируется. Для lab, мы предполагаем, что процессы SCHED_FIFO не будут заблокированы до их завершения. Другими словами, те процессы будут выполняться до завершения после его выбора. Но процессы SCHED_RR являются вытесняющими. Для лабораторной работы предположим, что запущенные процессы блокируются только прерывания таймера на каждой итерации, т. е. они используют весь расчетный интервал времени или размер кванта, а не из-за любое другое событие. Но ожидаемое время обслуживания (генерируемое производителем) в несколько раз превышает заявленное. квантовый размер. См. формулу расчета размеров квантов. 3 Приоритеты для процессов SCHED_NORMAL находятся в диапазоне [100, 140). Обычно SCHED_NORMAL процессы со значением статического приоритета (SP) по умолчанию 120 изначально будут помещены в RQ1, а когда динамический приоритет >= 130, процессы будут перемещены в RQ2. Начальные процессы, значения приоритетов и ожидаемое время выполнения можно считать из предварительно настроенного входной файл основным потоком. Для справки смотрите конец описания. Если основной поток читает процесс информации из входного файла, поток-производитель можно исключить. Предположим, что процессы происходят равномерно. распределяется изначально в четыре очереди, т.е. все потоки потребителя/ЦП имеют одинаковое количество SCHED_FIFO, Процессы SCHED_RR и SCHED_NORMAL в очередях
Я не знаю, с чего начать. Я подумываю создать функцию для добавления элементов в очередь, но не знаю, как это сделать.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение