1.苹果电脑卡怎么办

2.为什么Windows/iOS操作很流畅,而Linux/Android却很卡顿呢?

3.苹果电脑自带系统会卡吗?

4.苹果电脑会越用越慢吗?

苹果电脑系统比安卓慢吗,苹果电脑系统和安卓系统的区别

苹果系统和安卓系统是目前市场上最为流行的两种手机操作系统。本文将从稳定性、用户体验、安全性、生态系统、自由度、个性化、应用商店和价格等方面对两种系统进行对比,帮助用户更好地了解它们的优缺点。

稳定如山

苹果系统很少让你崩溃,让你的工作生活更流畅。

用户体验王者

苹果系统的界面简洁美观,一滑一触间,世界在手。

安全堡垒

苹果系统的安全功能和隐私保护,让你无后顾之忧。

生态绿洲

苹果设备间无缝衔接,应用商店里的每一款应用都为你精心挑选。

自由飞翔

安卓系统给你无限可能,想装什么就装什么。

个性由你

安卓系统支持主题、字体、桌面等个性化设置,让你打造独一无二的手机。

应用宝库

安卓系统的应用商店拥有海量应用,很多还是免费的哦!

价格亲民

安卓手机价格更接地气,轻松拥有科技生活。

苹果电脑卡怎么办

渲染机制不同

Android没有iOS流畅的根本的原因是,iOS的UI渲染采用实时优先级,而Android的UI渲染遵循传统电脑模式的主线程普通优先级。

通俗点说就是iOS对屏幕反应的优先级最高,用户只要触摸屏幕,系统就会最优先处理屏幕显示这个层级,马上给出动画效果,然后才处理媒体、服务、核心的架构。

而安卓则是追求进程优先,触摸屏幕后的手机屏幕显示和动画效果放在比较后的优先级。同样打开相同的网页,Android手机就会直接将整个网页全部加载同时渲染HTML,这无疑就增加了处理器的压力。因此对于Android来说,一个高效的双核处理器是很重要的。

在iOS中UI渲染过程具有绝对的优先等级,当用户接触到iPhone的触摸屏后,iOS中所有的进程都将停止,UI线程拦截了所有的事件,系统会将所有资源用于渲染UI过程,以保证用户界面的实时渲染优先级。

而在Android系统中UI渲染过程的优先级别却没有那么高,也就是说当你触摸Android手机屏幕的时候,系统后台的程序并没有停止,仍然在继续运行之中,比如下载和查收短信,这样系统UI获得的资源就不够,这就是Android系统不流畅的原因。

后台机制不同

安卓手机的后台是真后台,像PC一样,将应用保留在RAM中,当使用HOME键退出应用时,程序实际上并没有完全退出,而是被系统挂在了后台,为何我们关掉了聊天软件依然能够收到消息通知,因为它常驻系统内存。包括平时收到的一些垃圾广告推送,也是因为后台有程序运行。

所以这就导致了一个现象,从内存使用上来看,安卓刚开机时内存使用很低,若不进行清理内存操作,正常使用一天,内存占用会达到75%以上。而内存占用越高,使用起来流畅度就会越低,所以安卓机器需要更大的RAM来提升用户体验。

而iOS呢,其实是采用的伪后台,当用户HOME键退出应用时,iOS其实关闭了程序,只保留应用的图像入口,只会默认将应用的最后的运行数据记录在RAM中。

之所以iOS也能收到推送,是因为当用户从应用中选择开启推送之后,系统会增加一些进程,这些进程会从苹果服务器接收信息,然后再通过服务器发给用户,苹果服务器在这里是起到了中转的作用。而正是因为有了这一系列的机制,所以即便iPhone的配置相比于同类安卓机低了很多,但是iOS还是会给人更加流畅的感觉。

iPhone执行程序的效率比安卓机高

另外,安卓系统的编程语言是Java,特点是通用性强,效率低。而iOS的则为Objective-C,专一性强,效率高。

iOS系统本身优化得很好,而且程序也是直接执行,所以效率很高。而安卓系统是通过Java虚拟机来执行,系统需要占用大量内存来换取执行速度,也就是要绕了个大圈才执行程序,所以效率低很多。

为什么Windows/iOS操作很流畅,而Linux/Android却很卡顿呢?

1.苹果mac电脑很卡怎么办

不管是什么电脑,只要用的时间长了,多多少少都会有一些问题,更容易发生故障。

有时候电脑变慢了,并不是暗示你要买新机的信号。电脑变慢有很多原因,只有在知道原因之后你才能够对症下药,让电脑重新恢复活力。

那么,Mac电脑变卡变慢怎么办呢?看看网友带来的Mac电脑卡顿解决办法。不实用的动画没有必要的动画会拖慢你的 Mac,影响整体的体验,因为相关资源被占用,这些资源原本是应用在其他更重要的任务上。

要修复这个问题,你需要做的是,选择 System Preferences(系统偏好)——Dock,关系相关选项,比如“Magnification”。图形处理器额外负载旧款机型,尤其是 2012 年以前的机型在处理大量任务的时候,可能会不堪重负。

不幸的是,OSX 有许多动画,这些会塞满了你的 Mac。把透明度调低是减轻负荷的最容易的办法,而且能够确保 Mac 用起来更加流畅。

操作方法:设置——Accessibility ——减少透明度Safari 被网络数据影响Safari 存储许多数据,其中很多都是无用数据,用户使用过一次之后,往往不会再使用这些数据。这些多余的数据会拉低用户的浏览体验。

要加速 Safari 的速度并不难,打开应用,在菜单栏中点击“Safari”,选择“清空历史和网页数据”。虽然这样一来,网站保存的密码和用户名也会被清除,但是浏览器速度更快了。

没有足够的 RAM升级 RAM 是一个很彻底的解决方案,尤其是对 Macbook Air 来说。如果你真的想要“重振”你的 Macbook Air,那么升级 RAM 是一个很值得的解决方案。

需要大家注意的是,RAM 往往都比较贵,尤其是优质 RAM,所以大家在选择的时候需要先做个了解。另外,还要选对型号,如果选错,比如笔记本用的 RAM,却买了桌面电脑用的,这样可能会导致 Mac 损坏。

此外,更换 RAM 还需要技巧和工具,如果你不会,可以请朋友帮忙。不想用的程序占用中央处理器资源如果你发现你的电脑开始变慢了,打开 Activity Monitor,你会看到电脑上的进程程序,然后选择用不到的程序,停止这一程序。

不过,在停止程序的时候,大家也要注意,因为不小心停止一个关键程序,可能会导致你的 Mac 崩溃。如果是停止多余的,用不到的程序,比如 Chrome,那倒是可以加快电脑的处理速度。

损坏的硬盘驱动硬盘驱动的问题通常是看不见的,然后会导致 Mac 的一系列问题。苹果有一个程序叫做“Disk Utility”,它可以浏览你的驱动,并检查是否出现问题。

当它检测到严重问题时,Disk Utility 会给你提供处理的建议。苹果支持页面上有一篇关于 Disk Utility 如何给你提供帮助的文章。

一台过于劳累的 Mac电脑和人一样,也会疲于工作,给你的 Mac 放假几天也是好事。如果你的 Mac 变慢了,你第一步就是需要“重启大法”。

这和感冒了,第一步先喝热水一样。过时的应用使用过时的应用从来都不是明智的做法,让你的 Mac 保持快速最好的方法之一就是定期检查和安装软件更新。

OS X 10.6 版的 Mac App Store 可以很方便的帮助用户检查应用是否已经过时。 OS X 10.10 中的 Mac App Store 也可以看到更新。

虽然应用有新版本的时候,OS X 会提供通知,但有时候通知的时间不对,容易被用户忽略。太多的登录账号你 Mac 变慢的的其中一个原因是,可能用户有超过 10 个不同的程序自动加载。

解决方法如下:设置——用户账户——登录项目——取消那些不需要在一开机使用就自动加载的程序。或者也可以这样,在 Dock 上的应用右击,选择“Options”,然后取消选择“Open at Login”即可。

不需要的应用如果你的 Mac 有点年纪了,硬盘驱动也有点老旧,那么你应该考虑删除一些占空间的应用。由于旋转硬盘的机制,应用占据的空间如果能够被腾出来,那么电脑的速度将会加快许多。

删除应用的方法:Finder》应用程序》将应用移除到垃圾桶。请注意,不要把重要的应用移除。

不使用的插件有一些插件即使不使用,它也会在后台默默运行,占用有价值的资源。如果你需要关闭或者删除这些插件,请前往插件面板,关闭或者移除插件,释放被占用的资源。

我们上面介绍的方法适用于你的 Macbook 使用 2 年多,但是已经出现变慢的迹象的时候使用。如果你手中的Macbook已经使用多年,希望换一台新的 Macbook 获得最新鲜快速的体验,那么你也可以购买新款Macbook。

或者也可以考虑入手苹果最新发布的 iPad Pro,它是一款混合产品,可同时满足用户休闲和商务办公的需求。拆卸键盘之后,iPad Pro 可以充当大屏幕平板使用。

装上键盘之后,它就变成一款能力与 Macbook 比肩的笔记本,无论你是编辑 4K 视频,设计演示文稿,还是管理企业事务,它都能帮你轻松完成。

2.苹果电脑用久会卡吗

苹果笔记本系统会不会卡取决于安装的是什么系统。

第一、如果使用的是苹果的Mac OS系统,那么长时间使用也不会出现卡机这种情况,苹果系统在这方面的优化非常优秀,如果卡机,原因一定是运行程序过多造成的。

第二、由于后来苹果支持了Windows系统,所以出现了很多苹果笔记本使用了此系统。Windows在苹果机上的运行跟在其他机器上面使用是一样的,也就是使用久了之后就会因为程序分布和数据调用分散而越来越慢。

Windows系统卡机后最有效的解决方法就是重装系统,所以建议在新机的时候做好备份,在有需要的时候恢复备份是最好的选择。

扩展资料

Windows采用了图形化模式GUI,比起从前的Dos需要输入指令使用的方式,更为人性化。随着计算机硬件和软件的不断升级,微软的 Windows也在不断升级,从架构的16位、32位再到64位。

系统版本从最初的 Windows1.0到大家熟知的

Windows95、Windows98、Windows2000、Windows XP、Windows Vista、Windows7、Windows8、Windows8.1、Windows10和 Windows Server。

服务器企业级操作系统,不断持续更新,微软一直在致力于Windows操作系统的开发和完善。

3.苹果电脑为什么不卡

苹果不算是高配置为什么不卡

你好,安卓系统和苹果系统存在很大区别。总的来说,区别在于三方面:系统架构,开放性和使用体验。

1.你后一句说的是你用的安卓也不卡,那么我只从“卡不卡”方面上来简单描述一下区别(也就是使用体验上的区别):

安卓系统采用的是多任务方式,而苹果则是伪多任务,即后台不能运行任务。举个例子,你用Zaker(阅读软件)来下载报纸。那么在安卓系统中,此时你切换至微信聊天,Zaker还会继续下载,但是在苹果系统中,切换至微信聊天后,下载便会暂停。

也正是因为一个有安卓是多任务,而苹果系统不支持多任务,所以苹果系统基本不存在卡顿问题,而安卓系统便出现了卡顿问题。

安卓的流畅性更考验硬件、要达到和苹果系统同样效果,一般硬件要高过苹果系统1.5到2倍。

你的安卓手机会在使用一段时间之后出现卡顿。或者在运行多个软件的时候出现卡顿。但是最近安卓4.4已经出来了,它采用了全新的虚拟机结构,官方宣称这会和之前的安卓系统大不同,在流畅性上大幅度提升。

2.系统架构的区别:

安卓系统是linux架构苹果ios系统是unix系统

linux系统是UNIX 操作系统的一个克隆版本。

UNIX 操作系统是美国贝尔实验室的肯·汤普逊Ken.Thompson和丹尼斯·里奇Dennis Ritchie 于1969 年夏在DEC PDP-7 小型计算机上开发的一个分时操作系统。

3.开放性的区别:

Linux 和 UNIX 的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知 识产权保护的传统商业软件。这应该是他们最大的不同。

UNIX 系统大多是与硬件配套的,而 Linux 则可运行在多种硬件平台上。

UNIX 是商业软件,而 Linux 是自由软件,免费、公开源代码的。

安卓系统本源系统是抄袭苹果的本源系统。

苹果系统比安卓系统更安全。

4.为什么mac电脑很卡 反应很慢怎么办

1、对于一些早期购买的 Mac 电脑,硬件的性能都不及当前的 Mac 电脑,所以在当下运行的话,尤其是在升级了最新的系统以后,会越发的慢。

2、内存容量太小:内存容量的大小关乎着电脑整体运行的速度,当同时打开的应用软件多了以后,内存就会不够用,导致电脑的运行速度缓慢。如果一些早期的 Mac 电脑,可以考虑通过增加内存来解决运行速度缓慢的问题。

3、硬盘速度:同样地,对于早期的 Mac 电脑采用的是传统的机械硬盘,速度肯定是要比当前 Mac 上配置的 SSD(固态硬盘)要慢很多。硬盘速度了会体现在开机,关机,以及打开应用上。如果可以的话,可以考虑添置一块 SSD 硬盘来解决。

4、如果能一并解决内存与硬盘的问题,对于 Mac 电脑在速度上肯定会有很大的提升。

5.苹果平板电脑经常严重卡顿,死机

首先, 我建议您到电脑城去清理灰尘,价格可能稍微高点50元起吧。

苹果平板电脑死机的原因:

1.ipad已越狱,损坏系统文件。

2.软件与系统版本不兼容。

3.系统版本BUG问题。

如果ipad已越狱,且经常性死机,建议恢复系统。

操作为:

第一步:电脑登陆苹果官网下载itunes,安装完毕后打开。

第二步:把ipad用数据线与电脑连接起来。

第三步:先请长按ipad顶部的电源键,待出现关机界面后,滑动关机。

第四步:接着请按住电源键开机,这时屏幕会出现苹果标志,不要松开电源键。

第五步:随后再按住主屏 Home 键,直到屏幕黑屏。

第六步:屏幕黑屏时,请松开电源键,主屏 Home键不要松开,直到电脑端的 iTunes 出现检测到一个处于恢复模式的 ipad:

6.为什么我家的Apple电脑很卡

有很多人,都说自已的计算机如何慢、如何慢,其实令自已的计算机慢的原因,如果将所有原因算出来,简直多的是!不过我会在这里简介一下令计算机慢的主因! 1、在开机时加载太多程序 2、桌面上开启桌布 3、没有定期清理硬磁盘和重组硬磁盘 以下的,我就会很详细地说明一下如何加速计算机和令计算机慢的病征!解决七大常见影响计算机表现的原凶当计算机忽然慢下来时,你可能会怀疑自己是否做错了甚么而引致损害了计算机?其实不必太介怀,因为一个小小改变,都可能会影响到计算机运作表现,而且在使用计算机的过程中,无可避免地都会引起各种些微的改变。

任何问题总有方法可以解决的,就让我细细道出七大常见影响计算机表现的原因,解决了它们之后,便可以安心享用计算机的高性能。 4、删除常驻程序 何谓常驻程序呢?常驻程序就是在开机时加载的程序,而那些程序就叫做常驻程序。

常驻程序不但拖慢开机时的速度,而且更快地消耗计算机资源以及内存,但你可能会问:那些程序全都有用的耶!那我可以答你的就是:你想要那些有用的程序来牺牲速度,还是不要那些程序来回复速度呢?自己想一想吧!一般来说,如果想删除常驻程序,可去"启动"清单中删除,但如果想详细些,例如是icq、popkiller 之类的软件,是不能在"启动"清单中删除的,要去"附属应用程序",然后去 "系统工具",再去"系统信息",进去后,按上方工具列的"工具",再按"系 统组态编辑程序",进去后,在"启动"的对话框中,就会详细列出在启动电 脑时加载的常驻程序了! 5、桌面上不要摆放桌布和关闭activedesktop 不知大家有否留意到,我们平时一直摆放在桌面的桌布,其实是很浪费计算机资源的!不但如此,而且还拖慢计算机在执行应用程序时的速度!本想美化桌面,但又拖慢计算机的速度,在这时,你是否会有一种"不知怎样"的感觉呢?还有一点,不知大家有否试过,就是当开启桌布时,每逢关闭一个放到最大的窗口时,窗口总是会由上而下、慢慢、慢慢地落,如果有这种情况出现,你必须关闭桌布!方法是:在桌面上按鼠标右键,再按内容,然后在"背景"的对话框中,选"无",建议在"外观"的对话框中,在桌面预设的青绿色,改为黑色。

至于关闭activedesktop,即是叫你关闭从桌面上的web画面,例如在桌面上按鼠标右键,再按内容,然后在"背景"的对话框中,有一幅桌布,名为windows98,那副就是web画面了!所以千万不要开启。依我所说,布只可拿四个字来形容,就是"红颜祸水"! 6、删除一些不必要的字型 系统运行得慢的其中一个原因,就是字型多少的关系!安装的字型愈多,就占用愈多的内存,从而拖慢计算机的速度!所以我们要删除一些不必要的字型。

要删除一些不必要的字型,你可到控制台,再进去一个叫"字型"的数据夹,便可删除字型,但,要怎样才知道,那些字有用,那些字没用呢?例如:如果你不常到 ms_dos模式的话,就删除dos 字型!因为各个人都可能喜爱某种字型,所以我也不能确定要删除那些 字型,不过我在此,有个秘决教你,如果你有华康粗黑字型,且又有新 细明体的字型,建议你删除华康粗黑字型,如果你有新细明体,且又有细明体,就删除细明体吧! 7、定期重组硬磁盘 计算机硬盘中最细小的单位是扇区,一个档案通常会占用若干扇区,每当硬盘用久了,无数次的新增、更改和删除档案后,就会造成很多断断续续的扇区,因而非连续性的档案便会愈来愈多,硬盘磁头便需要花更多时间跳来跳去来读取数据,这就导致硬盘速度减慢。有见及此,windows才会有"重组磁盘"出现。

只要执行"重组磁盘",所有非连续性的档案都会被重新编排得整整齐齐,至于执行时间,大约一星期左右执行一次便可了。 8、设定虚拟内存 硬盘中有一个很宠大的数据交换文件,它是系统预留给虚拟内存作暂存的地方,很多应用程序都经常会使用到,所以系统需要经常对主存储器作大量的数据存取,因此存取这个档案的速度便构成影响计算机快慢的非常重要因素!一般win98预设的是由系统自行管理虚拟内存,它会因应不同程序所需而自 动调校交换档的大小,但这样的变大缩小会给系统带来额外的负担 ,令系统运作变慢!有见及此,用家最好自定虚拟内存的最小值和最大值,避免经常变换大小。

要设定虚拟内存,在"我的计算机"中按右键,再按内容,到"效能"的对话框中,按"虚拟内存",然后选择"让自已设定虚拟内存设定值",设定"最小值"为64,因为我的计算机是32mbram,所以我就设定为64,即是说,如果你的内存是64mbram,那在"最小值"中,就设为128。顺带一提,在"效能"的对话框中,选择"档案",将原先设定的" 桌上型计算机",改为"网络服务器",是会加快系统运作的;还有,在"磁盘"的对话框中,不要选"每次开机都搜寻新的磁盘驱动器",是会加快开机速度的! 9、更改开机时的设定 虽然你已知道了如何新增和移除一些常驻程序,但你又知不知道,在开机至到进入win98的那段时间,计算机在做着什么呢?又或者是,执行着什么程序呢?那些程序,必定要全。

7.苹果电脑win10系统卡慢怎么办

1、右击我的电脑----属性

2、找到高级系统设置

3、点击“高级”选择栏----点击“设置”

4、选择"选择调整为最佳性能"然后应用确定

具体如下:

电脑常见问题解决

1、无法自动识别硬盘控制器

使用非正版的个别操作系统光盘,在安装系统时,容易出现此错误。原因是非正版光盘自动加载的硬盘控制器驱动不符合电脑自身需要的驱动。这种情况就建议换正版光盘安装操作系统。

2、手动更新错误的驱动程序

windows操作系统正常使用,但手动更新驱动程序把硬盘控制器的驱动程序更新错误,导致此故障。解决方法是进入windows系统高级菜单,选择最后一次的正常配置,即可正常进入系统。

3、bios设置变化后所导致

windows操作系统正常,但是由于某些原因,用户修改了bios设置,导致0x0000007b故障。

8.苹果MAC笔记本,系统特别卡

1、购买内存,根据你的电脑型号来购买内存条。

内存能让信息存在更快的记忆体中,从而加速程序运行速度。 2、确定已经安装的内存的容量,不同的电脑使用不同类型的内存。

3、把笔记本后盖打开,记住每一个螺丝对应的位置,因为各个螺丝的尺寸不同。 4、取出原来的内存,内存插槽两侧有金属卡榫,按下卡榫使内存条斜向弹出,然后夹住内存条把它拉出。

5、安装新内存,安装的角度与取出时的角度相同。先安装在低位插槽,后安装在高位插槽。

均匀用力把内存条推入插槽中。 6、重启电脑。

单击“Apple”菜单上的“关于本机”,验证安装是否正确。 。

苹果电脑自带系统会卡吗?

先说是不是,再问为什么。

我就知道有人会这么说,然而那样就成了一篇议论文了,而我只是想写一篇随笔。所以,不管事实是不是那样,反正我就是觉得Windows,MacOS,iOS都很流畅,而Linux,Android却很卡。当然了,这里说的是GUI,如果考量点换成是Web服务的吞吐和时延,那估计结论要反过来了,不过那是客户端程序感觉到的事,作为人,who cares!

我写这篇文章还有一个意思,那就是想牵引一个话题,如果我们想把Linux,Android(当然,Android内核也是Linux)优化到GUI不再卡顿,我们应该怎么做。

大概是去年,一个炎热的午后,吃过午饭我和同事们在公司附近晃悠,就讨论 “为什么苹果手机就不卡,安卓手机不管多贵都很卡。” 记得一位同事说,iOS在GUI方面做了很多的优化,而Android却没有。

这话说对了!不过更为重要的一点是, 不谈具体场景谈优化,都是瞎折腾!

Windows也好,iOS也好,都知道自己的应用场景,因此针对自己的应用场景做了优化之后,妥妥在自己拿手的场景下甩Linux在该场景下的表现几条街了。

下面开始正式的技术层面的分析之前,先声明几点:

1.本文并不是在说Linux系统总体上很卡顿,而只是说Linux系统桌面版的GUI程序相比Winddows很卡顿,如果真觉得本文是在喷Linux,那就当是喷Linux桌面的吧。

2.本文不准备讨论X window和Windows窗口子系统一个在用户态一个在内核之间的差异,这无关紧要。我的想法是,即便是你将X window扔进内核,现有的Linux内核处理GUI,该卡顿还是卡顿。

3.本文仅从调度算法的角度来评价为什么Windows/iOS不卡顿而Linux却卡顿,当然还有别的视角,但并不是本文主题。

4.Windows内核调度的线程而不是进程,但是本文统一采用进程这个术语,没有别的原因,只是因为进程的概念是和现代操作系统概念相始终的,而线程是后来的概念。

先看服务对象

# 仅此就将Windows,MacOS/iOS和Linux的使用场景区分开来:

* Windows/MacOS/iOS系统,主要是作,用来提供写文档,游戏,做报表,画图,上网浏览,视频播放等服务。

* Linux系统,主要提供网络服务,用来支撑各种远程的客户端,为其提供数据处理和查询,数据生成,数据存储等服务。

事实证明,Linux在其专业的领域已经做的足够好,但是问题是,为什么它在GUI处理方面却总是一直很糟糕呢?这就要看具体场景的差异了。

对于网络服务而言,其场景的行为是 可预期的 ,我们可以将这些场景简单归结为:

* 公平快速处理网络并发请求。

* 公平快速处理并发磁盘IO。

* 高吞吐CPU密集型数据处理与计算。

Linux优秀的O(1) O(1)O(1)调度器以及后来的CFS调度器可以非常完美的cover上述三个场景,至于说为什么,不必多说,简单归纳如下:

* 无论是O(1) O(1)O(1)的基于优先级的时间片轮转还是CFS的基于权重的时间配额,均可以既满足优先级的差别服务需求又保证高吞吐率,这些都来自于调度器本身而不是依靠频繁的切换。

* 额外的简单启发式奖惩机制可以让网络IO以及磁盘IO的响应度更高,同时又不影响CPU密集型计算服务的高吞吐。

上面的第二点是一个额外的辅助,照顾IO过程快速获得响应,这是一个非常棒的辅助,但是注意,再棒的启发式算法也总是辅助性的,提高响应度就是个辅助性的锦上添花的功能,以高吞吐为目标才是根本。

IO过程对于一台Linux服务器而言是与外界交互的唯一渠道,通过该渠道可以将处理好的数据送出到网络或者磁盘,同时从网络或者磁盘获取新的数据,换句话说, IO过程类似一道门。 但也仅仅是一道门。

照顾IO过程获得高响应度这件事是为了让门开得更大,通行效率更高!

熟悉Linux内核调度器变迁的都应该知道O(1) O(1)O(1)到CFS过渡的这段历史,即2.6.0内核开始一直到2.6.22为止的这些版本,采用Linux内核划时代的O(1) O(1)O(1)调度器,随后由于两个原因:

1、O(1) O(1)O(1)调度器动态范围太大或者太小。

2、IO补偿机制不到位,时间片分配不公平。

为了解决这些问题,Linux内核切换到了CFS调度器。

切换到了CFS调度器,事实上,人们更多指望的是CFS能够让进程时间片分配更加公平,多个进程运行更加平滑,如此一来,上GUI界面的话,岂不是就不卡顿了。

然而还是卡顿,本质原因是,场景根本就不对路子。

在Linux服务器的场景中,优先级和时间片是正相关的,无论是O(1) O(1)O(1)调度器的静态线性映射的时间片,还是CFS的动态时间配额,都是优先级越高的进程其每次运行的时间也就越久,但是实际上,这两者并不是一回事。

在更复杂的场景中,正确的做法应该是参考 时间管理的四象限法则 来设计进程调度器。其中:

* 优先级表示紧急性。

* 时间片表示重要性。

于是,如果不是因为Linux服务器场景过于单一简单,CPU的时间管理要复杂得多,比如调度器应该按照四象限法则设计成下面的样子:

1、处理重要且紧急事件的进程,需要赋予高优先级分配长时间片去抢占当前进程。

2、处理重要但是不紧急事件的进程,保持固有优先级分配长时间片就绪等待。

3、处理不重要但紧急事件的进程,提升优先级但不分配长时间片,处理完毕立即返回固有优先级。

4、既不重要也不紧急的后台进程,低优先级短时间片,系统闲了再调度。

后面我们会看到,Windows的调度器就是这般设计的。

我们先总体看看GUI系统的场景。

它的服务对象是人,和Linux的服务场景的行为可预期相反,人的操作是 不可预期 的!

Windows,MacOS/iOS这种Desktop系统的GUI进程,很多时候都是在等待人的进一步操作而睡眠,要么在等鼠标,要么在等键盘,要么在等声卡,显卡的输出,或者就是在将用户输入的信息往磁盘里写而等待IO完成,Desktop系统更多关注的是要对以上这些事件提供高效率的响应服务,而不是系统的数据吞吐。

Desktop在乎的是时延,而不是总吞吐,同时,这个时延还是区分对待的,有些时延的可容忍区间很大,比如网卡(网卡IO之所以优先级提升并不是很多,是因为首先网卡是有队列缓存的,而大多数的报文都是burst而来的,队列缓存可以平滑掉首包延迟,其次,由于光速极限,相比于网络延迟,主机调度延迟真的可以忽略不计。),有些却很小,比如键盘鼠标。所以说,Windows之类的Desktop系统 必须能够区分一个进程当前的紧急性和重要性。

# Linux内核能做到这种区分吗?

Linux可以通过计算一个进程的平均睡眠时间判定它是不是一个交互式IO进程,从而决定要不是给它一定的优先级提升,但是也仅能做到这个地步,因为Linux内核无法得到更进一步的信息。

Linux内核不知道一个进程到底是不是IO进程还是说仅仅在一个时间段内有IO行为的CPU密集型进程,Linux内核也不知道一个进程被唤醒是因为键盘的数据到了,还是无关紧要的信号到了,所以这一切,Linux内核只能 启发式预测。

Linux内核仅仅跟踪一个睡眠时间而且还是平均的睡眠时间,是区别不出进程当前的紧急性和重要性的。没有外界的信息输入,仅靠启发预测,当前的AI算法貌似还没有到这个境界吧。换句话说,启发算法是不准确的。你看看Linux内核O(1) O(1)O(1)调度器的sleep_avg是如何计算并如何参与动态优先级调整的,就会明白我上面说的意思。

既然Windows系统的GUI操作比Linux流畅,那么想必Windows肯定是做到了进程当前的紧急性和重要性的区分咯?那是当然。它是如何做到的呢?

虽然Windows的调度器也是基于优先级的,也是抢占式的,也是同优先级轮转的,这看起来和Linux并没有什么区别,甚至从4.3BSD开始,几乎所有的操作系统的调度器基本都是按这个思路设计出来的,仅仅从 如何选出下一个投入运行的进程 这个算法上看,几乎所有的操作系统调度器都是一样的。Windows与众不同的原因在于 其对优先级的不同处理方式。

自4.3BSD以来,所有的基于优先级的抢占式调度器的优先级计算都包括两部分因子,即固有优先级和动态优先级:

一直以来,

只是起到了 微调 的作用,而

才更具有参考意义,其比重更大。

Windows与众不同,其弱化了进程(其实应该是线程,但是我就统一写成进程吧,为了照顾不懂Windows内核原理的读者)的初始基优先级

,而强化了动态优先级

,更重要的是,动态优先级的值并非来自预测,而是来自于 事件 ,事件本身的紧急性反馈到了动态优先级的值,而事件本身的重要性则反馈到了时间片:

可以看出,Windows对于不同的事件定义了不同的优先级提升的具体数值, 将动态优先级的值和具体的事件做了精确的关联。

这些数值的定义上,甚至精细而贴心,详细的数值参见ntddk.h:

//

// Priority increment definitions.? The comment for each definition gives

// the names of the system services that use the definition when satisfying

// a wait.

//

//

// Priority increment used when satisfying a wait on an executive event

// (NtPulseEvent and NtSetEvent)

//

#define EVENT_INCREMENT 1

//

// Priority increment when no I/O has been done.? This is used by device

// and file system drivers when completing an IRP (IoCompleteRequest).

//

#define IO_NO_INCREMENT 0

//

// Priority increment for completing CD-ROM I/O.? This is used by CD-ROM device

// and file system drivers when completing an IRP (IoCompleteRequest)

//

#define IO_CD_ROM_INCREMENT 1

//

// Priority increment for completing disk I/O.? This is used by disk device

// and file system drivers when completing an IRP (IoCompleteRequest)

//

#define IO_DISK_INCREMENT ? 1

//

// Priority increment for completing keyboard I/O.? This is used by keyboard

// device drivers when completing an IRP (IoCompleteRequest)

//

#define IO_KEYBOARD_INCREMENT ? 6

//

// Priority increment for completing mailslot I/O.? This is used by the mail-

// slot file system driver when completing an IRP (IoCompleteRequest).

//

#define IO_MAILSLOT_INCREMENT ? 2

//

// Priority increment for completing mouse I/O.? This is used by mouse device

// drivers when completing an IRP (IoCompleteRequest)

//

#define IO_MOUSE_INCREMENT ? 6

//

// Priority increment for completing named pipe I/O.? This is used by the

// named pipe file system driver when completing an IRP (IoCompleteRequest).

//

#define IO_NAMED_PIPE_INCREMENT 2

//

// Priority increment for completing network I/O.? This is used by network

// device and network file system drivers when completing an IRP

// (IoCompleteRequest).

//

// 网卡IO之所以优先级提升并不是很多,是因为首先网卡是有队列缓存的,而大多数的报文都是burst而来的,队列缓存可以平滑掉首包延迟,其次,由于光速极限,相比于网络延迟,主机调度延迟真的可以忽略不计。

#define IO_NETWORK_INCREMENT 2

//

// Priority increment for completing parallel I/O.? This is used by parallel

// device drivers when completing an IRP (IoCompleteRequest)

//

#define IO_PARALLEL_INCREMENT ? 1

//

// Priority increment for completing serial I/O.? This is used by serial device

// drivers when completing an IRP (IoCompleteRequest)

//

#define IO_SERIAL_INCREMENT 2

//

// Priority increment for completing sound I/O.? This is used by sound device

// drivers when completing an IRP (IoCompleteRequest)

//

#define IO_SOUND_INCREMENT ? 8

//

// Priority increment for completing video I/O.? This is used by video device

// drivers when completing an IRP (IoCompleteRequest)

//

#define IO_VIDEO_INCREMENT ? 1

//

// Priority increment used when satisfying a wait on an executive semaphore

// (NtReleaseSemaphore)

//

#define SEMAPHORE_INCREMENT 1

---------------------

仔细看,你会注意到对于声卡而言,其IO完成时,优先级提升会很大,而磁盘,显卡这种却并不是很多,这充分体现了设计者的贴心。这充分考虑到了人耳的灵敏度和人眼的分辨率之间的对比,声音是作为流顺序输出的,耳朵很容易分辨出声音的卡顿,而对于图像而言,完全可以慢慢双缓冲刷层,人眼相比之下没有那么高的分辨率识别到,因此声卡事件必须优先处理。

同时,对于磁盘,网卡之类的,人就更是感觉不到了。除了声卡之外,键盘鼠标操作的IO完成对于优先级提升的数值也很可观,因为键盘鼠标如果卡顿,人的输入会明显感觉到延迟,鼠标则显拖沓,这都是很容易识别的卡顿事件,所以Windows给予了进程更高的动态优先级来尽快处理这些事件。

对于窗口子系统而言,当一个窗口获得焦点时,对应的处理进程的优先级也会得到提升,这会给人一种 你操作的界面总是很流畅 的感觉,毕竟你操作的界面就是前台窗口,至于说此时后台窗口的处理进程,即便是僵死了你也不会有感觉,因为你并不操作它们呀,当你操作它们时,对应的处理进程的优先级就会提升。

所有的优先级提升都伴随着时间片的重新计算,但是和Linux不同的是,Windows并没有直接将进程优先级和时间片按照正相关关联起来,时间片是独立计算的,大多数时候,Windows对于所有的进程,不管优先级是多少,均采用同一个时间片。

如此看来,Windows虽然也是优先级调度的系统,但是其优先级却是 操作行为驱动的 ,这便是其与众不同之处。

Linux内核调度系统会精细区分磁盘事件的wakeup和键盘鼠标声卡事件的wakeup吗?不会。

说完了Windows为什么操作GUI会很流畅,该说点不好的了,

# Windows经常会死机,为什么呢?

这很大程度上也和上面描述的调度器有关。

仔细看这个操作行为驱动的动态优先级调度器,很大的一个问题就是容易饿死低优先级的进程,特别是Pbase P_{base}P base 很低的进程。

Windows的解决方案是采用一个后台进程(学名叫做平衡集管理线程)轮询的方式,将超过秒级都没有被调度的进程的优先级拉升到很高的位置参与抢占。

这个机制有啥问题呢?问题在于Windows需要第三方线程来缓解饥饿,而不是靠调度器自身,这便增加了调解失败的可能:

* 第三方线程本身的问题没有按照预期工作。

* 饥饿进程过多。

* 饥饿进程优先级提升后又被抢占。

* …

除了死机问题之外,Windows系统对于服务器版本的调度器调整做的也不够优雅,Windows仅仅是调整了服务器版本的系统参数,而几乎没有对调度的算法做任何修改。对于服务器版本,Windows只是将时间片延长了而已,同时几乎不再动态计算时间片,而是选择始终使用相同的一个足够长的值,以减少进程切换提高吞吐率。显然这种方式并不妥当,因为动态优先级根据事件的提升,还是会造成进程间不断抢占,从而影响吞吐。

不过,毕竟Windows是一个Desktop系统,本身就不是为高吞吐而生的,这种针对服务器版本的策略调整便是无可厚非了。正如Linux服务器虽然可以很完美应对高吞吐场景,其Desktop版本比如Ubuntu,Suse不也是心有余而力不足吗?虽然Linux内核也有动态优先级提升这一说。

# 该简单总结一下了。

在人机关联上,Windows更加靠近人这一端,适应了人的操作行为,为操作该机器的人提供了良好的短时延体验,Linux相反,它靠近机器一端,让CPU可以尽可能开足马力跑task而不是频繁切换,从而为客户端提供最大的数据吞吐。

Windows的设计甚是精妙,考虑到了人的行为的每一个细节(除了对于死机的耐受力),除了动态优先级和具体时间精确关联之外,对于待机恢复时间deadline在7秒内也是很值得拍案,这个7秒的阈值考虑到了人的短期记忆的极限,如果有人突然想到了一个点子,需要打开电脑将其记录下来,那么打开电脑的时间如果超过了7秒,那么可能这个点子就溜走了,所以待机恢复时间必须限制在7秒以内,哇塞不哇塞。

对于MacOS/iOS没有过多的研究,但是可以想见应该也如Windows这般了。因为它们都处在人机关联的人的这一端。随便看了下MacOS的开发手册,找到了下面的段落:

当我找和GUI和调度相关的东西时,就在上面这段的下面,有这个定义:

嗯,看来内核也是能看到所谓的前台窗口的。

不管怎么说,Windows,MacOS/iOS这些系统,共同的特点就是 大多数情况下,同时只有一个焦点窗口在前端接受输入输出。 毕竟把窗口缩小排满一屏幕的很少见。然后呢?然后这就是一个典型的场景啊!

你看看Win10,不就可以设置为平板模式吗?

倾其机器和操作系统内核所有资源和机制照顾这少数的,几乎是唯一的前台焦点窗口的处理进程,这几乎就是单进程处理啊! 然后处理好用户的窗口切换即可,比如Windows的Ctrl-Tab。

Linux如若按照这个思路,单独再写一个调度器,替换掉CFS,而不是增加一个调度类,如此一来将系统中所有的进程统一按照 优先级和事件相关联 的方式对待,我想问题应该能优化不少。

已经快凌晨了,说点别的但是相关的吧。

Linux内核O(1) O(1)O(1)调度器的历史其实很短暂,2.6初始到2.6.22,但是非常经典的Linux内核方面的书,都是在描述这期间的Linux内核版本,这在当时就给了人们一个假象,O(1) O(1)O(1)调度器是无敌的,是划时代的,于是,当有了新的CFS调度器的时候,人们哇塞一声,O(1) O(1)O(1)只是银河系级别的,而CFS是宇宙级别的。

但其实,O(1) O(1)O(1)的意义只是优化了 如何快速找到下一个要运行的进程 ,虽然它也涉及了动态优先级的计算,但是这并不是它的重点。说实话,你若看看Windows的调度器,4.4BSD,SystemV4的调度器,基本上都是位图加优先级队列的形式,思路几乎是同一个,这么说来都是O(1) O(1)O(1)咯,而且人家这些调度器早在Linux还是O(n) O(n)O(n)调度器的时候就已经存在好几年了,却无人问津。

Windows内核的调度算法不为人知的原因除了其闭源之外,还有一个原因就是Windows内核方面的技术总体上推广的人太少,国内除了潘爱民一直在致力于这方面的推广之外,在没有别人了。估计是因为大家觉得Windows内核方面,Debug之外的东西,学了也没啥用吧。

你说Linux开源没错,BSD不也开源吗?怎么就没有人注意BSD的调度器实现呢?哈哈,开不开源无所谓,关键得能造势搞事情,而且获取方便,让大家用起来你的东西才真真的啊。Linux2.4版本说实话及其垃圾,但关键是很多人用起来了,这就是全部了。Solaris虽然设计完美优雅,可是有壁垒,没人用,最终也还是凉凉。同样的事情参考以太网。

通篇都在比较Windows和Linux的调度器如何影响人们的操作体验。最后说说iOS和Android吧,题外话,不涉及技术。

Android就是卡,不接受反驳。

再贵的Android机器也卡,三星的,华为的照卡不误,只是相比别的稍微好一点点而已。这意味着它们成不了街机。因为手机是买来用的,不是买来debug的,除了程序员没人在乎Android机慢的原因,即便是程序员也很少有折腾明白的,只是因为这份职业让他不用Android就不正确。不过现在互联网公司的程序员用iPhone的也多了,因为好用啊。再者说了,互联网公司程序员大概率以做业务逻辑为主,底层技术欠缺,无力debug,当然是什么好用用什么,iPhone贵,但是互联网程序员收入高啊。

最终,Android机的唯一优势就是价格,你让Android卖的和iPhone一样贵试试,分分钟被绞杀。要说还有唯一点五的,就是品牌,XX也不是吃素的,就算XX做的再烂,就凭它这牌子,也不缺市场,比如我就是XX用户,我并不是觉得XX的Android比小米的Android好,而是我喜欢XX这个公司,这个品牌,仅此而已

苹果电脑会越用越慢吗?

一般来说,苹果的自带系统不卡,只要用得习惯,而且不需要经常玩游戏或者开很多耗内存的软件,都是蛮流畅的。

Mac OS X系统优、缺点

优点

(1)安全性高,现在疯狂肆虐的电脑病毒几乎都是针对Windows的,由于MAC的架构与Windows不同,所以相对而言很少受到病毒的袭击。

(2)mac下没有很多win下多余的东西,没有磁盘碎片,不用整理硬盘,不用分区,几乎没有死机,不用关机,基本没用过进程管理器。所有和使用无关的东西,都被藏起来,用户很容易学习和使用。

(3)设置简单。以网络设置为例,mac下很快就可以设置好(包括复杂的801.x安全认证),而且可以方便的切换多套配置(家里、办公室),这要在win下就会变的非常困难,对于小白用户来说上手要麻烦很多。

(4)软件风格统一,mac下的软件都很mac,操作风格统一,简单好用,使用非常顺畅。

(5)稳定性高,BUG少,更新也少,不像Windows需要经常打补丁。

缺点

(1)兼容性差,虽然很多人并不认可这种说法,但是这确是事实存在的,因为支持Mac系统的软件没有Windows那么多!不兼容也就是不支持嘛!或者可以说在国内Mac系统的生态圈不够完善。

(2)虽然操作人性化程度较高,但是与Windows系统存在较大差异,对于国内用惯了Win系统的用户来说上手会有些困难,尤其是文件管理方面,与Win系统直观的全局浏览文件并管理要复杂的多。

(3)游戏性的扩展相对win差很多,实用性还不错。

(4)软件成熟性不如windows,谁敢说Mac QQ比windows QQ好用的?很多Windows里很好用的软件,for Mac了未必很好用,其实这一条与第一条也有一定关联。

(5)Flash表现很渣,这与Mac本土化进程缓慢有很大关系,国内很多网上办公类网站的插件只支持Win系统,让Mac系统根本就无法完成这些操作。

其实用惯了Win系统初换Mac需要一定时间适应,所以很多Mac用户会同时安装Win系统也是可以理解的。Mac需要加快本土化进程,这样采用在原有基础上给Mac系统用户更好的体验。

不会变慢?那是一种美好的愿望。

1。osx是会产生磁盘碎片的,但是,不会产生大的碎片,因此,没必要整理。出于宣传需要,最后就变成了“osx

没磁盘碎片”。顺便说一句,linux也是如此。

2。osx的程序确实没有注册表之类的东西,但是,程序的配置也总要有个记录的地方吧。这个就是程序自己的plist或者别的什么东西。如果这些配置和程序本身写在一个

包里面,那么你卸载的时候直接放到回收站里面当然可以删除干净。但是很多程序还要在系统其他的目录下写入东西。这种情况下,仅仅删除程序是无法卸载干净的。久而久之。。。。系统垃圾就这么来了

3。osx下是有所谓的“智能文件夹/列表”的,这实际上是根据你给出的条件,把符合条件的文件都放在一个虚拟的文件夹里面。因此,文件多的时候,读取智能列表就会花费更多的时间。

4。文件操作本身也是需要时间的。文件多了,则。。。

5。缓存也会影响速度。因此定时清除以下会有效果。

6。osx系统是没有蓝屏,但是会出现四国,实际上这和win的蓝屏基本上就是一回事。但是,如果硬件没有问题,四国出现的机率还是很小的。不乱鼓捣的话,基本上不会遇到。我用了3年的mac,从来也没遇到过4国。

虽然说了这么多,但是系统变慢的情况比windows要轻多了。如果你注意维护,那么也慢不了多少。但是绝对不是“不会变慢”