agradable (Unix)

Utilidad informática para sistemas operativos tipo Unix
lindo
Desarrollador(es)Laboratorios Bell de AT&T
Lanzamiento inicialNoviembre de 1973 ; hace 51 años ( 1973-11 )
Sistema operativoUnix y similares
PlataformaMultiplataforma
TipoDominio
Licenciacoreutils : GNU GPL v3 4.4BSD : Licencia BSD

nicees un programa que se encuentra en sistemas operativos Unix y similares a Unix , como Linux . Se asigna directamente a una llamada del núcleo del mismo nombre. se utiliza para invocar una utilidad o un script de shell con una prioridad de CPU particular , lo que le otorga al proceso más o menos tiempo de CPU que a otros procesos. Un nivel de amabilidad de -20 es el nivel de amabilidad más bajo o la prioridad más alta. El nivel de amabilidad predeterminado para los procesos se hereda de su proceso padre y, por lo general, es 0. nice

Los sistemas han divergido en cuanto a qué prioridad es la más baja. Los sistemas Linux documentan una prioridad de 19 como la más baja, [1] los sistemas BSD documentan 20 como la más baja. [2] En ambos casos, la prioridad "más baja" está documentada como la que se ejecuta solo cuando nada más quiere hacerlo.

Etimología

El valor de amabilidad es un número asociado a los procesos en los sistemas *nix, que es utilizado junto con otros datos (como la cantidad de E/S realizada por cada proceso) por el programador de procesos del núcleo para calcular la "prioridad real" de un proceso, que se utiliza para decidir cuánto tiempo de CPU se le asigna.

El nombre del programa, nice , es una alusión a su tarea de modificar el valor de amabilidad de un proceso.

El término amabilidad en sí se origina de la idea de que un proceso con un valor de amabilidad más alto es más agradable con otros procesos en el sistema y con los usuarios en virtud de que exige menos potencia de CPU, liberando tiempo de procesamiento y potencia para los programas más exigentes, que en este caso serían menos agradables con el sistema desde una perspectiva de uso de CPU. [3]

Uso y efecto

niceResulta útil cuando varios procesos demandan más recursos de los que la CPU puede proporcionar. En este estado, un proceso con mayor prioridad obtendrá una mayor porción del tiempo de CPU que un proceso con menor prioridad. Solo el superusuario (root) puede establecer el valor niceness en un valor menor (es decir, una prioridad más alta). En Linux, es posible cambiar /etc/security/limits.confpara permitir que otros usuarios o grupos establezcan valores nice bajos. [4]

Si un usuario quisiera comprimir un archivo grande sin ralentizar otros procesos, podría ejecutar lo siguiente:

$ nice  -n 19 tar cvzf archive.tgz archivo grande     

El efecto matemático exacto de establecer un valor de amabilidad particular para un proceso depende de los detalles de cómo se diseña el planificador en esa implementación de Unix. El planificador de un sistema operativo particular también tendrá varias heurísticas incorporadas (por ejemplo, para favorecer los procesos que están principalmente limitados por E/S sobre los procesos que están limitados por la CPU). Como ejemplo simple, cuando dos procesos limitados por la CPU que de otra manera serían idénticos se ejecutan simultáneamente en un sistema Linux de una sola CPU, la porción del tiempo de CPU de cada uno será proporcional a 20 − p , donde p es la prioridad del proceso. Por lo tanto, un proceso, ejecutado con nice +15, recibirá el 25% del tiempo de CPU asignado a un proceso de prioridad normal: (20 − 15)/(20 − 0) = 0,25. [5] En el planificador BSD 4.x, por otro lado, la proporción en el mismo ejemplo es de aproximadamente diez a uno. [ cita requerida ]

Comandos similares

El programa relacionado renicese puede utilizar para cambiar la prioridad de un proceso que ya se está ejecutando. [1]

Linux también tiene un ioniceprograma que afecta la programación de E/S en lugar del tiempo de CPU. [6]

Véase también

  • matar
  • PD
  • arriba
  • ionice de util-linux (consulte el manual para conocer las prioridades de E/S de almacenamiento en disco)

Referencias

  1. ^ ab renice(1) –  Manual de comandos generales de Linux
  2. ^ "renice(8) - Páginas del manual de NetBSD". NetBSD . 22 de octubre de 2020 . Consultado el 18 de abril de 2023 .
  3. ^ Jerry Peek, Shelley Powers, Tim O'Reilly y Mike Loukides (2002). Herramientas potentes para Unix . O'Reilly, pág. 507.
  4. ^ limits.conf(5)  –  Manual de formatos de archivos de Linux
  5. ^ Silberschatz, Abraham; Galvin, Peter B.; Gagne, Greg (2013). Conceptos de sistemas operativos (novena edición). Hoboken, NJ: Wiley. p. 294. ISBN 978-1-118-06333-0.
  6. ^ ionice(1)  –  Manual de comandos generales de Linux
Obtenido de "https://es.wikipedia.org/w/index.php?title=Nice_(Unix)&oldid=1255182572"