time(7) Miscellaneous Information Manual time(7) NOMBRE time - vision general del tiempo y los temporizadores DESCRIPCION Tiempo real y tiempo de proceso El Tempo real se define como el tiempo medido desde algun punto fijo, ya sea desde un punto estandar en el pasado (vease la descripcion del Inicio (Epoch) y el tiempo del calendario a continuacion), o desde algun momento (por ejemplo, el comienzo) en la vida de un proceso (tiempo transcurrido). Tempo de proceso se define como la cantidad de tiempo de CPU utilizado por un proceso. Esto a veces se divide en dos componentes: usuario y sistema. El tiempo de CPU del usuario es el tiempo que se gasta ejecutando codigo en modo de usuario. El tiempo de CPU del sistema es el tiempo que el nucleo esta ejecutando en modo sistema en nombre del proceso , por ejemplo ejecutando llamadas del sistema. Puede emplearse la orden time(1) para determinar la cantidad de tiempo de CPU consumido durante la ejecucion de un programa. Un programa puede determinar la cantidad de tiempo de CPU que ha consumido usando times(2), getrusage(2) o clock(3). El reloj de hardware La mayoria de los equipos tienen un reloj de hardware (alimentado por bateria) que el nucleo lee durante el inicio para iniciar el reloj del software. Para mas informacion, consulte rtc(4) y hwclock(8). El reloj de software, HZ, y jiffies La exactitud de muchas llamadas del sistema que establecen los intervalos de tiempo, (por ejemplo, select(2) o sigtimakawit(2)) y miden el tiempo de la CPU (por ej., getrusage(2)), esta limitada por la resolucion del reloj de software gestionado por el nucleo que mide el tiempo en jiffies. El tamano de un jiffy se determina por el valor de la constante del nucleo HZ. El valor de HZ varia entre las versiones del kernel y las arquitecturas de hardware. Por ejemplo, en i386: en los nucleos a partir de Linux 2.4.x, HZ tenia un valor de 100, dando un valor jiffy de 0.01 segundos; a partir de Linux 2.6.0, el HZ se elevo a 1000, dando un jiffie de 0.001 segundos. Desde Linux 2.6.13, el valor HZ es un parametro configurable del nucleo que puede valer 100, 250 (el predeterminado) o 1000, dando un valor de jiffies de, respectivamente, 0.01, 0.004, y 0.001 segundos. Desde Linux 2.6.20, tambien puede configurarse a 300, un numero que se divide uniformemente para las tasas de cuadro de video comunes (PAL, 25 Hz; NTSC, 30 Hz). La llamada de sistema times(2) es un caso especial. Proporciona tiempos con una granularidad definida por la constante de nucleo USER_HZ. Las aplicaciones de espacio de usuario pueden determinar el valor de esta constante mediante sysconf(_SC_CLK_TCK). Relojes de sistema y de proceso; espacios de nombres de tiempo El nucleo incluye soporte para una gama de relojes que miden varios tipos de tiempo transcurrido y virtual (es decir, CPU consumido). Estos relojes se describen en clock_gettime(2), algunos de los cuales son ajustables mediante clock_settime(2). Los valores de ciertos relojes son virtualizados por espacios de nombres de tiempo; vease time_namespaces(7). Temporizadores de alta resolucion Antes de Linux 2.6.21, la precision de las llamadas de temporizador y de las pausas de las llamadas del sistema (vease a continuacion) tambien estaba limitada por el tamano del jiffy. Desde la version de 2.6.21, Linux admite temporizadores de alta resolucion (HRTs), configurables a traves de CONFIG_HIGH_RES_TIMERS. En un sistema que soporta HRTs, la precision de las pausas de las llamadas del sistema y temporizador ya no estan restringida por el jiffy, sino que puede ser tan precisa como el hardware permita que, en equipos modernos, es habitual ver precisiones de microsegundos. Puede comprobarse que los temporizadores de alta resolucion son compatibles viendo la resolucion devuelta por una llamada a clock_getres(2) o mirando las entradas 'resolution' en /proc/timer_list. Los HRT no son compatibles en todas las arquitecturas de hardware. Existe soporte, ente otros, para x86, ARM y PowerPC. El Inicio (Epoch) Los sistemas UNIX representan el tiempo en segundos desde el Inicio (Epoch) 1970-01-01 00:00:00 +0000 (UTC). Un programa puede determinar tiempo de calendario a traves del reloj clock_gettime(2) CLOCK_REALTIME, que muestra el tiempo (en segundos y nanosegundos) que han transcurrido desde el Inicio (Epoch); time(2) proporciona informacion similar, pero redondeada al segundo mas proximo. El tiempo del sistema se puede cambiar mediante clock_settime(2). Tiempo desglosado Algunas funciones de la biblioteca usan una estructura de tipo tm para representar tiempo desglosado, que almacena el valor de tiempo separado en componentes distintos (ano, mes, dia, hora, minuto, segundo...). Esta estructura se describe en tm(3type), donde tambien se describen funciones que convierten el tiempo de calendario al un tiempo desglosado y viceversa. Las funciones para la conversion entre el desglosado y las representaciones impresa de la cadena del tiempo se describen en ctime(3), strftime(3) y strptime(3). Pausas y ajuste de los temporizadores Varias llamadas y funciones del sistema permiten que un programa se pause (suspenda su ejecucion) durante un periodo de tiempo definido. Consulte nanosleep(2), clock_nanosneep(2) y sleep (3). Varias llamadas del sistema permiten que un proceso establezca un temporizador que expira en algun momento del futuro, tambien a intervalos repetidos. Consulte alarm(2), getitimer(2), timerfd_create(2) y timer_creat.(2). Hibernacion del temporizador A partir de Linux 2.6.28, es posible controlar el 'tiempo de hibernacion del temporizador' para un determinado hilo. El tiempo de hibernacion es el tiempo por el que el nucleo puede retrasar el 'despertado' de ciertas llamadas del sistema que bloquean con un tiempo de espera. Estas hibernaciones permiten al nucleo unificar eventos de 'despertado', reduciendo asi el numero de activaciones del sistema y ahorrando energia. Consulte la descripcion de PR_SET_TIMERSLACK en prctl(2). VEASE TAMBIEN date(1), time(1), timeout(1), adjtimex(2), alarm(2), clock_gettime(2), clock_nanosleep(2), getitimer(2), getrlimit(2), getrusage(2), gettimeofday(2), nanosleep(2), stat(2), time(2), timer_create(2), timerfd_create(2), times(2), utime(2), adjtime(3), clock(3), clock_getcpuclockid(3), ctime(3), ntp_adjtime(3), ntp_gettime(3), pthread_getcpuclockid(3), sleep(3), strftime(3), strptime(3), timeradd(3), usleep(3), rtc(4), time_namespaces(7), hwclock(8) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Marcos Fouces Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Paginas de Manual de Linux 6.8 2 Mayo 2024 time(7)