Actualizado a: 19 de enero de 2024
El reset, o reseteo, como lo quieras llamar, es una acción rutinaria en los dispositivos informáticos. Gracias a él se pueden solucionar muchos problemas, o también hacer que se tomen algunos cambios en la configuración o actualizaciones. Existen incluso hasta chistes sobre ello. Pero… ¿realmente sabes qué es y cómo funciona? Aquí te lo vamos a explicar.
También te puede interesar:
- Cómo funciona una syscall
- Cómo funciona una fuente de alimentación
- Cómo se ejecuta un programa
- Cómo funciona una batería de litio
¿Qué es un reset?
Un reinicio, restablecimiento, o reset, limpia cualquier error o evento pendiente y devuelve el sistema a una condición normal o a un estado inicial, generalmente de forma controlada. Normalmente, se realiza como respuesta a una condición de error cuando es imposible o no deseable que una actividad de procesamiento continúe y todos los mecanismos de recuperación de errores fallan. Un programa de almacenamiento de ordenador realizaría normalmente un «reinicio» si un comando excede el tiempo límite y los esquemas de recuperación de errores, como reintentar o abortar, también fallan.
Para qué sirve un reset
Un reset es una función importante en diversos sistemas, especialmente en dispositivos electrónicos y ordenadores para:
- Limpiar errores y restablecer el funcionamiento: permite eliminar cualquier estado de error o comportamiento inesperado que pueda estar afectando el sistema. Al reiniciarlo, se restablecen todas las configuraciones y parámetros a sus valores predeterminados, lo que puede solucionar problemas temporales o errores del sistema.
- Solucionar bloqueos y fallos: cuando un dispositivo o sistema operativo se bloquea o deja de responder, un reset forzado puede ser una manera efectiva de reiniciar el sistema y devolverlo a un estado operativo normal.
- Iniciar desde un estado conocido: al encender un ordenador o dispositivo, el reinicio asegura que todos los componentes se inicialicen correctamente y que el sistema comience desde un estado conocido y predecible.
- Cargar actualizaciones y cambios en la configuración: algunas actualizaciones de software o cambios de configuración pueden requerir un reinicio para que surtan efecto. Al reiniciar, el sistema cargará las actualizaciones y ajustes necesarios.
- Liberar recursos: después de un uso prolongado, los sistemas pueden acumular caché y procesos en segundo plano que consumen recursos. Un reinicio libera estos recursos y puede mejorar el rendimiento general del sistema.
- Restablecer configuraciones de hardware: en algunos casos, cambios en la configuración del hardware pueden requerir un reinicio para que se apliquen adecuadamente.
¿Qué es el reset vector?
El vector de reinicio, o reset vector, es la ubicación predeterminada a la que una CPU accederá para encontrar la primera instrucción que ejecutará después de un reinicio. El vector de reinicio es un puntero o dirección donde la CPU siempre debe comenzar en cuanto pueda ejecutar instrucciones. La dirección se encuentra en una sección de memoria no volátil inicializada para contener instrucciones que inician la operación de la CPU, como el primer paso en el proceso de arranque del sistema que contiene la CPU.
Este vector no es igual en todas las familias de procesadores. Algunos vectores de reinicio para procesadores conocidos son:
- Familia x86:
- El vector de reinicio para el procesador Intel 8086 se encuentra en la dirección física FFFF0h (16 bytes por debajo de 1 MB). El valor del registro CS en el reinicio es FFFFh y el valor del registro IP en el reinicio es 0000h para formar la dirección segmentada FFFFh:0000h, que se asigna a la dirección física FFFF0h.
- El vector de reinicio para el procesador Intel 80286 se encuentra en la dirección física FFFFF0h (16 bytes por debajo de 16 MB). El valor del registro CS en el reinicio es F000h con la base del descriptor establecida en FF0000h y el valor del registro IP en el reinicio es FFF0h para formar la dirección segmentada FF000h:FFF0h, que se asigna a la dirección física FFFFF0h en modo real. Esto se cambió para permitir suficiente espacio para cambiar al modo protegido sin modificar el registro CS.
- El vector de reinicio para los procesadores Intel 80386 y posteriores de la familia x86 es la dirección física FFFFFFF0h (16 bytes por debajo de 4 GB). El valor de la porción de selector del registro CS en el reinicio es F000h, el valor de la porción de base del registro CS es FFFF0000h y el valor del registro IP en el reinicio es FFF0h para formar la dirección segmentada FFFF0000h:FFF0h, que se asigna a la dirección física FFFFFFF0h en modo real.
- Otras familias:
- El vector de reinicio para los procesadores ARM es la dirección 0x0 o 0xFFFF0000. Durante la ejecución normal, la RAM se remapea a esta ubicación para mejorar el rendimiento en comparación con la tabla de vectores basada originalmente en ROM.
- El vector de reinicio para los procesadores MIPS32 se encuentra en la dirección virtual 0xBFC00000, que está ubicada en los últimos 4 Mbytes de la región de memoria no caché KSEG1. El núcleo entra en modo de kernel tanto en el reinicio como cuando se reconoce una excepción, lo que le permite asignar la dirección virtual a una dirección física.
- El vector de reinicio para los procesadores PowerPC/Power ISA se encuentra en una dirección efectiva de 0x00000100 para procesadores de 32 bits y 0x0000000000000100 para procesadores de 64 bits.
- El vector de reinicio para los procesadores SPARC versión 8 se encuentra en la dirección 0x00000000; el vector de reinicio para los procesadores SPARC versión 9 se encuentra en una dirección de 0x20 para el reinicio de encendido, 0x40 para el reinicio del reloj de vigilancia, 0x60 para el reinicio iniciado externamente y 0x80 para el reinicio iniciado por software.
- El vector de reinicio para la familia de procesadores 68000 es 0x00000000 para el Registro de Pila de Interrupción Inicial (IISR; no es realmente un vector de reinicio y se utiliza para inicializar el puntero de pila después del reinicio) y 0x00000004 para el contador de programa inicial (reset).
- El vector de reinicio para la familia de procesadores 6502 es una dirección de 16 bits almacenada en 0xFFFC y 0xFFFD.
- El vector de reinicio para las familias de procesadores 6800 y 6809 es una dirección de 16 bits almacenada en 0xFFFE y 0xFFFF.
Además, también hay que destacar que existen algunas unidades MCU o microprocesadores que carecen de este tipo de vectores de reinicio, simplemente comienzan siempre la ejecución por una dirección específica, es el caso de:
- Para los procesadores Intel 8051 / 8080 / 8085 / y Zilog Z80, el reinicio comienza la ejecución de código en la dirección 0x0000.
- Para Atmel AVR, el reinicio comienza la ejecución de código en la dirección 0x0000; a menudo se coloca aquí una instrucción de salto relativo (RJMP) para saltar a la rutina de manejo de reinicio dentro de los primeros 4K de memoria.
- Para Microchip PIC, el reinicio comienza la ejecución de código en la dirección 0x0000.
¿Qué sucede en el sistema operativo al producir un reset?
Durante un reset en un sistema operativo, se llevan a cabo una serie de acciones para restablecer el estado del sistema y prepararlo para una nueva sesión de trabajo. Estas acciones pueden variar según el tipo de reinicio, ya sea un reinicio suave (software) o un reinicio forzado (hardware). Pero, por lo general, lo que sucede es:
- Cierre ordenado de procesos: el sistema operativo intenta cerrar todos los procesos y aplicaciones de manera ordenada. Envía señales de terminación a los programas en ejecución para que guarden su estado y datos antes de cerrarse.
- Liberación de recursos: durante el proceso de cierre, el sistema operativo libera los recursos utilizados por los procesos, como memoria, archivos y dispositivos, para que estén disponibles para otros procesos o para el próximo inicio del sistema.
- Guardado de configuraciones y datos: algunas configuraciones y datos importantes pueden guardarse en archivos de configuración para que estén disponibles en el próximo inicio del sistema.
- Actualización del sistema: si hay actualizaciones pendientes para el sistema operativo o para programas específicos, el reinicio puede activar la instalación de estas actualizaciones antes de completar el proceso de reinicio.
- Cierre del kernel: en el caso de un reinicio suave, el kernel (núcleo del sistema operativo) se cierra y se prepara para cargarse nuevamente en la próxima secuencia de inicio.
- Control de hardware: durante el proceso de reinicio, el sistema operativo envía señales y comandos al hardware para que se apague y se prepare para el próximo inicio. Esto puede incluir la desactivación y reinicialización de dispositivos.
- Borrado de caché y buffers: antes de apagar completamente el sistema, el sistema operativo suele borrar la caché y los buffers para asegurarse de que los datos se han escrito correctamente en los dispositivos de almacenamiento y para evitar problemas de corrupción de datos.
- Inicio del sistema: una vez que todas las tareas de cierre y preparación se han completado, el sistema operativo se reinicia. El sistema inicia el proceso de inicio, donde se cargan el kernel y otros componentes esenciales en la memoria, y luego se carga el gestor de arranque (bootloader) para iniciar el sistema desde el disco o la partición adecuada.
¿Qué sucede en el hardware al producir un reset?
Durante un reset el hardware del sistema experimenta una secuencia específica de eventos para apagar y luego encender los componentes necesarios para restablecer el estado del sistema. El comportamiento del hardware durante un reinicio puede variar según el tipo de reinicio y la arquitectura del sistema, pero en general, se llevan a cabo las siguientes acciones:
- Apagado temporal de componentes: el hardware recibe una señal para apagar temporalmente ciertos componentes que no son necesarios durante el proceso de reinicio. Esto incluye detener la ejecución de la CPU y suspender el acceso a dispositivos periféricos no esenciales.
- Limpieza de estados: al recibir la señal de reinicio, el hardware realiza una limpieza interna para restablecer varios registros y estados a valores predeterminados. Esto asegura que el sistema comience desde un estado conocido y consistente.
- Reinicialización de la CPU: la CPU recibe una señal de reinicio que lo obliga a suspender cualquier operación en curso y a reiniciar su ejecución. Al hacerlo, la CPU se prepara para comenzar a ejecutar el primer programa o instrucción desde la dirección de reinicio específica, que suele ser el vector de reinicio mencionado en el texto original. Además, se limpiarán todos los registros y se pondrán en estados conocidos.
- Borrado de la memoria caché: para garantizar que los datos sean coherentes y no haya corrupción de información, algunos sistemas pueden borrar la memoria caché antes de reiniciar. Esto asegura que no se acceda a datos obsoletos o inválidos una vez que el sistema se reinicie.
- Reinicio de dispositivos: algunos componentes o dispositivos pueden necesitar reiniciarse para restablecer su estado interno y prepararlos para una nueva sesión de trabajo. Esto puede incluir dispositivos de almacenamiento, controladores de red y otros dispositivos esenciales para el funcionamiento del sistema.
- Comprobación de errores: durante el proceso de reinicio, el hardware realiza una comprobación rápida de errores básicos (véase P.O.S.T.) para asegurarse de que no haya problemas graves que puedan afectar el arranque del sistema. Si se detectan errores graves, el sistema puede intentar recuperarse o mostrar mensajes de error para informar al usuario.
- Inicia el proceso de arranque: aquí comienza el inicio nuevamente, con todo lo que ello implica, como la ejecución del firmware de arranque, la búsqueda de un sistema operativo en una unidad de almacenamiento, la cargar del kernel en la memoria RAM, etc. Puedes ver en enlace sobre el proceso de inicio que dejé anteriormente para más información…
Tipos de reset
Existen varios tipos de reset que deberías conocer, ya que pueden cambiar la forma en la que se procede en cada uno de ellos, tanto a nivel de hardware como a nivel del sistema operativo:
Hard reset o reinicio de hardware
Un reinicio de hardware de un sistema es una operación de hardware que vuelve a inicializar los componentes principales del hardware del sistema, finalizando así todas las operaciones de software en curso en el sistema. Esto suele ir seguido, pero no siempre, del arranque del sistema en el firmware que re-inicializa el resto del sistema y reinicia el sistema operativo.
Los reinicios de hardware son una parte esencial del proceso de encendido, pero también pueden ser activados sin apagar completamente el sistema mediante la intervención directa del usuario a través de un botón de reinicio físico, temporizadores de vigilancia o mediante intervención de software que, como última acción, activa la línea de reinicio de hardware (por ejemplo, en caso de un error fatal que provoque un bloqueo del ordenador).
Los reinicios forzados iniciados por el usuario pueden utilizarse para reiniciar el dispositivo si el software se bloquea o no responde de otra manera. Sin embargo, puede ocurrir que los datos se corrompan si esto sucede. Es decir, no se terminan los procesos, no se guardan las configuraciones, y no se escribe todo lo que había en los buffers de forma segura…
Soft reset o reinicio por software
Un soft reset es un reinicio controlado del sistema operativo o del dispositivo mediante software. Es una acción más suave y menos drástica en comparación con un hard reset.
Al realizar un soft reset, se cierran y reinician los procesos en curso de forma ordenada. La idea es restablecer el sistema sin afectar físicamente el hardware, lo que permite que el sistema operativo se reanude desde un estado conocido y funcional. Además, se comprobarán y ejecutarán otras acciones, como las de guardar la configuración, escribir todos los datos que estuviesen aún por escribir en el buffer, etc. Por tanto, no te arriesgas a problemas como la corrupción de datos.
Se utiliza para resolver problemas menores, como bloqueos temporales, aplicaciones que no responden o comportamientos inesperados del sistema. También es útil cuando se necesitan aplicar cambios en la configuración que requieren un reinicio para que surtan efecto.
Botón reset
Generalmente, un reinicio se inicia al presionar un botón de reinicio dedicado o al mantener presionada una combinación de botones en algunos dispositivos móviles. Algunos dispositivos pueden no tener un botón de reinicio dedicado, pero el usuario puede mantener presionado el botón de encendido para cortar la alimentación, y luego el usuario puede volver a encender el ordenador. En un router, por ejemplo, que también se puede considerar un ordenador dedicado a la gestión de redes, también existen formas de reiniciar, como la de introducir una punta fina en un orificio que suelen tener o apretar el botón reset dedicado que algunos modelos traen. En otros sistemas podría variar respecto a esto, pero siempre se suele tener algún método de reiniciar.
Diferencias con un reinicio (reboot)
Reboot se refiere al proceso de apagar y encender completamente un dispositivo o sistema informático para reiniciar su funcionamiento. No obstante, muchas veces se usa como sinónimo de reinicio.
Tipos de reboot
Existen varios tipos de reboot o arranque, y tienen diferencias significativas en cuanto a la forma en que se llevan a cabo y el impacto en el sistema:
- Cold Reboot (inicio en frio): es un inicio completo, partiendo desde un equipo que está completamente apagado. Para ello, se restablece la energía para iniciar nuevamente el sistema desde cero. Se emplea para encender los equipos informáticos o dispositivos electrónicos.
- Warm Reboot (inicio en caliente): es un inicio controlado del sistema operativo o del dispositivo mediante software, sin apagar completamente el dispositivo. Es decir, esta vez se parte de un sistema que ya estaba encendido. Durante un warm reboot, el sistema operativo cierra y reinicia todos los procesos y servicios de manera ordenada. No se corta la alimentación eléctrica, y el dispositivo sigue encendido durante todo el proceso. Al realizar un warm reboot, el sistema se restablece desde un estado conocido y funcional. Los cambios en la configuración que requieran un reinicio para surtir efecto se aplican en este tipo de reinicio.
¿Qué es un watchdog timer?
Un watchdog timer (o simplemente un watchdog), a veces llamado un computer operating properly timer (COP timer), es un temporizador electrónico o de software que se utiliza para detectar y recuperarse de fallas en la computadora. Los watchdog timers son ampliamente utilizados en ordenadores empotrados para facilitar la recuperación automática de fallos temporales de hardware y para evitar que software erróneo o malicioso interrumpa la operación del sistema.
Durante la operación normal, el ordenador reinicia regularmente el watchdog timer para evitar que se agote o «se acabe el tiempo«. Si, debido a una falla de hardware o un error en el programa, ordenador no logra reiniciar el watchdog timer, este expirará y generará una señal de tiempo agotado. La señal de tiempo agotado se utiliza para iniciar acciones correctivas. Las acciones correctivas suelen incluir el reset.
Los microcontroladores o MCUs a menudo incluyen un watchdog timer integrado en el chip.
¿Qué es el power cycling?
El «power cycling» es el acto de apagar y luego encender nuevamente un equipo, generalmente un ordenador. Los motivos para realizar un «power cycling» incluyen reinicializar el conjunto de parámetros de configuración de un dispositivo electrónico o recuperarlo de un estado no receptivo en funciones críticas para su funcionamiento, como en situaciones de bloqueo o congelamiento.
El «power cycling» también puede utilizarse para restablecer la actividad de red dentro de un módem o router. Además, puede ser uno de los primeros pasos para solucionar un problema. Ten en cuenta que algunos routers de los proveedores de Internet vienen con una configuración preestablecida que si los reinicias pueden perder, y para evitar eso, es mejor usar el botón de apagado y encendido para realizar un power cycling completo y evitar que la configuración se pierda, pero solucionando al mismo tiempo los problemas que el router pudiese tener…
Excelente artículo!..Por estos días mi placa de Video (dedicada) solo arranca luego de reiniciar el Sistema.Me resulta misterioso..
Gracias por este contenido..!