[Linux] Параметры командной строки и приоритет процесса
Каталог статей
Параметры командной строки
Понятие параметров командной строки
Параметры командной строки — это параметры, вводимые в командной строке при запуске программы.
Получение параметров командной функции
Функция main в языке C имеет два параметра для получения параметров командной строки, а именно argc и argv.Даже если параметры основной функции не указаны явно, компилятор автоматически добавит и получит параметры во время компиляции, но они не будут указано явно. Невозможно использовать параметр:
int main(int argc, char *argv[]);
При запуске программы необходимо в командной строке вводить параметры.Суть параметров - это строка.Перед передачей в основную функцию они будут разделены пробелами, а затем переданы отдельно. Параметр argc записывает количество переданных параметров, а параметр argv записывает адрес каждого параметра:
Напишите подтверждение кода
Напишите следующий код, чтобы убедиться, что основная функция принимает параметры командной строки:
#include <stdio.h>
int main(int argc, char *argv[])
{
int i = 0;
for (i = 0; i < argc; i++)
{
printf("argv[%d]->%s\n", i, argv[i]);
}
return 0;
}
Тест после успешной компиляции:
Дополнение: Именно потому, что основная функция может получать параметры командной строки, реализована функция добавления опций при использовании инструкций Linux.
приоритет процесса
Концепция приоритета процесса
Приоритет процесса относится к порядку распределения ресурсов ЦП. Процессы с более высоким приоритетом имеют приоритетные права выполнения.
Причина появления приоритета процесса: Системных процессов много, но ресурсов ЦП мало, а то и один, поэтому между процессами существует конкуренция. Чтобы эффективно выполнять задачи и более разумно конкурировать за соответствующие ресурсы, приоритет отдается.
ПРИ и НИ
Введите параметры для просмотра системного процесса в системе Linux ps -l
:
Среди множества данных два параметра, связанные с приоритетом, — это PRI и NI.
-
PRI: представляет приоритет, с которым этот процесс может быть выполнен. Чем меньше значение, тем раньше он будет выполнен.
-
NI: представляет собой хорошее значение этого процесса, которое представляет собой измененное значение приоритета, с которым процесс может быть выполнен.
PRI = начальное значение приоритета + приятное значение.
Диапазон значений nice — [-20,19). Если приоритет определенного процесса слишком высок или слишком низок, это может привести к тому, что другие процессы не смогут быть запланированы или сам процесс не может быть запланирован, поэтому значение nice имеет диапазон.
Используйте верхнюю команду, чтобы изменить значение nice.
Напишите следующий код, чтобы проверить модификацию значения nice:
#include <stdio.h>
#include <unistd.h>
int main()
{
while(1)
{
printf(".");
fflush(stdout);
sleep(1);
}
return 0;
}
Запустите после успешной компиляции и откройте два дополнительных терминала, введите top
команду в один и введите ps -al
команду в другой:
Нажмите r в верхнем процессе:
В верхнем процессе введите идентификатор процесса, который нужно изменить на хороший:
Введите приятное значение, которое нужно изменить:
Используйте ps -al
команду для просмотра:
Поскольку начальное значение равно 80, а хорошее значение равно 10, окончательный PRI равен 90.