HardwareTutoriales

Reset: ¿Por qué arregla muchos de los problemas de tu PC?

El reset es uno de los recursos más socorridos cuando algo no va bien en un ordenador. Parece mano de santo, solucionando muchos problemas. De hecho, se han hecho multitud de memes y chistes al respecto. Pero, desafortunadamente, no muchos usuarios saben bien qué ocurre cuando aprietan el botón de reset en sus equipos (PC de sobremesa, portátil, dispositivos móviles,…). ¿Quieres descubrirlo?

¿Qué es un reset o reinicio?

Un reinicio, o reboot, es el procedimiento mediante el cual se restablece un sistema informático en funcionamiento, ya sea de manera intencional o accidental. Los reinicios pueden ser realizados en diferentes formas:

  • Cold reboot o Reinicio en frío: también conocido como reinicio completo, es aquel en el cual se apaga físicamente la alimentación del sistema y se vuelve a encender, lo cual implica un inicio inicial de la máquina. Es decir, se comienza desde la máquina sin energía, hasta el arranque del sistema operativo. En un IBM PC, esto implica también pasar por la prueba P.O.S.T., cargar el gestor de arranque, y que éste cargue el kernel del sistema operativo en la memoria para que pueda arrancar.
  • Hot reboot o Reinicio en caliente: implica reiniciar el sistema mientras aún está encendido. En este caso, no se realiza el P.O.S.T. del BIOS/UEFI.

Fuera del ámbito del PC, puede haber máquinas o arquitecturas que hacen cosas muy parecidas al PC. En cambio, otras podrían tener otros tipos de inicios o realizarlos de otra forma diferente, por ejemplo en aquellos equipos que no cuentan con BIOS/UEFI, como la Raspberry Pi, etc.

También te puede interesar conocer las partes de una placa base y sus funciones

Un poco de historia

IBM 1401 RESET

El IBM 1401 se considera el primer ordenador completo de la historia, el precursor de la informática actual. No tenía sistema operativo, y muy poca memoria, pero sí que integraba algunas soluciones interesantes.

Recuerda que en los sistemas que utilizaban tarjetas, arranque del ordenador se realizaba mediante la acción de presionar un botón de inicio y que desencadenaba una ejecución única, que era leer la tarjeta perforada donde se contenía el programa base. Esta primera tarjeta luego instruía a la máquina a leer más tarjetas que cargaban finalmente un programa de usuario. Apretando este botón se podía iniciar o reiniciar el sistema IBM.

Este proceso de arranque se conoció como bootstrap, abreviado como boot, y proviene de la frase en inglés «to pull oneself up by one’s bootstraps» (levantarse por medios propios). Y de ahí la palabra también conocida hoy como reboot o reinicio.

También te puede interesar conocer la historia de los sistemas operativos DOS

Con la llegada de los IBM PC, se comenzó a delimitar lo que era un reinicio en frío y en caliente, y se comenzaron a implementar los sistemas donde se separaba el botón de arranque o encendido y el botón de reset, aunque en los portátiles y otros equipos ahora se haya vuelto a fusionar…

Tipos de reset

Antes he comentado sobre los tipos de reset según desde el estado en el que se encuentra el sistema, si está apagado o está encendido en el momento del reset o arranque. Pero, más allá del reinicio caliente y frío, también se puede diferenciar entre dos tipos de reset que son:

Hard reset

hard reset
Fuente: Researchgate

El hard reset, o reinicio por hardware, es aquel que se realiza usando el botón físico de reseteo del equipo, y no mediante software. Esto implica que el reinicio se hace de forma abrupta y forzada, sin tener en cuenta si había algún proceso en marcha, si los buffers habían escrito los datos en la unidad de disco, etc. Por tanto, no es recomendable a no ser que ningún otro método funcione para que el ordenador responda, ya que puede generar problemas como la corrupción de archivos.

Es decir, el hard reset es un apagado físico, mediante una señal eléctrica enviada a la placa base a través del botón de reset. Esta señal interrumpe el suministro de energía de manera inmediata, apaga el equipo y se vuelve a encender, es decir, sería como un reinicio en caliente, pero de forma física.

Además, es importante saber algo, y es que en los sistemas 80×86, como los actuales Intel o AMD, se emplea un pin de señal Reset en la CPU, y está conectado directamente con el circuito de reset de la placa base, como se aprecia en la imagen superior. Este circuito es simple, y su funcionamiento también, deteniendo la CPU cuando el pin está en HIGH (1).

Cuando la máquina se resetea, la CPU vuelve a unos valores conocidos, y esto pasa por restablecer los registros y borrar toda la información almacenada en los registros de la CPU que había antes, para devolverlos a valores conocidos y comenzar de cero. Estos valores son:

  • CS = 0xFFFF
  • DS = 0x0000
  • ES = 0x0000
  • SS = 0x0000
  • IP = 0x0000

Como sabes, la CPU usa los valores de los registros CS e IP para encontrar la dirección de la próxima instrucción a ejecutar. La ubicación de la siguiente instrucción se calcula usando esta simple ecuación:

Siguiente instrucción = (CS<<4) + (IP) = 0xFFFF0

En la palabra de la memoria principal 0xFFFF0 es donde se encuentra una instrucción JMP de salto que redirige a la CPU para que ejecute el código de inicialización del firmware (BIOS/UEFI) y comience el arranque. De no iniciar con estos valores conocidos, podría saltar a cualquier otra dirección, y generar errores.

A esta dirección es a lo que se conoce como reset vector o vector de reinicio. Es decir, la primera ubicación de memoria que ejecutará la CPU después de ser reiniciada. Anteriormente he puesto el ejemplo de los x86, pero no en todas las arquitecturas es igual, por ejemplo:

  • ARM: usan la dirección 0xFFFF0000.
  • MIPS: se emplea una dirección virtual que es la 0xBFC00000 que está en los últimos 4 MB de la memoria.
  • PowerPC / POWER ISA: emplea un vector de reinicio en la dirección 0x00000100 para procesadores de 32 bits y 0x0000000000000100 para procesadores de 64 bits.
  • SPARC: hasta la SPARCv8 se empleó la dirección 0x00000000, mientras que en SPARCv9 se utiliza la dirección de memoria 0x20 como vector de reset. Además, también se han agregado otros vectores como el 0x40 para reinicio watchdog, 0x60 para el inicio externo y 0x80 para el reinicio por software.

Otras arquitecturas también pueden usar diferentes direcciones para comenzar a ejecutar, pero estas son las más populares, para que puedas ver variedad además de la x86 clásica.

No hay que confundir esto con el hard reset y el soft reset de los dispositivos móviles con Android o iOS/iPadOS, ya que no son términos equivalentes exactamente. Como sabrás, cuando se habla de soft reset en un dispositivo móvil, sí que nos referimos a lo mismo que explico aquí, mientras que con hard reset en estos dispositivos nos estamos refiriendo en muchos casos a restablecer el móvil a como venía de fábrica…

Reinicio por software

Reinicio windows

Por otro lado, el término soft reset, se emplea para describir el reinicio que se realiza a través del sistema operativo, ya sea Windows, tipo Unix, o cualquier otro. En este caso, no se usa ningún botón físico, sino que se puede hacer desde la GUI o desde la CLI del sistema, es decir, mediante un botón gráfico o mediante algún comando.

En este caso, sí que se tienen en cuenta los procesos que hay en marcha, que serán parados. El buffer de escritura se vaciará para escribir todos los datos y evitar corrupción, y todas las operaciones de E/S pendientes finalizarán correctamente antes de reiniciar. Por eso puede tardar algo más, pero es más seguro, ya que se evitan daños o corrupción de datos.

Sin embargo, no siempre funciona, ya que puede darse el caso en el que tengas el sistema operativo totalmente bloqueado y no puedas acceder al menú o al comando para el reset. En estos casos no queda más remedio que hacerlo de forma física…

Es decir, el soft reset se utiliza como un reinicio estándar para solucionar problemas menores, refrescar el sistema operativo, aplicar cambios de configuración o restablecer el rendimiento normal de la computadora sin causar daños ni pérdida de datos.

Ahora ya conoces algo más, no olvides comentar…

Isaac

Geek de los sistemas electrónicos, especialmente del hardware informático. Con alma de escritor y pasión por compartir todo el conocimiento sobre tecnología.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba