Вы находитесь на странице: 1из 16

ARRANQUE EN CALIENTE:

cargador de arranque
procesador central de un ordenador sólo puede ejecutar el código del programa en la
memoria de sólo lectura (ROM) y memoria de acceso aleatorio (RAM). Los modernos
sistemas operativos y el código de programa de aplicación y los datos se almacenan en
dispositivos de almacenamiento no volátil de datos, como discos duros , CD , DVD ,
unidad flash USB y disquetes . Cuando un equipo se enciende por primera vez, no tiene
un sistema operativo en la memoria ROM o RAM. El equipo inicialmente debe ejecutar
un pequeño programa almacenado en la memoria ROM junto con la cantidad mínima de
datos necesarios para acceder a los dispositivos no volátil de la que el sistema operativo
y los datos de los programas se cargan en la memoria RAM.

El pequeño programa que se inicia esta secuencia de carga en la RAM, es conocido


como un cargador de inicio , de arranque o el gestor de arranque. Este programa
único trabajo del gestor de arranque pequeño es cargar los datos de otros programas y
que luego se ejecuta desde la RAM. A menudo, en fase de arranque se utilizan varios
cargadores, durante el cual varios programas de complejidad creciente carga
secuencialmente uno después del otro en un proceso de carga encadenada .

Las primeras computadoras (como el PDP-1 a través del PDP-8 y los primeros modelos
de la PDP-11 ) había una fila de interruptores de palanca en el panel frontal para
permitir al operador que introduzca manualmente los binarios instrucciones de arranque
en la memoria antes de transferir el control a la CPU . El gestor de arranque quedaría
redactado tanto en la etapa del gestor de arranque de sesiones (llamados binarios
cargador de cinta de papel con suma de comprobación ), o el sistema operativo desde
un medio de almacenamiento externos, como la cinta de papel , tarjetas perforadas , o
una unidad de disco .

Pseudo - código ensamblador para el gestor de arranque puede ser tan simple como las
siguientes ocho instrucciones:

0: establece el registro P a 8
1: lector de cinta de papel de verificación listo
2: si no está listo, salta a 1
3: lee un byte del lector de cinta de papel de acumulador
4: si el extremo de la cinta, ir al 8
5: Acumulador tienda para registrar la dirección en P
6: incrementar el registro P
7: ir al 1

Un ejemplo relacionado se basa en un cargador para una de 1970 Nicolet Instrument


Corporation minicomputadora . Tenga en cuenta que los bytes del gestor de la segunda
etapa se leen de la cinta de papel en el orden inverso.

0: establece el registro P a 106


1: lector de cinta de papel de verificación listo
2: si no está listo, salta a 1
3: lee un byte del lector de cinta de papel de acumulador
4: acumulador de la tienda para hacer frente a registrarse en P
5: disminuir el registro P
6: ir al 1

La longitud de la segunda etapa del gestor es tal que el byte final sobrescribe ubicación
6. Después de la instrucción en el lugar 5 ejecuta, la ubicación 6 se iniciará el gestor de
la segunda etapa de ejecución. El gestor de segunda fase se espera a que la cinta mucho
más larga que contenga el sistema operativo que se ha colocado en el lector de cinta. La
diferencia entre el gestor de arranque y el cargador de la segunda etapa es la adición de
verificación de código de cinta de papel para atrapar los errores de lectura, un fenómeno
frecuente con el hardware de la época, que en este caso fue un ASR-33 teletipo .

Algunos sistemas informáticos, al recibir una señal de arranque de un operador humano


o un dispositivo periférico, puede cargar un número muy reducido de instrucciones en la
memoria fija en una ubicación específica, inicialice al menos una CPU, a continuación,
elija la CPU a las instrucciones y empezar a su ejecución. Estas instrucciones suelen
comenzar una operación de entrada de algún dispositivo periférico (que puede ser
seleccionable por conmutador por el operador). Otros sistemas pueden enviar
comandos al hardware directamente a los dispositivos periféricos o de E / S que los
controladores de causar una operación de entrada muy simples (como "leer el sector
cero del dispositivo del sistema en la memoria de partida en la ubicación 1000") que se
llevarán a cabo, efectivamente la carga de una pequeña número de instrucciones
Bootload en la memoria, una señal de terminación de la I / O puede usarse entonces
para iniciar la ejecución de las instrucciones de la CPU.

Computadoras más pequeñas a menudo usan menos flexible pero más mecanismos
automáticos Bootload para garantizar que el equipo se inicia de forma rápida y con una
configuración de software predeterminado. En muchas computadoras de escritorio, por
ejemplo, el proceso de bootstrapping se inicia con la CPU ejecutando software
contenido en la memoria ROM (por ejemplo, la BIOS de un PC de IBM ) a una
dirección predefinida (algunos procesadores, incluyendo Intel x86 serie están diseñados
para ejecutar este software después de restablecer sin ayuda externa). Este software
contiene la funcionalidad rudimentaria para buscar los dispositivos que pueden
participar en el arranque, y cargar un pequeño programa desde una sección especial
(más comúnmente el sector de arranque ) del dispositivo más prometedores.

gestores de arranque puede sufrir problemas peculiares, sobre todo en tamaño; por
ejemplo, en el IBM PC y compatibles, la primera etapa de gestores de arranque situado
en unidades de disco duro debe encajar en la primera 446 bytes (o 440 bytes si
Windows NT o superior tiene que ser apoyado por NT puesto 6 bytes de firma de disco
a partir de compensar 440) del Master Boot Record , con el fin de dejar espacio para el
64-byte tabla de particiones y el 2-byte 0xAA55 «firma», que requiere el BIOS para un
arranque correcto cargador.

Algunos sistemas operativos, sobre todo pre-1995 Macintosh sistemas de Apple , están
tan estrechamente entrelazados con su hardware que no es posible de forma nativa a
iniciar el sistema operativo que no sea el estándar. Este es el extremo opuesto de la
Bootload utilizando interruptores mencionados anteriormente, es altamente inflexible,
pero la prueba de error relativamente-ya toda prueba, siempre y cuando todo el equipo
está funcionando normalmente. Una solución común en tales situaciones es el diseño de
un gestor de arranque que funciona como un programa perteneciente a la norma del
sistema operativo que secuestra el sistema y carga el sistema operativo alternativo. Esta
técnica fue utilizada por Apple para su A / UX Unix aplicación y copiado por varios
sistemas operativos gratuitos y BeOS 5 Personal Edición .

comunes usados cargadores de arranque principal

 Windows
 FreeBSD boot0
 Camaleón
 gusano

Segunda etapa del gestor de arranque-]

El programa de pequeñas a menudo no es más propio de un sistema operativo, pero


sólo una etapa del gestor de arranque en segundo lugar, como GRUB , BOOTMGR ,
Syslinux , LILO o NTLDR . Entonces será capaz de cargar el sistema operativo
correctamente, y, finalmente, la transferencia de la ejecución a la misma. El sistema se
inicializará, y puede cargar los controladores de dispositivos y otros programas que son
necesarios para el normal funcionamiento del sistema operativo.

Muchos gestores de arranque (como GRUB, BOOTMGR, LILO y NTLDR) se pueden


configurar para dar al usuario múltiples opciones de arranque. Estas opciones pueden
incluir los sistemas operativos diferentes (por doble o multi-arranque desde diferentes
particiones o discos), de almendra de diferentes versiones del mismo sistema operativo
(en caso de una nueva versión tiene problemas inesperados), de almendra de las
diferentes opciones (por ejemplo, el inicio en modo de rescate o modo seguro ) o algún
programa independiente que puede funcionar sin un sistema operativo, como
probadores de memoria (por ejemplo, memtest86 + ) o incluso juegos. [9] Por lo general,
una opción por defecto está preseleccionado con un intervalo de tiempo durante el cual
usted puede pulsar una tecla para cambiar la opción, después de que la opción por
defecto se ejecuta automáticamente, el arranque tan normal puede ocurrir sin la
interacción.

El proceso de arranque se considera completa cuando el equipo está preparado para


interactuar con el usuario, o el sistema operativo es capaz de ejecutar aplicaciones
comunes. Típica modernos equipos de arranque en aproximadamente un minuto (de los
cuales alrededor de 15 segundos son adoptadas por un poder auto-verificación (POST) y
un gestor de arranque preliminares, y el resto por la carga del sistema operativo, OS-
tiempo pre puede ser considerablemente reducido por con lo que el sistema con todos
los núcleos a la vez , como con LinuxBIOS [10] en tan sólo 3 segundos [11] , mientras que
los servidores de gran tamaño puede tardar varios minutos para arrancar y empezar todo
de sus servicios.

Muchos sistemas embebidos debe arrancar de inmediato. Por ejemplo, esperar un


minuto para una televisión digital o de navegación por satélite para empezar es en
general aceptable. Por lo tanto estos dispositivos tienen un sistema operativo completo
en la memoria ROM o memoria flash para que el dispositivo puede comenzar a
funcionar inmediatamente. Para estos tipos de sistemas embebidos carga poco o nada es
necesario, ya que la carga puede ser precalculadas y se almacena en la memoria ROM
cuando el dispositivo está hecho.
sistemas grandes y complejos pueden tener procedimientos de arranque que procedan
en varias fases, cada fase de carga, una versión más compleja de por sí, hasta que
finalmente el sistema operativo actual es cargada y lista para ejecutar. Porque la
mayoría de sistemas operativos están diseñados como si nunca hubieran iniciar o
detener, Bootload procesos a veces construyen una casi instantánea de un sistema
operativo que se ejecuta, configure a sí mismos como un mero proceso dentro de ese
sistema operativo y, a continuación de forma irrevocable la transferencia de control en
el sistema operativo, el proceso de Bootload luego termina normalmente como cualquier
otro proceso que, y el sistema operativo no necesita tener ningún conocimiento de la
Bootload.

El arranque en red

Artículo principal: El arranque en red

Mayoría de los ordenadores también son capaces de arrancar más de una red
informática . En este escenario, el sistema operativo se almacena en el disco de un
servidor , y ciertas partes del mismo se transfieren al cliente mediante un protocolo
sencillo, como el Trivial File Transfer Protocol . Después de estas piezas han sido
transferidos, el sistema operativo toma entonces el control del proceso de arranque.

Los dispositivos de arranque (IBM PC)


 véase también: Sistema de partición y partición de arranque

El dispositivo de inicio es el dispositivo desde el que se carga del sistema operativo.


Un moderno PC BIOS soporta el arranque desde dispositivos distintos, por lo
general un local de unidad de disco duro (o una de varias particiones en un disco),
una unidad de disco óptico , un USB del dispositivo (unidad flash, disco duro,
unidad de disco óptico, etc ), o una tarjeta de interfaz de red (utilizando PXE ). De
edad, los dispositivos de arranque menos comunes incluyen unidades de disco
floppy , SCSI dispositivos, unidades Zip , y LS-120 unidades.

Normalmente, el BIOS permite al usuario configurar un orden de arranque. Si la


orden de inicio se establece en "en primer lugar, la unidad de DVD, en segundo
lugar, la unidad de disco duro", entonces el BIOS intentará arrancar desde la
unidad de DVD, y si esto no funciona (por ejemplo, porque no hay DVD en la
unidad), que tratará de arrancar desde el disco duro local.

Por ejemplo, en un PC con Windows XP instalado en el disco duro, el usuario


puede establecer el orden de arranque a la dada anteriormente, a continuación,
inserte un GNU / Linux Live CD para probar Linux sin tener que instalar un
sistema operativo en el disco duro. Este es un ejemplo de arranque dual - el
usuario de elegir que sistema operativo se inicie después de que el equipo ha
realizado la prueba automática de encendido . En este ejemplo de arranque dual,
el usuario elige mediante la inserción o extracción de la CD de la unidad, pero es
más común para elegir qué sistema operativo se haya iniciado mediante la
selección de un menú usando el teclado del ordenador. (Por lo general F11 o ESC )
secuencia de arranque en PC estándar (IBM-PC
compatible)
Al iniciar, una computadora personal s ' x86 CPU ejecuta la instrucción situada en la
posición de memoria CS: IP F000: FFF0 de la BIOS , que se encuentra en la dirección
0xFFFF0. Esta localización de memoria está cerca del final de la 1 MB de memoria de
sistema accesible en modo real . Normalmente contiene una instrucción de salto que se
transfiere la ejecución a la ubicación de la BIOS del programa de puesta en marcha.
Este programa se ejecuta una prueba de encendido auto (POST) para chequear e
inicializar los dispositivos necesarios. El BIOS pasa por un pre-configurada la lista de
dispositivos de almacenamiento volátil-no ("dispositivo de secuencia de arranque")
hasta que encuentra uno que es de arranque. Un dispositivo de arranque se define como
una que se puede leer, y los dos últimos bytes del sector de la primera contienen la
palabra 0xAA55 (también conocido como la firma de arranque).

Un volcado hexadecimal de FreeBSD 's boot0 MBR

Una vez que la BIOS ha encontrado un dispositivo de arranque carga el sector de


arranque en hexadecimal Segmento : Offset dirección 0000:7 C00 o 07C0: 0000 (mapas
a la dirección definitiva mismo) y la ejecución transferencias al código de arranque . En
el caso de un disco duro, esto se conoce como el registro de inicio maestro (MBR) y no
suele ser el sistema operativo específico. El código comprueba MBR convencionales de
la RBM tabla de partición para una partición de arranque fijado como (el que tiene
bandera activa recogidos) [12] . Si una partición activa se encuentra, el código carga el
MBR sector de arranque de código de la partición y lo ejecuta. El sector de arranque es
a menudo del sistema operativo específico, sin embargo, en la mayoría de los sistemas
operativos de su función principal es cargar y ejecutar el sistema operativo del kernel ,
que continúa el inicio. Si no hay ninguna partición activa, o un sector de la partición
activa de arranque no es válida, el MBR puede cargar un gestor de arranque secundario
que seleccione una partición (a menudo a través de la entrada del usuario) y la carga de
su sector de arranque, que generalmente carga el kernel del sistema operativo
correspondiente.

Algunos sistemas (sobre todo nuevos Macintosh ) el uso de Intel 's de propiedad de EFI
. También LinuxBIOS permite que un ordenador para arrancar sin necesidad de un
complicado excesivamente firmware / BIOS ejecuta constantemente en modo de
sistema de gestión . El legado del BIOS de 16-bit interfaces son requeridos por
determinados sistemas operativos x86, como Windows. Sin embargo la mayoría de los
gestores de arranque de 16-bit tienen soporte para estos sistemas de legado del BIOS. [13]
[14] [15]

Premio BIOS durante el arranque. BIOS con fecha a 1995

Mayoría de los equipos, si un BIOS chip está presente, aparecerá una pantalla que
detalla el fabricante de chips del BIOS, los derechos de autor en poder de los chips en el
fabricante y el identificador del chip en el inicio. Al mismo tiempo, también muestra la
cantidad de memoria informática y otras piezas de código que muestra información
acerca del equipo.

Otros tipos de secuencias de arranque


Algunos otros procesadores tienen otros tipos de modos de arranque:

1) Existen técnicas alternativas para el arranque CPU y microcontroladores:

 Algunos CPUs modernas y microcontroladores (por ejemplo, TI OMAP ) o


incluso a veces pueden tener DSP ROM de arranque con código de arranque
integrado directamente en el silicio, de modo tal de procesador podría realizar
una secuencia de arranque bastante sofisticados en sus propios programas de
arranque y carga de varias fuentes como flash NAND, tarjeta SD o MMC, etc.
Es difícil cableado toda la lógica necesaria para el manejo de estos dispositivos,
por lo que una ROM de arranque integrado se usa en cambio, en tales
escenarios. ROM de arranque permite el uso de secuencias de arranque más
flexible que la lógica cableada podía proporcionar. Por ejemplo, la ROM de
arranque podría tratar de realizar el arranque de arranque a partir de fuentes
múltiples. Además, una ROM de inicio es a menudo capaz de cargar un gestor
de arranque o un programa de diagnóstico a través de interfaces seriales como
UART , SPI , USB , etc. Esta característica se utiliza a menudo con fines de
recuperación del sistema cuando por alguna razón software de arranque habitual
en la memoria no volátil he borrado. Esta técnica podría utilizarse también para
la programación inicial de la memoria no volátil cuando hay memoria limpia no
volátil instalado y por lo tanto no hay software disponible en el sistema todavía.
 También es posible tomar el control de un sistema mediante el uso de un
hardware de interfaz de depuración tales como JTAG . Esta interfaz puede ser
usado para escribir el programa gestor de arranque de arranque en la memoria no
volátil (flash, por ejemplo) dando instrucciones a la base del procesador para
realizar las acciones necesarias para programar la memoria no volátil. Como
alternativa, la interfaz de depuración puede ser utilizado para cargar algo de
código de diagnóstico o de inicio en la memoria RAM y, a continuación para
iniciar el núcleo del procesador y le instruimos para ejecutar el código cargado.
Esto permite, por ejemplo, la recuperación de los sistemas integrados de
software en los que no permanece en cualquier dispositivo de arranque apoyado,
y cuando el transformador no tiene la ROM de arranque integrado. JTAG es una
interfaz estándar y popular; muchas CPU, microcontroladores y otros
dispositivos se fabrican con interfaces JTAG (a partir de 2009).
 Algunos microcontroladores proporcionar interfaces especiales de hardware que
no se puede utilizar para tomar el control arbitrario de un sistema o ejecutar
código directamente, sino que éstos permitan la inserción de código de arranque
en la memoria no volátil de arranque (como la memoria flash) a través de
protocolos sencillos. Luego, en la fase de fabricación, dichas interfaces se
utilizan para inyectar código de arranque (y posiblemente otro tipo de código) en
la memoria no volátil. Después de reiniciar el sistema, el microcontrolador
comienza a ejecutar código programado en su memoria no volátil, al igual que
los procesadores de costumbre está utilizando ROM para el arranque. Lo más
notable de esta técnica es utilizada por Atmel AVR microcontroladores, y por
los demás. En muchos casos, las interfaces se apliquen en lógica cableada. En
otros casos, dichas interfaces se puede crear un software que se ejecuta en el
chip de ROM de arranque integrado-on de GPIO pins.

2) La mayoría de los procesadores de señal digital tienen los modos de arranque


siguiente:

 el modo de inicio de serie


 el modo de arranque en paralelo, como la interfaz de puerto anfitrión (HPI de
arranque)

Vale la pena mencionar que en caso de DSPs hay a menudo un segundo


microprocesador o microcontrolador presente en el diseño del sistema, y éste es
responsable del comportamiento general del sistema, manejo de interrupciones, que
trata de los acontecimientos externos, interfaz de usuario, etc, mientras que el DSP se
dedica a tareas de procesamiento de señales solamente. En estos sistemas el DSP se
podía iniciar por otro procesador que a veces es referido como el procesador anfitrión
(que da nombre a un puerto de acogida). Este procesador es también a veces se refiere
como el maestro, ya que por lo general las botas primero de sus propios recuerdos y
controla el comportamiento general del sistema, incluyendo el arranque de la DSP, y
luego se controla el comportamiento de la DSP. Una cosa interesante aquí es que el
DSP a menudo carece de los recuerdos propios de arranque y se basa en el procesador
para proporcionar el código necesario en su lugar. Los sistemas más notable con un
diseño tal son los teléfonos celulares, módems, reproductores de audio y video, etc en
un DSP y un microcontrolador de la CPU / son coexistentes.

Muchos FPGA cargar sus fichas de configuración de una serie externo EEPROM
("ROM de configuración") en el encendido.

En IBM de sistemas, el proceso de arranque que se conoce como IPL (carga del
programa inicial). El término fue acuñado por IBM para el diseño del System/360 y
sigue utilizándose en los entornos actuales [16] . En los sistemas que comparten el
System/360 patrimonio-y en algunos que se han inspirado en él, incluyendo los sistemas
más pequeños como la IBM 1130 -IPL es una función de hardware, no un programa
llevado a cabo en el propio sistema. En su forma básica, una IPL es iniciada por el
operador de la computadora mediante la selección de los (tres dígitos hexadecimales
dirección del dispositivo) mediante interruptores giratorios de la consola del equipo, ya
continuación presione el botón 'IPL. Esto lee un pequeño programa (normalmente 24
bytes) integramente implementado en hardware, compuesto sólo por una pocas palabras
de comando de canal de iniciar una operación de lectura desde el dispositivo designado.
Por lo general, se trata de una unidad de disco, pero exactamente el mismo
procedimiento también se utiliza para arrancar desde otros dispositivos, como unidades
de cinta , o incluso los lectores de tarjetas , en una forma independiente del dispositivo,
permitiendo por ejemplo la instalación de un sistema operativo en un equipo prístina la
distribución de una cinta magnética. Por supuesto, el disco, cinta magnética o de tarjeta
debe contener un programa especial para cargar el sistema operativo actual en la
memoria, un procedimiento por etapas similares a los procedimientos de la mayoría de
arranque (ver otra parte de este artículo).

La función System/360 IPL lee 24 bytes desde un dispositivo del operador especificado
o pre-configurado en la memoria a partir de cero ubicación. El segundo y el tercero de
ocho bytes se tratan como el Canal de Ordenes Words (CCWs) para continuar cargando
el programa de inicio. Cuando la E / S de canal comandos están completos, el primer
grupo de ocho bytes se carga en la Palabra de estado de programa (PSW) y el programa
de registro de inicio comienza la ejecución en el lugar designado. [16]

Una variación notable de este se encuentra en la Burroughs B1700 donde no hay ni una
ROM de arranque ni una operación de cableado IPL. En su lugar, después de que el
sistema se reinicia se lee y ejecuta códigos de operación en secuencia desde una unidad
de cinta montada en el panel frontal, lo que crea un gestor de arranque en la memoria
RAM que luego se ejecuta. Sin embargo, ya que esto hace presunciones acerca del
sistema que puede ser igualmente utilizado para la carga de diagnóstico (Pruebas de
Mantenimiento de rutina) cintas que muestran un código inteligible en el panel frontal ,
incluso en los casos de incapacidad grave de la CPU.

Reiniciar
[ editar ] reinicio duro

Un reinicio duro (también conocido como un reinicio en frío, arranque en frío o


arranque en frío) es cuando el poder de una computadora es un ciclo (apagado y luego
encendido) o una señal de reinicio especial al procesador se ha disparado. Esto reinicia
el equipo sin antes de realizar cualquier procedimiento de apagado. (Con muchos
sistemas operativos , especialmente aquellos que utilizan cachés de disco , después de
un reinicio duro del sistema de archivos pueden estar en un "sucio" del Estado, y una
búsqueda automática de sistema de archivos de disco en las estructuras-se llevará a cabo
antes de la operación normal puede comenzar.) Puede ser causados por falta de energía
eléctrica, por hacer por accidente, o se hizo deliberadamente, como último recurso para
recuperar la fuerza del sistema de instancias tales como un error crítico o virus -infligida
ataque DoS . También puede ser utilizado por los intrusos para acceder a las claves
criptográficas de memoria RAM , en cuyo caso se le llama un ataque de arranque en frío
. [ cita requerida ]
reinicio suave

Un reinicio por software (también conocido como un reinicio en caliente) es el reinicio


de un ordenador bajo control del software, sin quitar el poder o (directamente) la
activación de una línea de restablecimiento. Por lo general, aunque no siempre, se
refiere a una orden de apagado y reinicio de la máquina.

El Control-Alt-Supr combinación de teclas en el original de PC de IBM fue diseñado


para permitir un reinicio suave para un cómodo y más rápido que reiniciar suministrar
energía al ordenador completamente hacia abajo y luego hacia arriba. [ cita requerida ]

Este tipo de reinicio por lo general no se restablecerán los discos duros, para que tengan
tiempo de actualizar su caché de escritura en el almacenamiento permanente. Los
discos duros también mantendrá su configuración (como C / H / S ajustes, HPA , ACA ,
contraseñas internas ...) a lo largo de estos reinicios.

El kernel de Linux tiene soporte opcional para el kexec llamada al sistema , que
transfiere la ejecución a un nuevo núcleo y el hardware se salta o reinicio del firmware.
Todo el proceso se hace independiente del firmware del sistema. Tenga en cuenta que
el núcleo está ejecutando no tiene que ser un núcleo de Linux.

reinicio azar

reinicio al azar es un término técnico-no se refiere a una consecuencia no intencionada


(y no deseado a menudo) iniciar el sistema para el que la causa no es inmediatamente
evidente para el usuario. reinicios puede producirse debido a una multitud de problemas
de software y hardware, tales como fallas triples .

En Windows XP / Vista tiene una opción para omitir su pantalla azul de la muerte
(BSOD) (pantallas azules de la muerte en Windows XP Vista oferta / sin opción de
presionar cualquier tecla y ver si el equipo sigue funcionando) y de inmediato se reinicia
el equipo en la caso de un error grave, los usuarios se pueden confundir en el
pensamiento de un equipo con Windows XP / Vista computador sufre de reiniciar al
azar.

Errores

En Windows, cuando se produce un error en el proceso de arranque, una pantalla azul


de la muerte o una pantalla Negro de la Muerte puede ocurrir. En Unix y sistemas
operativos como Unix, como Linux y Mac OS X, un error fatal en el proceso de
arranque puede causar un kernel panic .

arranque rápido
Existen varios dispositivos que permiten al usuario "rápida de inicio" a un general,
Linux OS potencia para varias tareas simples, tales como acceso a Internet ( Splashtop ,
Latitude ON , etc.) [17] [18] [19] [20] [21] [22] [23] [24] [25]
virus de sector de arranque
Since code in the boot sector is executed automatically, boot sectors have historically
been a common attack vector for . Dado que el código en el sector de arranque se
ejecuta de forma automática, los sectores de arranque han sido históricamente un vector
de ataque común para los virus informáticos . To combat this behavior, the BIOS often
includes an option to prevent writing to the boot sectors of attached hard drives. Para
luchar contra este comportamiento, el BIOS a menudo incluye una opción para prevenir
la escritura a los sectores de arranque de discos duros conectados

La comparación de arranque en frío para calentar


inicio

127029 Our application takes significantly more time to launch after a reboot (cold start) than if
it was already opened once (warm start). Nuestra aplicación toma mucho más tiempo
para poner en marcha después de un reinicio (arranque en frío) que si se abrió ya una
vez (arranque en caliente).
99 Most (if not all) the difference seems to come from loading DLLs, when the DLLs' are
in cached memory pages they load much faster. La mayoría (si no todos), la diferencia
parece provenir de archivos DLL de carga, cuando el DLL están en las páginas de
memoria caché que carga mucho más rápido. We tried using to simulate rebooting
(since its much less time consuming than actually rebooting) and got mixed results, on
some machines it seemed to simulate a reboot very consistently and in some not.
Hemos intentado utilizar ClearMem para simular reiniciar (desde su mucho menos
tiempo que en realidad reiniciar) y obtuvo resultados mixtos, en algunas máquinas que
parecía simular un reinicio y en algunos no muy coherente.

To sum up my questions are: Para resumir mis preguntas son:

1. Have you experienced differences in launch time between cold and warm
starts? ¿Ha tenido diferencias en el tiempo de lanzamiento entre los arranques en
frío y caliente?
2. How have you delt with such differences? ¿Cómo has delt con tales
diferencias?
3. Do you know of a way to dependably simulate a reboot? ¿Sabe usted de una
manera confiable simular un reinicio?

Edit:

Clarifications for comments: Aclaraciones para la presentación de observaciones:

 The application is mostly native C++ with some .NET (the first .NET assembly
that's loaded pays for the CLR). La aplicación es en su mayoría nativos de C + +
con algunas. NET (el primero. NET que se carga paga por el CLR).
 We're looking to improve load time, obviously we did our share of profiling and
improved the hotspots in our code. Estamos buscando mejorar el tiempo de
carga, obviamente hemos hecho nuestra parte de perfiles y la mejora de los
puntos calientes en nuestro código.

Something I forgot to mention was that we got some improvement by re-basing all our
binaries so the loader doesn't have to do it at load time. Algo se me olvidó mencionar
es que hemos conseguido alguna mejora, al volver a basar todos nuestros archivos
binarios por lo que el gestor no tiene que hacerlo en tiempo de carga.

ventanas rendimiento reinicio clearmem

flag bandera edited editado 24 de asked pidió a 24 de


septiembre '08 a las septiembre '08 a las
13:32 13:11

Motti
● ● 6.662 15 48

90% accept rate 90% tasa


de aceptar

10 Answers 10 Respuestas

oldest newest votes más antiguo último voto

129090 How did you profile your code? ¿Cómo el perfil de su código? Not all profiling methods
are equal and some find hotspots better than others. No todos los métodos de perfiles
son iguales y algunas encontrar puntos de acceso mejor que otros. Are you loading
lots of files? ¿Es usted un montón de carga de archivos? If so, disk fragmentation and
33 seek time might come into play. Si es así, la fragmentación del disco y el tiempo de
búsqueda podría entrar en juego.

Maybe even sticking basic timing informatino into the code and writing out to a log file
and examining the files on cold/warm start will help identify the app is spending their
time. Tal vez incluso se pegue informatino calendario de base en el código y escribir
un archivo de registro y examen de los archivos de frío / arranque en caliente le
ayudará a identificar el lugar de aplicación es el gasto de su tiempo.

Without more information, I would lean towards filesystem/disk cache as the likely
difference between the two environments. Sin más información, me inclinaba hacia el
sistema de archivos / cache de disco como la diferencia probable entre los dos
entornos. If that's the case, then you either need to spend less time loading files
upfront, or find faster ways to load files. Si ese es el caso, entonces o bien necesitan
pasar menos tiempo de carga de archivos por adelantado, o encontrar maneras más
rápidas de cargar archivos. One example (that may not apply) is that if you are loading
load of binary data files is to combine them all into a single file, do a slerp of the whole
file into memory in one read, and then parse out their contents. Un ejemplo (que no se
pueden aplicar) es que si va a cargar la carga de archivos de datos binarios es
combinar todos ellos en un solo archivo, hacer un SLERP del expediente completo en
la memoria de una lectura, y luego analizar sus contenidos. Less disk sesks and time
spend reading off of disk. Menos sesks disco y el tiempo dedicado a la lectura fuera
del disco. Again, maybe that doesn't apply. Una vez más, tal vez eso no se aplica. I
don't know offhand of any tools to clear the disk/filesystem cache, but you could write a
quick application to read a bunch of unrelated files off of disk to cause the
filesystem/disk cache to be loaded with different info. No sé improviso de cualquier
herramienta para borrar el disco / sistema de archivos de caché, pero puede escribir
una aplicación rápida de leer un montón de archivos no relacionados fuera de los
discos para hacer que el sistema de archivos / cache de disco para cargar con otro
tipo de información.

flag enlace | bandera answered responde a 24


de septiembre '08 a las
18:53

Marca
● ● 2.502 4 18

I'll look into unifying DLLs that sounds like a promising option. Voy a mirar en DLL
unificador que suena como una opción prometedora. – - Motti 25 de septiembre '08 a
las 7:22

From the symptoms, it sounds like the time consuming thing is loading the code rather
than the execution time of the initialization code. De los síntomas, parece que el tiempo
lo consume es cargar el código en lugar del plazo de ejecución del código de
inicialización. In that case, a profiler won't help (except, possibly, to see if you've made
progress on improving the load time). En ese caso, un generador de perfiles no ayudará
(a excepción, posiblemente, para ver si usted ha hecho progreso en la mejora el tiempo
de carga). Reduce the number of DLLs that must load, make them smaller, rebase them
so that there's no overlap. Reducir el número de archivos DLL que debe cargar, hacerlos
más pequeños, de modo que rebase no hay solapamiento. Registry access can also be
painful on a fresh boot. Registro de acceso también puede ser doloroso en un inicio
fresco. – - Adrian McCarthy 1 de diciembre '09 a las 22:40
127039 As for simulating reboots, have you considered running your app from a ? En cuanto a
la simulación de reinicios, ¿ha considerado ejecutar la aplicación desde una PC virtual
? Using virtualization you can conveniently replicate a set of conditions over and over
again. Uso de virtualización que convenientemente puede replicar un conjunto de
55 condiciones de una y otra vez.

I would also consider some type of to spot the bit of code causing the time lag, and
then making the judgement call about how much of that code is really necessary, or if it
could be achieved in a different way. También me consideren algún tipo de perfiles de
aplicación para detectar el trozo de código que provoca el retraso de tiempo, y luego
de hacer la llamada juicio acerca de cuánto de ese código es realmente necesario, o si
le puede lograrse de una manera diferente.

flag enlace | bandera edited editado 24 de answered responde a 24


septiembre '08 a 13:18 de septiembre '08 a las
13:12

Jim Burger
● ● 2.348 5 14

The problem with virtual machines (we use VMWare not Virtual PC) is that they load
balance everything (including the CPU) and the numbers we were getting were not
consistent. El problema con las máquinas virtuales (usamos VMWare Virtual PC no) es
que todo lo que un equilibrio de carga (incluido el de la CPU) y los números que estaban
recibiendo no eran consistentes. – - Motti 24 de septiembre '08 a las 13:27

Point taken, though I suspect by replicating reboots you are chasing symptoms rather
than root causes. Entendido, aunque sospecho que al replicar reinicia usted está
persiguiendo síntomas que las causas raíz. The fact remains that there is something way
too time consuming occuring in a DLL regardless of when it loads, hard reboots just
exacerbate the problem. El hecho es que no hay manera de consumir algo demasiado
tiempo se producen en un archivo DLL con independencia de cuando se carga, se
reinicia duro sólo agravan el problema. Im confident a profiling tool will help here – Im
seguro de una herramienta de perfilado puede ayudar aquí - Jim Burger 24 de
septiembre '08 a las 13:40

:) Thanks for the further clarifications – :) Gracias por las aclaraciones adicionales - Jim
Burger 24 de septiembre '08 a las 13:47

127057 It would be hard to truly simulate a reboot in software. Sería realmente difícil de
simular un reinicio por software. When you reboot, all devices in your machine get their
reset bit asserted, which should cause all memory system-wide to be lost. Al reiniciar,
todos los dispositivos de la máquina de conseguir su granito de arena restablecer
44 afirmó, la cual debe hacer toda la memoria de todo el sistema que se pierde.

In a modern machine you've got memory and caches everywhere: there's the VM
subsystem which is storing pages of memory for the program, then you've got the OS
caching the contents of files in memory, then you've got the on-disk buffer of sectors
on the harddrive itself. En una moderna máquina que tienes la memoria caché y en
todas partes: está el subsistema de VM que es el almacenamiento de páginas de
memoria para el programa, entonces usted tiene el sistema operativo de
almacenamiento en caché el contenido de archivos en la memoria, entonces usted
tiene sobre- disco de amortiguamiento de los sectores en el propio disco duro. You
can probably get the OS caches to be reset, but the on-disk buffer on the drive? Usted
probablemente puede recibir la caché del sistema operativo para poner a cero, pero la
memoria intermedia en el disco en la unidad? I don't know of a way. No sé de un
camino.

flag enlace | bandera answered responde a 24


de septiembre '08 a las
13:15

Daniel Papasian
2283 ● 1 ● ● 3 15

true

131932 @ said: @ Morten Christiansen dijo:

One way to make apps start cold-start faster (sort of) is used by eg Adobe reader, by
loading some of the files on startup, thereby hiding the cold start from the users. Una

22 manera de hacer que las aplicaciones de arranque en frío arranque más rápido (más o
menos) se utiliza, por ejemplo lector de Adobe, por la carga de algunos de los archivos
en el arranque, el cual oculta el arranque en frío de los usuarios. This is only usable if
the program is not supposed to start up immediately. Solamente se puede usar si el
programa no se supone que la puesta en marcha de inmediato.

That makes the customer pay for initializing our app at every boot even when it isn't
used, I really don't like that option (neither does ). Eso hace que el pago de los
clientes para inicializar nuestra aplicación en cada arranque, incluso cuando no se
utiliza, en realidad no me gusta esa opción (tampoco Raymond ).

flag enlace | bandera answered responde a 25


de septiembre '08 a las
7:27

Motti
● ● 6.662 15 48
132581 One succesful way to speed up application startup is to switch DLLs to delay-load. Una
buena manera de acelerar inicio de la aplicación es cambiar DLL para retrasar la
carga. This is a low-cost change (some fiddling with project settings) but can make
startup significantly faster. Este es un cambio de bajo costo (algunos jugando con la
22 configuración del proyecto), pero puede hacer mucho más rápido de inicio. Afterwards,
run depends.exe in profiling mode to figure out which DLLs load during startup
anyway, and revert the delay-load on them. A continuación, ejecute depends.exe en el
perfil de modo de averiguar qué archivos DLL de carga durante el inicio de todos
modos, y revertir el retraso de carga sobre ellos. Remember that you may also delay-
load most Windows DLLs you need. Recuerde que también puede retrasar la carga de
la mayoría de los archivos DLL de Windows que usted necesita.

flag enlace | bandera answered responde a 25


de septiembre '08 a las
10:53

MSalters
● ● 1 19.1k ● 4 23

379082
A very effective technique for improving application cold launch time is optimizing
function link ordering. Una técnica muy eficaz para mejorar la aplicación en tiempo de
lanzamiento frío es la optimización de enlace función ordenadora.

22 The Visual Studio linker lets you pass in a file lists all the functions in the module being
linked (or just some of them - it doesn't have to be all of them), and the linker will place
those functions next to each other in memory. El vinculador de Visual Studio le permite
pasar en un archivo de todas las funciones en el módulo de estar vinculadas (o sólo
algunos de ellos - no tiene por qué ser todos ellos), y el vinculador colocará esas
funciones junto a la otra en la memoria.

When your application is starting up, there are typically calls to init functions throughout
your application. Cuando la aplicación se inicia, normalmente hay llamadas a
funciones de inicio en toda la aplicación. Many of these calls will be to a page that isn't
in memory yet, resulting in a page fault and a disk seek. Muchas de estas llamadas
será el de una página que no está en la memoria, sin embargo, que resulta en un error
de página y buscar un disco. That's where slow startup comes from. Ahí es donde
viene de inicio lento.

Optimizing your application so all these functions are together can be a big win. La
optimización de su aplicación para todas estas funciones están juntos puede ser una
gran victoria.

Check out Profile Guided Optimization in Visual Studio 2005 or later. En cuanto a perfil
de optimización guiada en Visual Studio 2005 o posterior. One of the thing sthat PGO
does for you is function link ordering. Uno de los PGO sthat lo hace por ti es el enlace
función ordenadora.

It's a bit difficult to work into a build process, because with PGO you need to link, run
your application, and then re-link with the output from the profile run. Es un poco difícil
trabajar en un proceso de generación, ya que con PGO es necesario enlazar, ejecutar
la aplicación, a continuación, volver a enlazar con la salida de la ejecución de perfil.
This means your build process needs to have a runtime environment and deal cleaning
up after bad builds and all that, but the payoff is typically 10+ or more faster cold
launch with no code changes. Esto significa que su proceso de construcción debe
tener un entorno de ejecución y la limpieza después de tratar mal construye y todo
eso, pero la recompensa es normalmente 10 + o más rápido lanzamiento de frío, sin
cambios de código.

There's some more info on PGO here: No hay más información sobre PGO aquí:

http://msdn.microsoft.com/en-us/library/e7k32f4k.aspx

flag enlace | bandera answered responde a 18


de diciembre '08 a 20:11

stevex
● ● 549 1 6

ARRANQUE EN CALIENTE:

(Informática) La reanudación del funcionamiento del ordenador, tras una parada generados
problema, en que los programas que se ejecutan en el sistema se puede reanudar en el punto
de que cuando estaban en la parada se produjo y los datos no se pierde.

Вам также может понравиться