Wakeup events framework
系統(tǒng)處于 suspend 狀態(tài),可通過 wakeup events 喚醒。具體的 wakeup events 可以是按鍵按下,可以是充電器插入等。但是,如果在 suspend 的過程中,產(chǎn)生了 wakeup events,怎么辦?答案很肯定,“wakeup”系統(tǒng)。由于此時(shí)系統(tǒng)沒有真正 suspend,所以這的“wakeup”是個(gè)假動(dòng)作,實(shí)際上只是終止 suspend。
但由于系統(tǒng)在 suspend 的過程中,會(huì)進(jìn)行 process freeze、 device suspend 等操作,而這些操作可能導(dǎo)致內(nèi)核或用戶空間程序不能及時(shí)獲取 wakeup events,從而使系統(tǒng)不能正確 wakeup,這就是 wakeup events framework 要解決的問題:system suspend 和 system wakeup events 之間的同步問題。
同步問題包括兩種情況:
情況1:內(nèi)核空間的同步
wakeup events 產(chǎn)生后,通常是以中斷的形式通知 device driver。driver 會(huì)處理events,處理的過程中,系統(tǒng)不能 suspend。
情況2:用戶空間的同步
一般情況下,driver 對(duì) wakeup events 處理后,會(huì)交給用戶空間程序繼續(xù)處理,處理的過程,也不允許 suspend。這又可以分為兩種情況:
1)進(jìn)行后續(xù)處理的用戶進(jìn)程,根本沒有機(jī)會(huì)被調(diào)度,即該 wakeup events 無法上報(bào)到用戶空間。
2)進(jìn)行后續(xù)處理的用戶進(jìn)程被調(diào)度,處理的過程中(以及處理結(jié)束后,決定終止 suspend 操作),系統(tǒng)不能 suspend。
-
嵌入式
+關(guān)注
關(guān)注
5146文章
19597瀏覽量
316219 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1415瀏覽量
41251 -
Linux
+關(guān)注
關(guān)注
87文章
11496瀏覽量
213244 -
按鍵
+關(guān)注
關(guān)注
4文章
227瀏覽量
58005
發(fā)布評(píng)論請先 登錄
.NET Micro Framework簡介
.Net Micro Framework 快速入門
sushu---Actor Framework基本介紹
Actor Framework 生成exe,啟動(dòng)文件“Launch.vi”無法調(diào)用出UI界面,請問這是為什么?如何解決?
net framework 2.0 下載
.NET Framework 高級(jí)編程

基于Microsoft .NET Framework的OPC
A proposed framework for measu

Meter Design for Power Failure Events
Linux電源管理總體框架及實(shí)現(xiàn)原理

專題分綱目錄 Android Framework 電源子系統(tǒng)

Android Framework 電源子系統(tǒng)(06)電池管理

在LabVIEW中創(chuàng)建Actor Framework的同步消息
SystemVerilog里的regions以及events的調(diào)度

評(píng)論