Cascarillas paralelas con xargs: utilice todos y cada uno de los núcleos de su únidad central de procesamiento en UNIX y Windows[

por calpee

Conchas paralelas con xargs Unix[
por Hables Fisher[

Introducción[

Una frustración especial con el shell de UNIX es la incapacidad de programar de forma fácil múltiples tareas simultáneas que utilizan completamente los núcleos de CPU presentados en los sistemas modernos. El ejemplo de enfoque en el presente artículo es la compresión de archivos, pero el inconveniente aparece con muchas tareas computacionalmente intensivas, como procesamiento de imágenes / audio / medios, descifrado de contraseñas y análisis de hash, extracción, transformación y carga de bases de datos y actividades de respaldo. Es comprensiblemente frustrante aguardar a que gzip * se ejecute en un solo núcleo de únidad central de procesamiento, al paso que la mayoría de la capacidad de procesamiento de una máquina permanece inactiva.[

Esto puede comprenderse como una debilidad de la primera década de Research UNIX que no se desarrolló en máquinas con SMP. El shell Bourne no brotó de la séptima edición con sintaxis nativa o controles para administrar de manera coherente el consumo de recursos de los procesos en background.[

Las empresas de servicios públicos han evolucionado al azar para realizar algunas de estas funcionalidades. La versión GNU de xargs es con la capacidad de ejercer cierto control primitivo en la asignación de procesos en segundo plano, que se examina con determinada extensión en la documentación. Si bien las extensiones GNU para xargs han proliferado en muchas otras implementaciones (en particular BusyBox, incluida la versión para Microsoft Windows, ejemplo a continuación), no son compatibles con POSIX.2 y probablemente no se encontrarán en UNIX comercial.[

Los individuos históricos de xargs lo recordarán como una herramienta útil para directorios que contenían demasiados ficheros para que se utilicen echo * u otros comodines; en esta situación, xargs lleva por nombre a grupos de ficheros por lotes reiteradamente con un solo comando. A medida que xargs ha evolucionado alén de POSIX, ha conseguido una exclusiva relevancia que es útil explorar.[


¿Por qué razón POSIX.2 es tan malo?[

Una entendimiento clara de la falta de una programación de trabajos coherente en UNIX requiere algo de historia de la evolución de estas utilidades.[

You may also like