我需要用我的家用 PC 制作类似迷你服务器的东西来满足我的需要。然而,由于 电脑在卧室里,我不希望它一直嗡嗡作响。
我记得在睡眠模式下,RAM 是通电的。同时,处理器可以执行最少的工作(?)。
我需要做的就是解析简单的小数据包并发回响应(或者在需要完成繁重的工作时唤醒 PC。是的,由于某种原因,简单的局域网唤醒不起作用)。
有什么办法可以让电脑在睡眠中执行代码?或者至少每隔一段时间醒来,执行代码并入睡?(它是否以某种方式 Windows 用于他们的更新)。
我需要用我的家用 PC 制作类似迷你服务器的东西来满足我的需要。然而,由于 电脑在卧室里,我不希望它一直嗡嗡作响。
我记得在睡眠模式下,RAM 是通电的。同时,处理器可以执行最少的工作(?)。
我需要做的就是解析简单的小数据包并发回响应(或者在需要完成繁重的工作时唤醒 PC。是的,由于某种原因,简单的局域网唤醒不起作用)。
有什么办法可以让电脑在睡眠中执行代码?或者至少每隔一段时间醒来,执行代码并入睡?(它是否以某种方式 Windows 用于他们的更新)。
不,直到计算机梦见电羊,并且在ACPI 的所有 S * 状态下(“S0”不算在内),处理器都无法做任何工作,
S3尤其是处理器的电源处于关闭状态。发生状态退出的中断处理独立于 CPU 执行。但这很有可能:这个想法是在RTC BIOS 中打开闹钟,在中断时,唤醒将发生。
对于 x86,intel 的文档中描述了低级接口:
可以在 linux 源代码中找到寄存器设置的实现示例:
cmos_set_alarm从文档中可以看到,Intel 的实现只允许你以闹钟格式(HH:MM:SS)设置唤醒时间,这不允许你将启动延迟超过 24 小时。
在 Linux 上,作为第一个近似值,直接从用户空间管理所有这些非常容易,只需将 unix 格式的唤醒时间写入适当的文件并进入睡眠状态就足够了:
然后它只剩下将它包装在一个循环中,弄清楚要做什么以及退出循环的条件(例如,如果事实证明唤醒发生得比定时器预期的早)并且树桩已准备好。
win和其他系统有什么接口,我不知道。
来自答案的使用信息:唤醒计时器如何工作?