Які алгоритми планування використовуються на 15.04? Чи можливо це змінити?


12

Хочете дізнатися, які механізми планування використовуються в 15.04, обмін часом або в режимі реального часу, я впевнений, що його FIFO, Round Robin, SJF?

PS: Нове для Linux

Відповіді:


14

Планувальник процесів

Планувальник процесів обробляє розподіл ресурсів процесора для виконання процесів і спрямований на максимальне використання загального процесора, а також на максимальну ефективність роботи.

Оскільки ядро ​​2.6.23 (це було б у Харді 8.04 LTS), повністю справедливий планувальник (CFS) на основі "граничного терміну обертання сходів". Огляд з kernel.org :

CFS розшифровується як "Повністю справедливий планувальник", і це новий "настільний" планувальник процесів, реалізований Інго Молнар та об'єднаний в Linux 2.6.23. Це заміна коду інтерактивності SCHED_OTHER попереднього планувальника ванілі.

80% дизайну CFS можна підсумувати одним пропозицією: CFS в основному моделює «ідеальний, точний багатозадачний процесор» на реальному апаратному забезпеченні.

"Ідеальний багатозадачний процесор" - це (неіснуючий :-)) процесор, який має 100% фізичну потужність і здатний виконувати кожне завдання з точно рівною швидкістю, паралельно кожній зі швидкістю 1 / nr_running. Наприклад: якщо виконуються 2 завдання, то воно виконується кожним із 50% фізичної сили --- тобто фактично паралельно.

На реальному апаратному забезпеченні ми можемо виконати лише одне завдання одразу, тому нам доведеться ввести поняття "віртуальний час виконання". Віртуальний час виконання завдання вказує, коли його наступний часовий фрагмент розпочне виконання на ідеальному багатозадачному процесорі, описаному вище. На практиці віртуальний час виконання завдання - це його фактичний час виконання, нормалізований на загальну кількість виконуваних завдань.


  • Ядро 2.4: O (n) планувальник ; з цим ядром немає релізу Ubuntu.
  • Ядро 2.6.0 до 2.6.22: планувальник O (1) . Warty 4.10 (1-й випуск) використано 2.6.8. Gutsy 7.10 був останнім, хто використовував 2.6.22 або нижче.

Планувальник вводу / виводу

Планування вводу / виводу - це метод, який використовує операційна система, щоб вирішити, в якому операції блоку вводу / виводу блоку замовлення буде подано обсяг зберігання.

Стаття Phoronix про планування : Linux 3.16: Планувальник термінів вводу / виводу, як правило, веде з SSD.


Ви можете змінити планувальник вводу-виводу, додавши в grub опцію "elevator =" до "GRUB_CMDLINE_LINUX_DEFAULT =".

Це, мабуть, простіше (якщо вважати sda та термін) зробити це так:

  • Щоб показати список доступних планувальників:

    cat /sys/block/sda/queue/scheduler
    
  • І щоб змінити планувальник (це можна зробити на ходу):

    echo deadline > /sys/block/sda/queue/scheduler
    

З ядра / git / torvalds / linux.git


Ви можете перевірити, для чого використовується (припускаючи sda як первинну):

cat /sys/block/sda/queue/scheduler

Чи означає це механізм планування, який за умовчанням використовується Ubuntu 15.04, алгоритм розподілу часу, CFS? Або це постачається з OTHER, RR та FIFO? Я отримав тут свою інформацію: manpages.ubuntu.com/manpages/hardy/man2/…
— leslie_lyj

Ви дивитесь на маніпуляції для Харді. Це трохи старе;) 'cfq' є типовим. Дивіться додане посилання на kernel / git / torvalds / linux.git.
— Rinzwind

1
... це не плутанина між диском та процесором планувальника? Вони зовсім інші звірі. Планувальник процесора вирішує, який процес буде запущений далі, а дисковий планувальник вирішує, яким чином доступ до блоків даних на дисках. Дивіться, наприклад, wiki.archlinux.org/index.php/Maximizing_performance
— Rmano

Ну, не дуже, головним моментом цього питання було уточнити, на якому механізмі планування процесу працює Ubuntu 15.04. (Вибачте, якщо я не зрозумів)
— leslie_lyj

2
@Rmano Я припускав, що це інформація, а не спеціально для її фактичного використання. Але невротик у мене все вийшов>: - D Кожен, хто хоче пограти з цим, слід очікувати, що він буде експертом: X
— Rinzwind
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.