在传统Linux操作系统中,应用进程的生命周期主要由应用本身直接控制。然而,系统资源(包括CPU、I/O、存储等)是有限的,当我们运行大量的I/O密集型或CPU密集型应用时,经常会出现系统卡顿甚至“假死机”的现象,这大大影响了用户的操作体验。为此,我们在openKylin操作系统中设计了“分级冻结”机制,管控应用生命周期。
什么是“分级冻结”机制?
“分级冻结”机制是指,在操作系统中,针对处于不同状态的应用进行“分级”处理,以某种特殊方式“冻结”用户未操作应用,从而释放系统资源(如CPU、磁盘I/O、内存等),优先保障用户当前操作应用的资源分配,提升用户体验。
“分级冻结”机制等级划分
在openKylin操作系统中,我们将应用分为以下级别:
1.焦点应用
表示当前正在操作的应用,一般情况下,不对其做资源限制,充分保证其流畅度。
2.前台应用
只存在PC模式下的状态,表示当前运行的未最小化但没有获得焦点的应用。
3.后台应用
PC模式下指窗口最小化状态且持续时间≤30min或者前台应用持续时间≥30min的应用;
平板模式下指非当前打开且持续时间≤30min的应用进程。
4.缓存应用
指处于不可见状态且持续时间>30min的应用。
5.休眠应用
被冻结并且放入swap分区的应用。
其中,各级应用的状态时序转换如下图所示:
“分级冻结”机制的特征
基于上述应用分类,openKylin实现了以下特性:
1.单实例启动
平板模式下应用以单实例的方式启动,并会记录每个应用的启动状态,由系统接口统一实现,而不需要应用单独适配。
2.后台资源实时调控
针对后台应用,当系统剩余资源达到我们预定的阈值时,根据系统策略和用户设置进行相应的资源调控,从而降低系统的功耗,提升前台应用的流畅性。
3.应用级休眠
特定条件下将应用完全冻结,节省CPU和内存资源。
4.多媒体协议扩展支持
针对影音等多媒体应用,实现后台暂停/播放功能,让用户更灵活地掌控娱乐。
openKylin“分级冻结”机制,不仅能进一步提升系统性能,给用户提供一个更流畅的使用环境,也为国产操作系统带来一个新的优化创新思路。而接下来,openKylin将持续的投入“分级冻结”机制的研发和优化,助力国产操作系统的快速发展。
openKylin(开放麒麟)社区旨在以“共创”为核心,在开源、自愿、平等、协作的基础上,通过开源、开放的方式与企业构建合作伙伴生态体系,共同打造桌面操作系统顶级社区,推动Linux开源技术及其软硬件生态繁荣发展。
社区首批理事成员单位包括麒麟软件、普华基础软件、中科方德、麒麟信安、凝思软件、一铭软件、中兴新支点、元心科技、中国电科32所、技德系统、北京麟卓、先进操作系统创新中心等13家产业同仁和行业机构。