Моя система работает на жестком диске, и загрузка ОС занимает больше минуты. Теперь, когда я запускаю диспетчер задач и перехожу в автозагрузку, он сообщает, что время BIOS составляет 10 секунд, но это неправильно, если только время загрузки ОС и время BIOS не отличаются. Записывает ли Windows время от нажатия кнопки включения до момента, когда система готова к использованию? Чтобы проверить это, мне пришлось посмотреть видео на YouTube, где система, работающая на жестком диске, и система, работающая на SSD, были запущены одновременно, и был запущен секундомер, и жесткому диску потребовалось более 1 минуты 30 секунд, чтобы загрузить ОС, а SSD потребовалось 29 секунд.
решение1
там написано, что время BIOS составляет 10 секунд, но это не так, если только время загрузки ОС и время BIOS не отличаются
Они совершенно разные. BIOS уходит, когда ОС начинает загружаться, поэтому ваше измеренное время "настенных часов" - этосуммавремени BIOS и времени ОС.
Вероятнее всего, Windows использует возможности процессора.счетчик тактовых цикловдля RDTSC
определения времени BIOS (по крайней мере, это то, что systemd использует в Linux):
- При включении питания TSC всегда сбрасывается на ноль (это T 1 ).
- Как только запускается менеджер загрузки ОС, он записывает текущее значение TSC (T 2 ).
Теперь T 2 −T 1 будет числом циклов ЦП, которое потребовалось для инициализации BIOS. - Позже ОС измеряет количество циклов ЦП в секунду (на частоте ЦП по умолчанию), чтобы преобразовать количество циклов в секунды и отображает это как «время BIOS».
(Менеджер загрузки «systemd-boot» в Linux также записывает значение TSC непосредственно перед передачей управления ОС, чтобы измерить время, потраченное на показ вам меню загрузки, — хотя Windows, вероятно, этого не делает.)
В некоторых новых системах на базе UEFI есть специальная FPDT
таблица ACPI, в которой сама прошивка хранит «время BIOS», которое должна использовать операционная система, но пока это поддерживается не повсеместно.