/ / Как компютърът ми може да се рестартира сам?

Как моят компютър може да се рестартира сам?

Това е толкова често срещана дейност, която повечето от насвероятно никога не са спирали дори да се замислят: автоматичното рестартиране. Независимо дали иницииран от потребителя или приложението, какво точно се случва, когато компютърът ви циклизира собствената си мощност?

Днешната сесия „Въпроси и отговори“ идва при нас от любезното съдействие на SuperUser - подразделение на Stack Exchange, групиране на общността на Q&A уебсайтове.

Въпроса

SuperUser четецът Сет Карнеги се чуди за управлението на захранването на компютъра:

Как компютърът може сам да се рестартира? След като е изключен, как си казва да се върне отново? Какъв софтуер е този, който може да направи това?

Как наистина? Каква комбинация от софтуерна / хардуерна магия го прави?

Отговорът

SuperUser сътрудник Jcrawfordor предлага едновременно съкратен и подробен отговор на въпроса, който повече от адекватно адресира въпроса:

Прекалено дълго; не го прочетох отговор: Състоянията на захранване във вашия компютър се контролират отвнедряване на ACPI (разширена конфигурация и захранващ интерфейс). В края на процеса на изключване операционната ви система задава команда ACPI, показваща, че компютърът трябва да се рестартира. В отговор дънната платка нулира всички компоненти с помощта на съответните команди за рестартиране или редове и след това следва процеса на стартиране. Дънната платка никога не се изключва, а само нулира различни компоненти и след това се държи така, сякаш токът за захранване току-що е натиснат.

Дълъг и дрънкащ, но (според мен) по-интересен отговор:

Мека мощност и как работи

В стари времена (добре, добре, че за студент като мен 90-те беше отдавна), ние имахме AT (Advanced Technology) дънни платки с AT мощност управление. АТ захранващата система беше много, много проста. Бутонът за захранване на вашия компютър беше хардуерен превключвател (вероятно в задната част на кутията) и входът от 120vac премина през него точно. Той физически включи и изключи захранването към вашето захранване и когато този превключвател беше в положение Изключено, всичко в компютъра ви беше напълно измряло (това направи CMOS батерията много важна, защото без нея нямаше захранване, което да поддържа хардуера часовник тиктака). Тъй като превключвателят на захранването беше физически механизъм, нямаше софтуерен начин за включване и изключване на захранването. Windows ще покаже известното съобщение „Сега е безопасно да изключите компютъра си“, тъй като, въпреки че всичко беше паркирано и готово да се изключи, операционната система не можеше да включи реално превключвателя на захранването. Тази конфигурация понякога се наричаше твърда мощност, защото всичко е хардуер.

В днешно време нещата са различни, заради чудесата на ATX дънните платки и ATX мощност (това е Advanced Technology eXtended, ако продължавате да следите). Заедно с редица други аванси (mini-DIN PS / 2, някой?), ATX доведе мека сила, Мека мощност означава, че захранването на компютъра може да се контролира от софтуер. Това доведе до няколко промени при внос:

  • Захранване в режим на готовност: вероятно сте виждали конектор „5v SB“ или „5v standby“, обозначен в изводите на захранването. Най- резервно захранване е 5v линия към вашата дънна платка, която винаги евключен, дори когато компютърът е изключен. Ето защо е важно да изключите или изключите твърд превключвател на PSU (ако има такъв) при обслужване на съвременни компютри, защото дори когато е изключен, потенциално можете да късите 5v SB и да повредите дънната платка. Ето защо CMOS батериите вече не са толкова важни - 5v SB се използва за замяна на CMOS батерията винаги, когато захранването има захранване, така че CMOS батерията се използва само когато изключите компютъра изцяло. Линията 5v SB по същество позволява на компонентите на вашия компютър (най-важното на BIOS и мрежовите адаптери) да продължат да работят с някакъв прост софтуер, дори когато компютърът е изключен.
  • Интелигентен контрол на захранването. Ако погледнете гнездо за конектора на P1-тата на захранването, ще забележите два пина, които обикновено са обозначени PS_ON и PS_RDY, Те означават „захранване на захранването“ и „захранване“доставка е готова ”. Ако искате да експериментирате, вземете захранване не в компютър, включете го и внимателно къса заземена линия (един от черните проводници) до PS_ON линията (зелената жица). Захранването видимо ще се включи, като вентилаторът се завърти. Компонентите на дънната платка, изтичащи от + 5 V SB, всъщност включват и изключват вашето захранване чрез свързване на захранването към PS_ON щифта. Тъй като в захранването има някои кондензатори и други компоненти, които изискват момент за зареждане, напреженията от основните изходи на захранването може да не са стабилни веднага след включването на PSU. За това е PS-RDY пинът, той се появява, когато вътрешната логика на захранването определи, че захранването е "готово" и ще осигури стабилна мощност. Дънната платка чака, докато PS_RDY е включен, за да продължи зареждането.

И така, вашият превключвател за захранване вече не се “включва”компютър. Вместо това той е свързан с основните контролери на дънната ви платка, които откриват, че бутонът е натиснат и изпълняват редица стъпки, за да подготвят системата, включително да запалят PS_ON, така че захранването да е достъпно. Бутонът за захранване не е единственият начин за задействане на процеса на стартиране, устройствата на вашата разширителна шина също могат да го направят. Това е важно, защото адаптерите ви в мрежовата мрежа действително остават включени, когато компютърът ви е изключен и търсят много специфичен пакет, често наричан „магически пакет“. Ако открият този пакет, адресиран до техния MAC адрес, ще задейства процеса на стартиране. , Ето как работи „Wake-on-LAN“ (WoL). Часовникът също може да инициира стартиране (повечето BIOS ви позволяват да зададете време, което компютърът трябва да се зарежда всеки ден), а USB и FireWire устройствата могат да задействат зареждане, въпреки че не знам каквато и да е реализация на това.

Разбиране на контрола на мощността

Е, обяснявам нещата със Силната мощност и защотоМисля, че е интересно (винаги ключова причина, за да обяснявам нещата) и защото ви позволява да разберете как се контролира от софтуера мощността и състоянието на работа / изключване на вашия компютър. В повечето съвременни компютри тази софтуерна система е приложение на Разширена конфигурация и захранващ интерфейс или ACPI, ACPI е стандартизирана, обединена система, позволяваща на софтуера да управлява захранващата система на вашия компютър. Може би сте чували за ACPI мощност състояния, Основният механизъм за контрол на мощността е тези„Състояния на захранване“, вашата операционна система преминава през режими на захранване, като се подготвя за превключването (процесите на изключване / хибернация, които се случват преди реално изключване на захранването) и след това командва дънната платка да превключва състоянията на захранването. Мощните състояния изглеждат така:

  • G0: Работи (състоянието на компютъра ви е „включено“)
  • G1: Спящ (състоянието на готовността на компютъра ви, разделен на S субстатиите)
    • S1: захранването на процесора и RAM паметта остава включено, но процесорът не изпълнява инструкции. Периферните устройства са изключени.
    • S2: CPU захранван, поддържана RAM памет
    • S3: Всички захранвани компоненти с изключение на RAM и устройства, които ще задействат възобновяване (клавиатура). Когато кажете на вашата операционна система да спи, тя ще спре процесите и ще влезе в този режим.
    • S4: Хибернация. Абсолютно всичко е изключено. Когато кажете на операционната си система на хибернация, тя спира процесите, записва съдържанието на RAM на диск и след това влиза в този режим.
  • G2: Soft Off. това е състоянието на компютъра ви „изключено“. Захранването е изключено за всичко, с изключение на устройства, които могат да задействат зареждане.
  • G3: Механично изключено.

Как всъщност става нулирането

Ще забележите, че рестартирането не е едно от тези състояния. И така, какво всъщност се случва, когато компютърът ви, когато се рестартира? Отговорът може да е изненадващ, защото от гледна точка на управлението на мощността е почти нищо, Има команда за нулиране на ACPI, Когато кажете на вашата операционна система да рестартира,той следва своя нормален процес на изключване (спира всичките ви процеси, извършва малко поддръжка, демонтира файловите ви системи и т.н.) и след това като последна стъпка, вместо да изпраща машината в състояние G2 (както би било, ако просто каза го на Shut Down), тя задава командата Reset. Това обикновено се нарича "регистър за нулиране", тъй като подобно на повечето ACPI интерфейс това е просто адрес, на който трябва да се запише определена стойност, за да се поиска нулиране. Ще цитирам спецификацията 2.0 за това, което прави:

Незадължителният механизъм за нулиране на ACPI указва aстандартен механизъм, който осигурява цялостно нулиране на системата. Когато се реализира, този механизъм трябва да нулира цялата система. Това включва процесори, основна логика, всички шини и всички периферни устройства. От гледна точка на OSPM, утвърждаването на механизма за нулиране е логически еквивалент на мощността, циклична на машината. След като получи контрол след нулиране, OSPM ще извърши действия по подобен начин на студено зареждане.

Така че, когато регистърът за нулиране е зададен, няколко неща се случват последователно.

  • Цялата логика е нулирана. Това означава изпращане на съответните команди за нулиране към различни битове на хардуера, включително процесора, контролера на паметта, периферните контролери и др. В повечето случаи това просто означава осветяване на физически RST проводник, както показа AndrejaKo по-горе.
  • След това компютърът се зарежда. Това е частта „изпълнявайте действия по подобен начин на студено зареждане“. Дънната платка изпълнява същите стъпки, както би станала, ако захранването току-що беше станало готово след натискане на бутона за захранване.

Крайният ефект от тези две стъпки (които всъщностразбийте се на много повече стъпки) е, че изглежда на всичко, точно както компютърът току-що се зареди, но мощността всъщност беше през цялото време. Това означава по-малко време, необходимо за изключване и стартиране (тъй като не е необходимо да чакате захранването да стане готово) и важно е, че стартирането на стартирането ще бъде стартирано чрез изключване на операционната система. Това означава, че не е необходимо да се използва друг стартиращ тригер (WoL и т.н.) и ви позволява да използвате Reboot като ефективен начин за нулиране на системата от разстояние, когато нямате начин да задействате зареждане.

Това беше дълъг отговор. Но ей, дано сега знаете повече за управлението на захранването на компютъра. Със сигурност научих някои неща, изследващи това.


Имате какво да добавите към обяснението? Озвучете в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange, работещи в технологиите? Вижте цялата дискусионна тема тук.</ P>