aze*_*ati 3 suspend power-management hard-drive
我想知道在 Ubuntu 中挂起究竟是如何进行的,
当机器进入挂起状态时,内核会冻结(停止)用户空间程序和内核线程。然后内核将遍历所有设备并调用每个驱动程序上的挂起方法。每个驱动程序都知道如何将硬件置于深度睡眠状态(甚至关闭电源)(相反,在恢复发生时将其恢复到正常运行状态)。此时硬件应该处于低功耗状态(因此硬盘将被关闭)。
内核唤醒代码地址写入 ACPI FADT 表指定的地址,然后写入 x86 电源管理控制寄存器;这有效地关闭了处理器,但将内存保持在自刷新模式。
当恢复发生时,CPU 重新启动,在固件 (BIOS/UEFI) 中的一小段时间后跳转到内核提供的唤醒地址,内核跳回保护模式并恢复其状态。然后它遍历驱动程序,这些驱动程序恢复所有设备。然后冻结的进程被解冻,内核返回到用户空间。
所以回答你的问题:
1 和 2:设备驱动程序尝试将设备置于最深睡眠状态,有些设备可以断电,有些可能只是处于深度睡眠状态,消耗很少的电量。这取决于硬件和设备驱动程序。
内存正在刷新,它永远不会断电。CPU 已有效停止,但实际完全关闭电源的数量取决于 CPU 型号。
移除交流电源,然后运行:
sudo apt-get install fwts
sudo fwts s3power --s3power-sleep-delay=1800
Run Code Online (Sandbox Code Playgroud)
..等待 1800 秒(30 分钟),它应该重新开机并给出估计值。
| 归档时间: |
|
| 查看次数: |
1350 次 |
| 最近记录: |