[Linux] Parámetros de la línea de comando y prioridad del proceso

[Linux] Parámetros de la línea de comando y prioridad del proceso

Parámetros de línea de comando

El concepto de parámetros de línea de comando.

Los parámetros de la línea de comando se refieren a los parámetros ingresados ​​en la línea de comando al ejecutar un programa.

Recibir parámetros de función de comando

La función principal en lenguaje C tiene dos parámetros para recibir parámetros de línea de comando, a saber, argc y argv. Incluso si los parámetros de la función principal no se indican explícitamente, el compilador agregará y recibirá automáticamente los parámetros durante la compilación, pero no serán indicado explícitamente No se puede utilizar el parámetro:

int main(int argc, char *argv[]);

Al ejecutar el programa, debe ingresar parámetros en la línea de comando. La esencia de los parámetros es una cadena. Se separarán por espacios antes de pasarse a la función principal y luego se pasarán por separado. El parámetro argc registra el número de parámetros pasados ​​y el parámetro argv registra la dirección de cada parámetro:

imagen-20230825134110559

Escribir código de verificación

Escriba el siguiente código para verificar que la función principal acepte parámetros de línea de comando:

#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;
}

Prueba después de una compilación exitosa:

imagen-20230825134818559

Suplemento: Es precisamente porque la función principal puede recibir parámetros de línea de comando que se realiza la función de agregar opciones cuando se usan instrucciones de Linux.

proceso prioritario

El concepto de prioridad del proceso.

La prioridad de un proceso se refiere al orden en que se asignan los recursos de la CPU. Los procesos con mayor prioridad tienen derechos de ejecución prioritarios.

El motivo de la aparición de la prioridad de proceso: hay muchos procesos del sistema, pero solo hay una pequeña cantidad de recursos de CPU, o incluso uno, por lo que existe competencia entre procesos. Para completar las tareas de manera eficiente y competir por los recursos relacionados de manera más razonable, se da prioridad.

PRI y NI

Ingrese los parámetros para ver el proceso del sistema en el sistema Linux ps -l:

imagen-20230825140845597

Entre los muchos datos, los dos parámetros relacionados con la prioridad son PRI y NI.

  • PRI: representa la prioridad con la que se puede ejecutar este proceso, cuanto menor sea el valor, antes se ejecutará.

  • NI: representa el valor agradable de este proceso, que representa el valor modificado de la prioridad con la que se puede ejecutar el proceso.

PRI = valor de prioridad inicial + valor agradable.

El rango del valor nice es [-20,19). Si la prioridad de un determinado proceso es demasiado alta o demasiado baja, puede causar que otros procesos no puedan programarse o que él mismo no pueda programarse, por lo que el valor nice tiene un rango.

Utilice el comando superior para modificar el valor agradable

Escriba el siguiente código para probar la modificación del valor agradable:

#include <stdio.h>
#include <unistd.h>

int main()
{
    
    
  while(1)
  {
    
    
    printf(".");
    fflush(stdout);
    sleep(1);
  }
  return 0;
}

Ejecute después de una compilación exitosa y abra dos terminales adicionales, ingrese topel comando en una e ingrese ps -alel comando en la otra:

imagen-20230825143626926

Presione r en el proceso superior:

imagen-20230825143651375

En el proceso superior, ingrese el ID del proceso que se modificará a agradable:

imagen-20230825143732282

Ingrese el valor agradable a modificar:

imagen-20230825143825468

Utilice ps -alel comando para ver:

imagen-20230825143853689

Dado que el valor inicial es 80 y el valor agradable es 10, el PRI final es 90.

Supongo que te gusta

Origin blog.csdn.net/csdn_myhome/article/details/132509755
Recomendado
Clasificación