stringtranslate.com

agradable (Unix)

nicees un programa que se encuentra en Unix y sistemas operativos similares a Unix, como Linux . Se asigna directamente a una llamada al kernel del mismo nombre. se utiliza para invocar una utilidad o script de shell con una prioridad de CPU particular , dando así al proceso más o menos tiempo de CPU que otros procesos. Una amabilidad de -20 es la amabilidad más baja o la prioridad más alta. La amabilidad predeterminada para los procesos se hereda de su proceso principal y suele ser 0. nice

Los sistemas han divergido sobre cuál es la prioridad más baja. Los sistemas Linux registran una bondad de 19 como la prioridad más baja, [1] los sistemas BSD registran 20 como la prioridad más baja. [2] En ambos casos, se documenta que la prioridad "más baja" se ejecuta sólo cuando nada más quiere hacerlo.

Etimología

El valor de amabilidad es un número adjunto a los procesos en sistemas *nix, que el programador de procesos del núcleo utiliza junto con otros datos (como la cantidad de E/S realizada por cada proceso) para calcular la "prioridad verdadera" 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 para otros procesos en el sistema y para los usuarios en virtud de que exige menos potencia de CPU, liberando tiempo de procesamiento y energía para los programas más exigentes, que en realidad lo harían. Este caso será menos agradable para el sistema desde la perspectiva del uso de la CPU. [3]

Uso y efecto

niceResulta útil cuando varios procesos exigen más recursos de los que la CPU puede proporcionar. En este estado, un proceso de mayor prioridad obtendrá una mayor cantidad de tiempo de CPU que un proceso de menor prioridad. Sólo el superusuario (root) puede establecer la amabilidad en un valor más bajo (es decir, una prioridad más alta). En Linux es posible cambiar /etc/security/limits.confpara permitir que otros usuarios o grupos establezcan valores agradables 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 particular de amabilidad para un proceso depende de los detalles de cómo está diseñado el programador en esa implementación de Unix. El programador de un sistema operativo en particular también tendrá varias heurísticas incorporadas (por ejemplo, para favorecer los procesos que están principalmente vinculados a E/S sobre los procesos que están vinculados a la CPU). Como ejemplo simple, cuando dos procesos vinculados a la CPU, por lo demás idénticos, se ejecutan simultáneamente en un sistema Linux de una sola CPU, la participación de cada uno en el tiempo de CPU 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 programador BSD 4.x, por otro lado, la proporción en el mismo ejemplo es aproximadamente diez a uno. [ cita necesaria ]

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]

Ver también

Referencias

  1. ^ ab renice(1) -  Manual de comandos generales de Linux
  2. ^ "renice(8) - Páginas de 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 eléctricas Unix . O'Reilly, pág. 507.
  4. ^ limits.conf(5)  -  Manual de formatos de archivos de Linux
  5. ^ Universidad, Abraham Silberschatz, Universidad de Yale, Peter Baer Galvin, Pluribus Networks, Greg Gagne, Westminster; Baer Galvin, Peter; Gagne, Greg (2013). Conceptos de sistemas operativos (Novena ed.). Hoboken, Nueva Jersey: Wiley. pag. 294.ISBN 978-1-118-06333-0.{{cite book}}: Mantenimiento CS1: varios nombres: lista de autores ( enlace )
  6. ^ ionice(1)  –  Manual de comandos generales de Linux

enlaces externos