解密创新,分级冻结背后的故事!
操作系统中系统资源如CPU、内存和磁盘I/O都是有限的,当运行I/O密集型、CPU密集型应用和使用大量应用时经常会出现系统卡顿,应用运行缓慢甚至被“杀死”的现象,这大大影响了用户的体验性,为解决这一问题,openKylin“分级冻结”技术应运而生,以保证系统的稳定性和流畅性。
一、什么是分级冻结?
openKylin“分级冻结”技术会根据应用的不同状态进行分级处理,对不同状态下的应用进行CPU、内存和磁盘I/O等资源限制,以保障系统的稳定性和当前使用应用的流畅性。
二、解决的实际场景
openKylin“分级冻结”技术在一定程度上能够平衡系统资源,提升当前使用应用的流畅度,例如:在系统资源紧张时,提升当前应用窗口进行拖拽的流畅度和播放视频的流畅度。
场景一:系统资源紧张时,拖拽应用窗口。
- 未使用分级冻结:视觉效果明显卡顿,有重影出现。
- 使用分级冻结:视觉效果丝滑,比较顺畅,无卡顿现象。
场景二:系统资源紧张时,播放视频,例如:浏览器播放视频,腾讯会议进行视频会议。
- 未使用分级冻结:视频画面有卡顿现象。
- 使用分级冻结:视频画面比较顺畅、无卡顿现象。
三、技术要点
第一点:分级冻结如何进行资源限制?
“分级冻结”主要是通过cgroup技术来实现资源限制的。cgroup(Control Group)是Linux操作系统中用于资源控制和隔离的一种机制。cgroup将一组进程组织在一起,并为该分组中的进程分配资源,实现系统资源的控制和管理。cgroup技术,具备以下功能:
- 资源限制:可以根据需求为进程组分配特定的资源,如CPU使用量、内存使用量、磁盘I/O带宽等。这样可以防止某个进程或任务占用过多的资源导致系统性能下降或其他任务无法正常执行。
- 资源统计和监控:cgroup可以收集和记录进程组的资源使用情况,包括CPU使用时间、内存使用量等。这样可以进行资源统计和监控,了解系统各个进程或进程组的资源消耗情况,从而进行性能优化。
- 资源优先级管理:通过设定不同进程或进程组的资源优先级,可以实现资源的公平共享和优先分配。
- 资源隔离:cgroup将不同的应用分组隔离开,使分组之间互不影响。
第二点:分级冻结如何保证系统组件的流畅性?
“分级冻结”将桌面环境组件与应用分别放进不同的分组中,避免系统资源相互竞争导致系统组件卡顿。
- 系统组件分组:系统组件进程,例如:桌面环境组件和session等进程。
- 应用分组:普通应用的进程分组。
第三点:应用分组是怎么划分的?
根据重要程度划分出以下分组:
- 重要应用分组:高频率使用的应用,例如:浏览器、腾讯会议和wps类办公应用,该分组内应用不受资源限制,也不会因为应用窗口状态的变化而导致应用分组改变。
根据应用窗口状态划分出以下分组:
- 焦点应用分组:当前正在操作的即获取焦点的应用,该分组内的应用不受资源限制。
- 前台应用分组:表示当前运行的未最小化但没有获得焦点的应用,该分组获得80%的资源份额。
- 后台应用分组:最小化的应用,该分组获得60%的资源份额。
- 缓存应用分组:最小化之后长时间不操作的应用,该分组获得40%的资源份额。
“分级冻结”技术通过上述分组方式与资源配置保障当前使用应用和重要应用获得了较多的资源,有助于提升当前使用应用的流畅度,保证重要应用不受其他应用的影响导致运行缓慢或者卡死。
四、openKylin“分级冻结”未来计划
- 支持系统资源紧张时提示用户开启分级冻结功能。
- 支持系统性能提升和功耗数据可视化显示。
- 支持负反馈、自适应的机制进行动态资源限制。
“分级冻结”技术为国产化操作系统开辟了新的思路,保障了系统的稳定性和流畅性,同时也提升了用户体验。希望广大爱好者在平时使用过程中多体验"分级冻结"功能,积极参与进来,为国产化操作系统贡献自己的一份力量。