• 浠嬬粛 首页

    每月发放黑科技,美帝要制裁我?

  • 阅读设置
    第216章 雷俊:老师我有个问题。(1/2)
    “下午是实操环节,大家可以带着自己的问题来,我们现场调试、现场解答。”

    卢为冰说完,侧身让出讲台,陈洋走上来,打开电脑,投影幕布上出现了一张深蓝色的幻灯片。

    “各位好,我是陈洋。”他推了一下眼镜,目光扫过全场。

    “深蓝系统从S1到S3,一共经历了一个大版本和两个小版本的迭代。

    我今天不讲细节,讲思路。”

    他按了一下翻页笔,屏幕上出现了一张时间线图,从2008年9月到2009年10月,标记了三个关键节点。

    “S1发布的时候,我们在做一件没有人做过的事,把一个智能操作系统塞进联发科mtK6225这种主频不到200mhz的芯片里。

    当时市面上的主流观念是,智能机系统需要至少400mhz以上的处理器才能流畅运行。

    但我们做到了,在mtK6225上跑深蓝系统1.

    0,第一次实现了多任务。”

    台下响起一阵低低的议论声。

    坐在第三排的一个天语工程师小声跟旁边同事说:“那时候我们还在用mtK做功能机,完全没想到还能跑智能系统。”

    陈洋等议论声平息后,继续翻到下一页。

    “S2我们换到了mtK6268,246mhz的cpU跑wcdmA协议栈,再加上深蓝系统1.

    5的多任务调度,这套方案在当时是唯一的。

    市场上没有任何一款246mhz处理器能同时跑3G协议栈和智能操作系统,除了我们。”

    “为什么能做到?”他切换了一张幻灯片,上面是一张对比表格。

    “因为深蓝系统的任务调度器是事件驱动的,不是时间片轮转的。

    安卓的任务调度器是基于Linux内核的cFS完全公平调度器,适用于通用计算场景,但在移动设备上,这种调度器天然存在三个问题。”

    屏幕上的对比表格,左边是安卓,右边是深蓝,逐行列出了差距:

    “第一,响应延迟。

    安卓的cFS调度器为了保证公平性,会频繁进行上下文切换,每次切换都有微秒级的开销。

    在后台任务多的时候,前台应用的响应延迟会被拉高。

    深蓝的事件驱动调度器不做时间片轮转,只响应中断和事件。

    没有后台任务排队的时候,前台应用能独占cpU资源,响应速度更快。

    第二,内存管理。

    安卓应用是用Java写的,运行在dalvik虚拟机上,Gc垃圾回收机制会不定期触发。

    每次Gc都会暂停所有线程几毫秒到几十毫秒不等,用户感知到的就是卡顿。

    深蓝应用用c/c++原生开发,没有虚拟层,没有Gc暂停,内存管理是手动控制的。

    第三,电源管理。

    安卓的电源管理策略基于Linux内核的wakeup机制,任何一个应用都可以申请wakeup锁,后台应用锁住cpU导致耗电增加。

    深蓝系统没有后台wakeup机制,所有后台任务都走推送通道,系统会在没有任务时进入深度睡眠状态。”
    本章未完,请翻下一页继续阅读.........