Планировщики процессов на ОС Альт

Автор: Бондарева С.А., Денисюк М.В.

Журнал: Форум молодых ученых @forum-nauka

Статья в выпуске: 12 (100), 2024 года.

Бесплатный доступ

В работе проанализирована работа планировщиков процессов операционной системы Альт при различном количестве одновременно запущенных потоков программы cpuburn. На основе сравнения таблицы проанализирована нагрузка на процессор и сделаны выводы о каждом алгоритме планирования процессов.

Планировщик процессов, загруженность системы

Короткий адрес: https://sciup.org/140308984

IDR: 140308984

Текст научной статьи Планировщики процессов на ОС Альт

Планировщики процессов являются важной частью работы операционных систем. Они обеспечивают эффективное использование вычислительных ресурсов и повышают производительность системы, распределяя процессорное время между несколькими задачами. С помощью них современные операционные системы способны обрабатывать большое количество параллельных задач. Без них работа на компьютере не была бы такой эффективной.

В зависимости от задач и требований к ним необходимо использовать различные планировщики процессов. Один универсальный планировщик не сможет эффективно справиться со всеми ситуациями.

Объект исследования – процесс и их планирование в операционных системах.

Предмет исследования – сравнительный анализ эффективности алгоритмов планирования процессов операционной системы ALT Linux.

Цель – сравнить работу планировщиков процессов на отечественной операционной системе ALT Linux.

Литературный обзор

На эту тему было уже написано много статей. В пример возьму статью А.Г. Уймина «Моделирование телекоммуникационной сети средствами сетевых инструментов Linux: инструменты создания цифровых двойников» [10]

Если обобщить статьи, то основную информацию можно изложить следующим образом.

В операционных системах процесс - это программа, которая выполняется, используя ресурсы компьютера: память, центральный процессор. Иначе говоря, это активное состояние программы.

Например, пользователь запускает какое-либо приложение, компьютер получает инструкции от программы и выполняет их. Активно работающая версия программы - процесс.

В большинстве случаев пользователи хотят запускать более одной программы одновременно: различные браузеры, игры, текстовые редакторы. Современные операционные системы могут запускать сотни процессов одновременно. Но они только создают такое представление для пользователя. Процессор переключается между программами, предоставляя каждой определенное время (от десятков до сотен миллисекунд). В каждый момент он работает только с одной программой. Реальная параллельная работа программ может осуществляться в многопроцессорных и многоядерных системах. Так четырехъядерная система позволяет одновременно выполнять 4 процесса.

При запуске программа загружается в основную память компьютера, после чего делится на четыре части:

  • 1.    Стек. В нем хранится временная информация: вызовы функций, локальные переменные.

  • 2.    Куча. В ней хранится память, которая используется во время работы. Например, используется в случаях, когда программе требуется большее количество памяти для хранения дополнительных данных.

  • 3.    Раздел данных. Здесь хранятся глобальные и статические переменные, которые программа использует в процессе выполнения.

  • 4.    Раздел с текстом. В этой части хранятся фактические инструкции программы для компьютера.

Рисунок 1. Процесс в памяти

У каждого процесса есть атрибуты, которые помогают ОС управлять им и контролировать его. Они включают в себя:

  • 1.    Идентификатор процесса (PID), являющийся уникальным номером.

  • 2.    Состояние процесса: показывает текущий статус процесса.

  • 3.    Информация о планировании: данные, на основе которых ОС решает, какой процесс должен выполняться следующим (уровни приоритета).

  • 4.    Информация об устройствах ввода и вывода.

  • 5.    Учетная информация: продолжительность выполнения процесса, количество использованного процессорного времени и другие данные об использовании ресурсов.

  • 6.    Информация об управлении памятью: сведения о пространстве памяти, которое выделенно процессу.

В системе процесс может находиться в одном из трех основных состояний:

  • 1)    Выполнение – активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и выполняется процессором;

  • 2)    Ожидание - пассивное состояние процесса, процесс не выполняется по внутренним причинам, он ждет осуществления некоторого события, или освобождения необходимого для него ресурса;

  • 3)    Готовность - пассивное состояние процесса, процесс заблокирован из-за внешних причин: имеются все необходимы ресурсы, но пока что выполняется другой процесс.

Рисунок. 2. Граф состояний процесса

Из-за того, что процессор может выполнять только одну программу, то для эффективного использования вычислительных ресурсов необходимо использовать планировщиков процессов. Планирование – это обеспечение поочередного доступа процессов к одному процессору, а планировщик -отвечающая за это часть операционной системы.

Планирование процессов включает в себя определение момента времени для смены выполняемого процесса и выбор процесса на выполнение из очереди готовых процессов;

Различают виды алгоритмов планирования с переключениями и без. Алгоритм планирования без переключений (неприоритетный) не требует прерывание по аппаратному таймеру, процесс останавливается только когда блокируется или завершает работу. Алгоритм с переключениями (приоритетный) требует прерывание по аппаратному таймеру, процесс работает только отведенный период времени, после этого он приостанавливается по таймеру, чтобы передать управление планировщику.

Классы процессов Alt Linux:

  • 1.    Процессы реального времени (real_time), обслуживаемые по алгоритму FIFO. Эти процессы имеют наивысшие приоритеты. Они не могут прерываться

  • 2.    Процессы реального времени (real_time), обслуживаемые в порядке циклической очереди. Отличаются от процессов реального времени FIFO тем, что они могут прерываться по таймеру.

  • 3.    Процессы разделения времени (sharing_time). Обслуживаются в режиме пакетной обработки с выделением им определенного времени.

другими процессами. Исключением является процесс реального времени, который перешел в состояние готовности.

Алгоритмы планирования процессов Alt Linux:

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

- ]S chrt -m SCHED_OTHER min/max priority    :0/0

SCHED_FIFO min/max priority     :1/99

SCHED_RR min/max priority       :1/99

SCHED_BATCH min/max priority    :0/0

SCHED_IDLE min/max priority     :0/0

Рисунок. 3. Планировщики процессов в ОС Альт

Таблица 1. Описание планировщиков процессов

Название планировщика

Описание

SCHED_OTHER

Алгоритм планирования на основе разделения времени. Для выполнения выбирается процесс из списка со статическим приоритетом 0. Динамический приоритет основан на значении уступчивости и увеличивается с каждым квантом времени, при котором процесс был готов к работе, но ему было отказано. Таким образом время

равномерно распределяется между всеми процессами с алгоритмом.

SCHED_FIFO

Принцип планирования - «первым пришел – первым обслужен» без использования квантов времени. Предназначен для класса процессов реального времени, обслуживаемых по алгоритму FIFO.

SCHED_RR

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

SCHED_BATCH

Алгоритм планирования на основе разделения времени с учётом значения приоритета nice. Приоритет процессов ниже, чем у процессов, планируемых на основе SHED_OTHER.

ED_IDLE

Процессам с этой политикой пРисунокваивается самый низкий приоритет.

С помощью команды top можно просмотреть список текущих процессов. Интерфейс этой команды после запуска выглядит так:

£a dm initio st-1 5 ]S top top - 14:55:07 up 2:05,  2 users, load average: 0,86, 1,02. 1,47

Tasks: 163 total, 2 running, 161 sleeping, О stopped, О zombie %CPU(s):  2,7 us,  1,2 sy,  0,0 ni, 96,0 id, 0,0 wa , 0,0 hi, 0,0 si, 0,0 st

MiB Mem :   4923,5 total,   1556,1 free,   1412,4 used. 1954,9 buff/cache

MiB Swap:   4922.0 total,   4922,0 free,      0,0 used. 3238,2 avail Mem

I      PIP

USER

PR

NI

VIRT

RES

SHR

S_

%CPU

%MEM

TIME^

COMMAND |

401 8

admin

20

О

14.9g

406352

131044

s

3.0

8.1

4:03.17

I solate*

3098

root

20

О

385468

124152

74040

s

2 , О

2,5

1:27.49

X

3628

admin

20

О

786580

71204

56500

s

1.3

1 . 4

0:07.96

mate-te*

3319

admin

20

О

148148

2868

2420

s

0,3

О . 1

0:15.44

VBOXC11+

3395

admin

20

О

641480

53560

40976

s

о , 3

1 . 1

0:21.67

marco

4492

admin

20

О

2510068

160328

103468

s

0,3

3,2

0:27.33

Isolate*

8022

admin

20

О

2402640

95324

77316

s

0,3

1 .9

0:00.10

Isolate+

Рисунок. 4. Интерфейс команды top

Верхняя рабочая зона содержит сведения о времени работы сервера, свободных и занятых ресурсах, пользователях, а основная - это динамически обновляемая таблица, которая содержит сведения о процессах.

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

В разделе Tasks отображается статистика процессов, выполняемых в системе: общее количество процессов, активные, спящие, остановленные и процессы-зомби.

Раздел использования CPU показывает показателя загруженности системы.

  •    us (user) — использование процессора пользовательскими процессами.

  •    sy (system) — использование процессора системными процессами.

  •    ni (nice) — использование процессора процессами с изменённым приоритетом с помощью команды nice.

  •    id (idle) — свободные ресурсы.

Последние 2 строки показывают информацию об использовании памяти в системе. Строки Mem и Swap отображают информацию о оперативной памяти и области подкачки. Указаны значения общего, свободного, используемого объема и кеша. Avail Mem - это объем памяти, который может быть выделен для процессов, не используя большую область диска.

В таблице используются следующие обозначения:

РЮ

Это идентификатор процесса; уникальное положительное целое число, которое идентифицирует процесс.

USER

Это эффективное имя пользователя (соответствующее идентификатору пользователя) пользователя; который запустил этот процесс Linux назначает реальный идентификатор пользователя и эффективный идентификатор пользователя для процессов; последний позволяет процессу действовать от имени другого пользователя. Например, пользователь; не являющийся пользователем root, можете правами root установить пакет.

PR

Поле показывает приоритет выполнения процесса сточки зрения ядра.

Nl

Поле показывает nice-значение процесса.

VIRT

Общий объем памяти, потребляемый процессом.Он включает в себя код программы, данные, хранящиеся в памяти, а также любые области памяти, которые были подкачены на диск.

RES

Количество памяти, потребляемая процессом в оперативной памяти.

SHR

Объем памяти, совместно используемый другими процессами.

S

В этом поле отображается состояние процесса в однобуквенной фopмe(R- Runnable, D- Interruptible sleep, S -Uninterruptible sleep, T - Stopped, Z - Zombie).

%CPU

Параметр выражает объем в процентах от общей доступной оперативной памяти ОЗУ.

%MEM

Параметр выражает значение RES в процентах от общей доступной оперативной памяти.

TIME+

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

COMMAND

Здесь отображено название процессов.

Рисунок 5. Обозначения в таблице

Экспериментальная часть

Методика исследования: на ОС ALT Linux буду запускать программу cpuburn, последовательно изменяя используемый планировщик процесса и анализируя загруженность системы. Так как рассматриваемая программа является однопоточной, то исследование нужно проводить при запуске 1/4/7 потоков одновременно.

  • 1)    Анализ при одном включенном потоке

Включим cpuburn с помощью команды burnP6. Воспользуемся командой top, чтобы просмотреть список текущих процессов.

Рисунок. 6. Список процессов при запуске одного потока программы

Теперь, чтобы получить текущую политику планирования и приоритет для процесса, вызванным командой burnP6, используем chrt следующим образом chrt -p 6526 pid 6526's current scheduling policy: SCHED_OTHER pid 6526's current scheduling priority: О

Рисунок 7. Просмотр текущей политики

Замечаем, что по умолчанию используется алгоритм планирования SCHED_OTHER с приоритетом 0.

Теперь, чтобы изменить политику на SCHED_FIFO , нужно обладать правами суперпользователя (используем команду su- ). Далее пишем команду chrt -f -p и проверяем, какая политика планирования станет использоваться для процесса.

[admin@host- 1 5 -]$ su-

Pa ssword: chrt -f -p 1 6526 chrt -p 6526

pid 6526's current scheduling policy: SCHED_FIFO pid 6526's current scheduling priority: 1

Рисунок 8. Смена политики

После этого посмотрим список текущих процессов.

Рисунок 9. Список процессов

Для применения алгоритма SCHED_RR используем команду chrt -r -p

chrt -r -p 1 6526

pid 6526's pid 6526’s

chrt -p 6526 current scheduling policy: SCHED_RR current scheduling priority: 1

Рисунок 10. Смена политики

Рисунок 11. Список процессов

Теперь, чтобы изменить политику на SCHED_BATCH используем следующую команду: chrt -b -p chrt -b -p О 6526 chrt —p 6526

pid 6526's current scheduling policy: SCHED_BATCH pid 6526's current scheduling priority: О

Рисунок 12. Смена политики

Рисунок 13. Список процессов

Для SCHED_IDLE пишем chrt -i -p chrt -i -p О 6526

chrt -p 6526

pid 6526’s current scheduling policy: SCHED_IDLE pid 6526’s current scheduling priority: О

Рисунок 14. Смена политики

Рисунок 15. Список процессов

  • 2)    Анализ с четырьмя запущенными потоками

По аналогии с прошлым пунктом запустим четыре потока программы cpuburn и воспользуемся командой top.

top - 00:35:53 up 41 min, 2 users, load average: 4,03, 2,96, 1,43

Tasks: 153 total, 5 running, 147 sleeping, 0 stopped, 1 zombie

WU(s): 98,2 us, 1,8 sy,  0,0 ni, 0,0 id, 0,0 wa, 0,0 hi. 0,0 si, 0,0 st

MiB Mem :   4923,5 total,   3361,8 free,    546,7 used, 1015,0 buff/cache

MiB Swap: 4922,0 total,   4922,0 free,      0,0 used. 4143,0 avail Mem

PID USER

PR

NI

VIRT

RES

SHR S

%CPU

%MEM

TIME* COMMAND

3593 admin

20

0

168

4

0 R

49,5

0,0

3:30.10 burnP6

3625 admin

20

0

168

4

0 R

49,5

0,0

3:03.29 burnP6

3605 admin

20

0

168

4

0 R

49,2

0,0

3:20.11 burnP6

3615 admin

20

0

168

4

0 R

49,2

0,0

3:08.18 ЬигпРб

2693 root

20

0

384376

118648

65172 5

1,0

2,4

1:40.47 X

3185 admin

20

0

816432

61648

50508 S

o,3

1,2

0:03.07 mate-pa-

Рисунок 16. Список процессов

Проверим какой планировщик установлен по умолчанию. Как и в прошлом эксперименте используется SCHED_OTHER с приоритетом 0.

chrt -p 3605

pid 3605's current scheduling policy: SCHED_OTHER pid 3605's current scheduling priority: 0

Рисунок 17. Текущая политика

Изменяем политику на SCHED_FIFO , используя команду chrt -f-p и смотрим список текущих процессов.

Рисунок 18. Смена политики top - 00:36:26 up 41 min, 2 users, load average: 4,16, 3,11, 1,54

Tasks: 153 total, 6 running, 146 sleeping, 0 stopped, 1 zombie

%CPU(s): 97,0 us, 1,8 sy, 0,0 ni, 1,2 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st MiB Mem :   4923,5 total, 3372,8 free, 535,7 used, 1015,0 buff/cache

MiB Swap: 4922,0 total, 4922,0 free, 0,0 used. 4154,0 avail Mem

PIP USER

PR

NI

VIRT

RES

SHR S

%CPU

%MEM

TIME* COMMAND

3605 admin

-2

0

168

4

0 R

95,0

0,0

3:41.99 burnP6

3593 admin

20

0

168

4

0 R

34,6

0,0

3:44.54 burnP6

3615 admin

20

0

168

4

0 R

34,2

0,0

3:22.55 burnP6

3625 admin

20

0

168

4

0 R

30,9

0,0

3:17.33 burnP6

2693 root

20

0

384376

118648

65172 S

1,3

2,4

1:41.06 X

Рисунок 19. Список процессов

Применяем политику SCHED_RR с помощью команды chrt -r -p

.

Рисунок 20. Смена политики top • 00:37:50 up 43 min, 2 users, load average: 4,50, 3,48, 1,81

Tasks: 153 total, 6 running, 146 sleeping, 0 stopped, 1 zombie

XCPU(s): 96,3 us, 2,5 sy,  0,0 ni, 1,2 id, 0,0 wa. 0,0 hi, 0,0 si, 0,0 st

MiB Mem :   4923,5 total,   3372,8 free,    535,6 used, 1015,0 buff/cache

MiB Swap: 4922,0 total,   4922,0 free,      0,0 used. 4154,1 avail Mem

PIP USER

PR

NI

VIRT

RES

SHR S

SCPU

%MEM

TIME* COMMAND

3605 admin

-2

0

168

4

0 R

95,3

0,0

5:01.93 ЬигпРб

3593 admin

20

0

168

4

0 R

32,6

0,0

4:13.61 ЬигпРб

3615 admin

20

0

168

4

0 R

31,9

0,0

3:51.55 ЬигпРб

3625 admin

20

0

168

4

0 R

27,9

0,0

3:44.11 ЬигпРб

2693 root

20

0

384376

118648

65172 S

5,3

2,4

1:41.84 X

Э1ОС                 Л О4СЛ11 С1СЛО СПЕЛО С 11   4 1 A ■ Al

Рисунок 21. Список процессов

Для применения алгоритма SCHED_BATCH используем команду chrt -b -p chrt -b -p 0 3605

chrt -p 3605

pid 3605's current scheduling policy: SCHED_BATCH pid 3605's current scheduling priority: 0

Рисунок 22. Смена политики top - 00:39:21 up 44 min, 2 users, load average: 4,34, 3,71, 2,05

Tasks: 153 total, 5 running, 147 sleeping, 0 stopped, 1 zombie %CPU(s); 98,3 us, 1,7 sy,  0,0 ni, 0,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st

KiB Mem :   4923,5 total,   3381,1 free,    527,3 used, 1015,0 buff/cache

Mie Swap: 4922,0 total,   4922,0 free,      0,0 used. 4162,4 avail Mem

PID USER

PR

NI

VIRT

RES

SHR S

KPU

WEM

TIME- COMMAND

3593 admin

20

0

168

4

0 R

50,2

0,0

4:52.28 burnP6

3625 admin

20

0

168

4

0 R

49,5

0,0

4:21.41 burnP6

3605 admin

20

0

168

4

0 R

48,8

0,0

6:05.25 ЬигпРб

3615 admin

20

0

168

4

0 R

48,8

0,0

4:29.92 burnP6

2693 root

20

0

384376

118648

65172 S

1,0

2,4

1:42.70 X

3185 admin

20

0

816432

61648

50508 S

0,7

1,2

0:03.63 mate-pa*

Рисунок 23. Список процессов

Для SCHED_IDLE пишем chrt -i -p chrt -i -p 0 3605

chrt -p 3605

pid 3605's current scheduling policy: SCHED_IDLE pid 3605's current scheduling priority: 0

Рисунок 24. Смена политики

Рисунок 25. Список процессов

  • 3)    Анализ с семью запущенными потоками

Проверяем список текущих процессов и узнаем политику, установленную по умолчанию - SCHED_OTHER с приоритетом 0.

Tasks: 158 total, 8

running, 149 sleeping,

0 stopped, 1

zombie

%CPU(s):

97,7 US, 2,3

I sy,

, 0,0 ni, 0,0

id, <

),0

wa,

0,0 hi,

0,0 si

, 0,0 st

MiB Mem

:   4923,5 total,

3357,5 free,

550,8

used,

1015,3 buff/cache

MiB Swap: 4922,0 total,

4922,0 free,

0,0

used.

4138

,9 avail

Mem

РЮ

USER      PR

NI

VIRT RES

SHR

S

%CPU

ИМЕН

TIME*

COMMAND

3615

admin     20

0

168      4

0

R

28,9

o,o

6:06.55

burnP6

3625

admin     20

0

168      4

0

R

28,6

0,0

5:57.36

burnP6

3690

admin     20

0

168      4

0

R

28,6

0,0

0:08.80

burnP6

3700

admin     20

0

168      4

0

R

28,6

0,0

0:05.00

ЬигпРб

3593

admin     20

0

168      4

0

R

28,2

0,0

6:28.56

burnP6

3605

admin     20

0

168      4

0

R

27,6

0,0

7:41.06

ЬигпРб

3678

admin 20

0

168      4

0

R

27,2

0,0

0:13.17

burnP6

2693

root      20

0

393940 128416

65180

S

1,3

2,5

1:47.20

X

Рисунок 26. Список процессов

Рисунок 27. Текущая политика

Изменяем используемую политику на SCHED_FIFO с использованием команды из прошлого пункта при работе с этой политикой. Проверяем список запущенных процессов.

chrt -f -p 1 3605

chrt -p 3605

pid 3605's current scheduling policy: SCHED_FIFO pid 3605’s current scheduling priority: 1

Рисунок 28. Смена политики

Tasks; 158 total, 8 running, 149 sleeping, 0 stopped, 1 zombie

ICPU(s): 97,8 us, 1,8 sy,  0,0 ni, 0,3 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st

MiB Mem ;   4923,5 total,   3357,0 free,    551,2 used, 1015,3 buff/cache

MiB swap: 4922,0 total,   4922,0 free,      0,0 used. 4138,4 avail Mem

PIP USER

PR

NI

VIRT

RES

SHR S

JKPU

W

TIME* COMMAND

3605 admin

•2

0

168

4

0 R

95,0

0,0

9:00.43 ЬигпРб

3678 admin

20

0

168

4

0 R

18,0

0,0

0:41.47 burnP6

3690 admin

20

0

168

4

0 R

17,7

0,0

0:36.85 ЬигпРб

3625 admin

20

0

168

4

0 R

17,3

0,0

6:25.51 ЬигпРб

3700 admin

20

0

168

4

0 R

17,0

0.0

0:33.23 ЬигпРб

3593 admin

20

0

168

4

0 R

16,7

0,0

6:56.63 ЬигпРб

3615 admin

20

0

168

4

0 R

16,7

0,0

6:34.49 ЬигпРб

2693 root

20

0

393940

128416

65180 S

0,7

2,5

1:49.04 X

Рисунок 29. Список процессов

Применяем политику алгоритма SCHED_RR, используем команду chrt -r

-p

Рисунок 30. Смена политики

top - 00:46:24 up 51 min,

2 users

, load average

: 7,29,

5,82,

, 3,56

Tasks: 158 total, 8 running, 149 sleeping,

0 stopped

, 1

zombie

%CPU(s)

97,7 us, 2,

.0 sy,

0,0 ni

. 0,3

id, 0,0

wa, 0

,0 hi,

0,0 si,

0,0 st

MiB Mem

4923,5 total.

3356,7

free,

551

1,5 used,

1015,3 buff/cache

MiB Swap: 4922,0 total.

4922,0

free,

0,0 used.

4138,2 avail

Mem

PIO

USER      PR

NI

VIRT

RES

SHR

S

%CPU «Ell

TIME*

COMMAND

3605

admin -2

0

168

4

0

R

95,0

0,0

10:23.28

ЬигпРб

3625

admin 20

0

168

4

0

R

19,6

0,0

6:40.20

ЬигпРб

3593

admin     20

0

168

4

0

R

17,6

0,0

7:11.18

ЬигпРб

3615

admin     20

0

168

4.

0

R

17,3

0,0

6:49.15

ЬигпРб

3690

admin     20

0

168

4

0

R

17,3

0,0

0:51.78

ЬигпРб

3700

admin     20

0

168

4

0

R

16,9

0,0

0:48.14

ЬигпРб

3678

admin     20

0

168

4

0

R

15,0

0,0

0:56.27

ЬигпРб

3397

admin     20

0

856900 73556

54076

S

0,7

1.5

0:05.12

mate-te+

Рисунок 31. Список процессов

Работа с политикой на SCHED_BATCH осуществляется с использованием следующей команды: chrt -b -p

Рисунок 32. Смена политики

|top - 00:47:28 up 52 min, 2 users, load average: 7,21, 6,07, 3,79

Tasks: 158 total, 8 running, 149 sleeping, 0 stopped, 1 zombie

KPU(s): MiB Mem MiВ Swap

96,8 us, : 4923, к 4922,

3,2 sy, 5 total, 0 total,

0,0 ni, 3356,7 4922,0

0,0 id, 0,0 wa,

0,0 hi, 1015 4138

0,0 si, ,3 buff/( ,2 avail

, 0,0 St

:ache Mem

free, free,

551,4 used, 0,0 used.

PID USER

PR

NI

VIRT

RES

SHR

S

%CPU

JO

TIME*

COMMAND |

3678

admin

20

0

168

4

0

R

27,9

0,0

1:09.51

burnP6

3593

admin

20

0

168

4

0

R

26,9

0.0

7:24.24

burnP6

3625

admin

20

0

168

4

0

R

26,9

0,0

6:53.43

burnP6

3615

a Anin

20

0

168

4

0

R

26,2

0,0

7:02.25

ЬигпРб

3605

admin

20

0

168

4

0

R

25,9

o.o

11:08.47

ЬигпРб

3690

admin

20

0

168

4

0

R

24,9

0.0

1:04.91

ЬигпРб

3700

admin

20

0

168

4

0

R

24,9

0.0

1:01.44

ЬигпРб

2693

root

20

0

393940 128416

65180

S

10,0

2,5

1:50.89

X

Рисунок 32. Список процессов

Для SCHED_IDLE пишем chrt -i -p chrt -i -p 0 3605

chrt -p 3605

pid 3605's current scheduling policy: SCHED_IDLE pid 3605's current scheduling priority: 0

Рисунок 34. Смена политики

Рисунок 35. Список процессов

Составим таблицу с различающимися данными.

Таблица 2. Сравнение загруженности системы при разном количестве потоков

Название политики

us

sy

id

Используемая память

Кол-во потоков

1

4

7

1

4

7

1

4

7

1

4

7

SCHED_OTHER

49,3

98,2

98

1,1

1,

2

49,6

0

0

1310,1

546,

550,8

8

7

SCHED_FIFO

54,6

97

98

1,7

1, 8

2

43,6

1,2

0,

3

1427

535, 7

551,2

SCHED_RR

53,1

96,3

98

1,2

2, 5

2

45,7

1,2

0,

3

1463

535, 6

551,5

SCHED_BATC H

62,4

98,3

97

3,5

1, 7

3

34

0

0

1444,5

527, 3

551,4

SCHED_IDLE

49,5

97,7

98

1,4

2, 3

3

49,1

0

0

1441,5

527, 8

1015

Вывод

Политики SCHED_OTHER показывает относительно сбалансированное использование ресурсов: использование процессора самое низкое, остается наибольшее количество свободных ресурсов.

При использовании политики SCHED_FIFO использование процессора пользовательскими процессами значительно выше, чем у SCHED_OTHER при однопоточном исследовании. Это может указывать на то, что процессы реального времени (FIFO) захватывают значительную часть процессорного времени, оставляя мало ресурсов для других процессов. При анализе с 4/7 потоками система работает незначительно, но лучше, чем при использовании SCHED_OTHER.

SCHED_RR - циклическое квантование работает относительно эффективно, обеспечивая более равномерное распределение процессорного времени, чем SCHED_FIFO. В сравнении с другими алгоритмами загруженность процессора пользовательскими процессами меньше.

SCHED_BATCH – низкая загрузка id и высокая загрузка пользователя (us). Процессы с низким приоритетом, работают эффективно с точки зрения пользовательского времени, но получают мало времени процессора, что проявляется в низкой системной загрузке (sy).

SCHED_IDLE - низкая загрузка процессора только при однопоточном анализе.

Выбор политики планирования зависит от конкретных задач. Например, SCHED_OTHER и SCHED_RR показывают лучшую масштабируемость при увеличении количества потоков. SCHED_BATCH неэффективен при маленькой нагрузке, SCHED_IDLE – при большой.

В целом, SCHED_OTHER подходит для большинства интерактивных приложений, SCHED_FIFO и SCHED_RR — для задач реального времени, SCHED_BATCH — для фоновых задач с низким приоритетом, а SCHED_IDLE предназначен для процессов, которые выполняются только при отсутствии другой работы.

Список литературы Планировщики процессов на ОС Альт

  • ALT Linux - sisyphus - cpuburn-1.4a-alt1 - CPU testing utilities - [Электронный ресурс] - URL: https://packages.altlinux.org/en/sisyphus/srpms/cpuburn/(дата обращения: 10.12.24).
  • chrt command in Linux with examples - GeeksforGeeks - [Электронный ресурс] - URL: https://translated.turbopages.org/proxy_u/en-ru.ru.b9e09dfb-6758b48b-6d3b21a7-74722d776562/https/www.geeksforgeeks.org/chrt-command-in-linux-with-examples/(дата обращения: 10.12.24).
  • Operating Systems: Three Easy Pieces. Part 2: Абстракция: Процесс (перевод) / Хабр - [Электронный ресурс] - URL: https://habr.com/ru/articles/446866/(дата обращения: 11.12.24).
  • States of a Process in Operating Systems - GeeksforGeeks - [Электронный ресурс] - URL: https://www.geeksforgeeks.org/states-of-a-process-in-operating-systems/(дата обращения: 11.12.24).
  • Как управлять процессами в Linux - [Электронный ресурс] - URL: https://1cloud.ru/help/security/prosmotr-i-upravlenie-protsessami-linux-s-pomoshhyu-top (дата обращения: 11.12.24).
  • Кручинин А.Ю. К 84 Операционные системы [Электронный ресурс]: учебное пособие / А.Ю. Кручинин, Р.Р. Галимов., А.А. Рычкова - Оренбург: ОГУ, 2019. - 152 с. (дата обращения: 09.12.24).
  • ОС: 5.1 Лекция- Планирование процессов. | Сайт дистанционного образования - MOODLE КНИТУ (КХТИ)- [Электронный ресурс] - URL: https://moodle.kstu.ru/mod/page/view.php?id=55 (дата обращения: 09.12.24).
  • Сёмкин П.С., Сёмкин А.П. Методические материалы к лабораторным работам по дисциплине "Операционные системы" "ОС Alt Linux. Мониторинг и управление процессами" (дата обращения: 11.12.24).
  • Управление процессами - [Электронный ресурс] - URL: https://dit.isuct.ru/IVT/BOOKS/OPERATING_SYSTEMS/OPER12/GLAVA_6.HTM (дата обращения: 11.12.24).
  • Уймин, А. Г. Моделирование телекоммуникационной сети средствами сетевых инструментов Linux: инструменты создания цифровых двойников / А. Г. Уймин, О. Р. Никитин // I-methods. - 2023. - Т. 15, № 2. (дата обращения: 09.12.24). EDN: NFJDVH
Еще
Статья научная