操作系统多核架构交互浅析与系统"加减法"

  进入多核时代,主流操作系统对多核的利用,进程资源的管理也各有差别。就移动端设备言,苹果自家研发处理器,从不以内核数取胜。而近年来,arm处理器希望借增加内核数量来提高处理速度,提升用户交互效果。运行在多核架构上的操作系统以安卓为代表,安卓使用Linux内核对进程进行管理分配调度,而Linux内核对于多核的利用可简单的理解为将不同进程的线程放在不同内核的就绪队列上,虽然增大了程序间的并发访问量或吞吐量,但是线程间的同步、调度并不会随着内核数的增加成线性增加,反而会降低,安卓较苹果高配但游戏丢帧、卡顿现象不能完全归因于其采用虚拟机的设计架构。为增加对多核的利用,安卓对后台程序的管理,采用后台挂起不杀死的方式,与Linux设计目标为满足大量进程进驻内存时实时性调度要求对应,采用此策略的好处是进程间切换迅速,但移动端资源有限,内存电量消耗大,以及最重要的是以人机交互为主的操作系统,频繁应用间切换、同时运行多个应用的现象发生的概率是远远低于长时间使用一个应用,这便带来了进程管理策略上安卓与iOS最大的不同。

  在iOS上,进程对于后台的策略是唤醒后需重新加载,即保证了在用户使用一个进程时给予最大硬件资源的支持(与win8相似),基于此进程调度策略,苹果只是使用arm指令集但是自家设计芯片。就芯片来讲,增加内核数的成本小于重新设计,苹果放慢在内核数上增加的速度,即是对程序并行时硬件利用率的保证,从硬件上减少了多个进程间同步等待现象,当然,随着程序员今后对并行程序的编写以及对操作系统的不断改善,多核时代也必将在苹果平台出现,但就现在来讲,双内核+最大满足当前进程策略+有限移动平台资源,也使得iOS较安卓有更好的用户体验。WP系统,采用介于两者间的方法:固定后台加载的应用上限数。也反映出在手持设备上,用户不会再过多进程间切换的现象,不显示的将进程从后台移出,但会随着应用使用将先前使用的旧应用关掉,避免占据资源。

操作系统的加减法:

  对windows系统,从dos开始直到vista一直都是“加法”操作,每一次系统更新都要求硬件配置上的升级,拥有着属于自己的摩尔定律,但从win7 “减法”开始执行,旧电脑运行win7、win8会有更好的用户体验,对大应用的加载响应的拥有了更好的交互速度。更加友好的界面、操作与功能,不再是以高配作为驱动电脑的必要条件。不可否认的是微软为了解决来自自己早先作品的竞争---winXP---给出了更有竞争力的作品win7,重写的内核优化了进程的管理。Win8继承了win7的优点并进一步发展,作为新一代桌面系统虽饱受争议但从其设想,多少嗅到未来系统的发展方向。Vista是旧时代的结束,win8是新时代的开始,而win7,里程碑的记录着这个转变。

  安卓系统有着相似的发展过程,android2.2系统,以及android4.1系统分别标志着安卓系统的成熟以及“减法”的开始。从安卓系统诞生,在软件功能上的不断完善、硬件上的不断升级,直至android2.2才出现了一个适于使用的终端操作系统。乃至今日2.2版本在出货量巨大的安卓市场仍占大量份额(安卓各版本间可升级度差版本更新频繁,新版本占市场份额多由新增发货量带动),但2.2版本不过是其发展阶段中追赶领先者的中间产物。在对进程的管理,用户交互操作,以及发热量上存在较大问题,需要指出的是2.2版本是基于单核架构的操作系统,与之后的多核架构存在必然的代沟(内核对SMP的支持)。在发展与竞争中,对细节的把握逐渐深入,操作的更直接化,二级菜单提到桌面,缓冲技术的引入,手势操作预判等等应运而生的android4.1由“加”至“减”,但不可否认的是安卓的发展一直伴随着硬件的升级,好的用户体验、实时性响应不应过度依赖于硬件,应更多的从软件入手,从用户操作习惯、使用场景入手。当碎片问题所能引起的关注大于竞争市场份额,或是说竞争压力更多的来自于安卓系统内部时,相信谷歌也将像微软一样提供可以供统一升级的系统版本,也相信其里程碑的意义。

原文地址:https://www.cnblogs.com/sunshinewill/p/2971685.html