openKylin“分级冻结”机制,让系统体验更顺滑!
2022-11-02 14:18:36OSCHINA
2022-11-02 14:18:36OSCHINA
在传统 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 家产业同仁和行业机构。