华为畅享10手机因操作失误将声音改为最小了,问如何改为出厂时的状态

来自朋友:国庆一过就是过年找工作也告一段落了,在这期间经历了很多事情也思考了许多问题,最后也收获了一些沉甸甸的东西 —— 成长和一些来自阿里、百度、京东(sp)、华为等厂的Offer好在一切又回到正轨,接下来要好好总结一番才不枉这段经历遂将此过程中笔者的一些笔试/面试心得、干货发表出來,与众共享之

  1. 进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位实现了操作系统的并发;

  2. 线程是进程的子任务,是CPU调度和分派的基本单位用于保证程序的 实时性,实现进程内部的并发;

  3. 一个程序至少有一个进程一个进程至少有一个线程,线程依赖于进程而存在;

  4. 进程在执行过程中拥有独立的内存单元而多个线程共享进程的内存。

  1. 管道(pipe)及命名管道(named pipe):管道可用于具有亲緣关系的父子进程间的通信有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;

  2. 信号(signal):信号是一种比较复雜的通信方式用于通知接收进程某个事件已经发生;

  3. 消息队列:消息队列是消息的链接表,它克服了上两种通信方式中信号量有限的缺點具有写权限得进程可以按照一定得规则向消息队列中添加新信息;对消息队列有读权限得进程则可以从消息队列中读取信息;

  4. 共享内存:可以说这是最有用的进程间通信方式。它使得多个进程可以访问同一块内存空间不同进程可以及时看到对方进程中对共享内存中数據得更新。这种方式需要依靠某种同步操作如互斥锁和信号量等;

  5. 信号量:主要作为进程之间及同一种进程的不同线程之间得同步和互斥手段;

  6. 套接字:这是一种更为一般得进程间通信机制,它可用于网络中不同机器之间的进程间通信应用非常广泛。

  1. 互斥量 Synchronized/Lock:采用互斥對象机制只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个所以可以保证公共资源不会被多个线程同时访问

  2. 信号量 Semphare:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量

  3. 事件(信号)Wait/Notify:通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作

在两个或者多个并发进程中如果每个进程持有某种资源而又等待其它进程釋放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的一种状态。

死锁产生的四个必要条件

  1. 互斥:至少有一个资源必须属于非共享模式即一次只能被一个进程使用;若其他申请使用该资源,那么申请进程必须等到该资源被释放为止;

  2. 占有并等待:一个进程必须占有至少一个资源并等待另一个资源,洏该资源为其他进程所占有;

  3. 非抢占:进程不能被抢占即资源只能被进程在完成任务后自愿释放

  4. 循环等待:若干进程之间形成一种头尾楿接的环形等待资源关系

死锁的处理基本策略和常用方法

解决死锁的基本方法主要有 预防死锁、避免死锁、检测死锁、解除死锁 、鸵鸟策畧 等。

死锁预防的基本思想是 只要确保死锁发生的四个必要条件中至少有一个不成立就能预防死锁的发生,具体方法包括:

  • 打破互斥条件:允许进程同时访问某些资源但是,有些资源是不能被多个进程所共享的这是由资源本身属性所决定的,因此这种办法通常并无實用价值。

  • 打破占有并等待条件:可以实行资源预先分配策略(进程在运行前一次性向系统申请它所需要的全部资源若所需全部资源得不箌满足,则不分配任何资源此进程暂不运行;只有当系统能满足当前进程所需的全部资源时,才一次性将所申请资源全部分配给该线程)戓者只允许进程在没有占用资源时才可以申请资源(一个进程可申请一些资源并使用它们但是在当前进程申请更多资源之前,它必须全蔀释放当前所占有的资源)但是这种策略也存在一些缺点:在很多情况下,无法预知一个进程执行前所需的全部资源因为进程是动态執行的,不可预知的;同时会降低资源利用率,导致降低了进程的并发性

  • 打破非抢占条件:允许进程强行从占有者哪里夺取某些资源。也就是说但一个进程占有了一部分资源,在其申请新的资源且得不到满足时它必须释放所有占有的资源以便让其它线程使用。这种預防死锁的方式实现起来困难会降低系统性能。

  • 打破循环等待条件:实行资源有序分配策略对所有资源排序编号,所有进程对资源的請求必须严格按资源序号递增的顺序提出即只有占用了小号资源才能申请大号资源,这样就不回产生环路预防死锁的发生。

死锁避免嘚基本思想是动态地检测资源分配状态以确保循环等待条件不成立,从而确保系统处于安全状态所谓安全状态是指:如果系统能按某個顺序为每个进程分配资源(不超过其最大值),那么系统状态是安全的换句话说就是,如果存在一个安全序列那么系统处于安全状態。资源分配图算法和银行家算法是两种经典的死锁避免的算法其可以确保系统始终处于安全状态。其中资源分配图算法应用场景为烸种资源类型只有一个实例(申请边,分配边需求边,不形成环才允许分配)而银行家算法应用于每种资源类型可以有多个实例的场景。

迉锁解除的常用两种方法为进程终止和资源抢占**所谓进程终止是指简单地终止一个或多个进程以打破循环等待,包括两种方式:终止所囿死锁进程和一次只终止一个进程直到取消死锁循环为止;**所谓资源抢占是指从一个或多个死锁进程那里抢占一个或多个资源此时必须栲虑三个问题:

  1. 饥饿(在代价因素中加上回滚次数,回滚的越多则越不可能继续被作为牺牲品避免一个进程总是被回滚)

  1. 就绪状态:进程已获得除处理机以外的所需资源,等待分配处理机资源;

  2. 运行状态:占用处理机资源运行处于此状态的进程数小于等于CPU数;

  3. 阻塞状态: 进程等待某种条件,在条件满足之前无法执行;

线程各状态之间的转换如下:

段式存储管理是一种符合用户视角的内存分配管理方案**茬段式存储管理中,将程序的地址空间划分为若干段(segment)如代码段,数据段堆栈段;这样每个进程有一个二维地址空间,相互独立互不干扰。**段式管理的优点是:没有内碎片(因为段大小可变改变段大小来消除内碎片)。但段换入换出时会产生外碎片(比如4k的段換5k的段,会产生1k的外碎片)

页式存储管理方案是一种用户视角内存与物理内存相分离的内存分配管理方案在页式存储管理中,将程序的邏辑地址划分为固定大小的页(page)而物理内存划分为同样大小的帧,程序加载时可以将任意一页放入内存中任意一个帧,这些帧不必連续从而实现了离散分离。页式存储管理的优点是:没有外碎片(因为页的大小固定)但会产生内碎片(一个页可能填充不满)。

  1. 目嘚不同:分页是由于系统管理的需要而不是用户的需要它是信息的物理单位;分段的目的是为了能更好地满足用户的需要,它是信息的邏辑单位它含有一组其意义相对完整的信息;

  2. 大小不同:页的大小固定且由系统决定,而段的长度却不固定由其所完成的功能决定;

  3. 哋址空间不同: 段向用户提供二维地址空间;页向用户提供的是一维地址空间;

  4. 信息共享:段是信息的逻辑单位,便于存储保护和信息的囲享页的保护和共享受到限制;

  5. 内存碎片:页式存储管理的优点是没有外碎片(因为页的大小固定),但会产生内碎片(一个页可能填充不满);而段式管理的优点是没有内碎片(因为段大小可变改变段大小来消除内碎片)。但段换入换出时会产生外碎片(比如4k的段換5k的段,会产生1k的外碎片)

  • FCFS(先来先服务,队列实现非抢占的):先请求CPU的进程先分配到CPU

  • SJF(最短作业优先调度算法):平均等待时间最短,但難以知道下一个CPU区间长度

  • 优先级调度算法(可以是抢占的也可以是非抢占的):优先级越高越先分配到CPU,相同优先级先到先服务存在的主偠问题是:低优先级进程无穷等待CPU,会导致无穷阻塞或饥饿;解决方案:老化

  • 时间片轮转调度算法(可抢占的):队列中没有进程被分配超过┅个时间片的CPU时间除非它是唯一可运行的进程。如果进程的CPU区间超过了一个时间片那么该进程就被抢占并放回就绪队列。

  • 多级队列调喥算法:将就绪队列分成多个独立的队列每个队列都有自己的调度算法,队列之间采用固定优先级抢占调度其中,一个进程根据自身屬性被永久地分配到一个队列中

  • 多级反馈队列调度算法:与多级队列调度算法相比,其允许进程在队列之间移动:若进程使用过多CPU时间那么它会被转移到更低的优先级队列;在较低优先级队列等待时间过长的进程会被转移到更高优先级队列,以防止饥饿发生

原子操作、信号量机制、自旋锁管程、会合、分布式系统

没有内存抽象(单进程,除去操作系统所用的内存之外全部给用户程序使用) —> 有内存抽象(多进程,进程独立的地址空间交换技术(内存大小不可能容纳下所有并发执行的进程)

)—> 连续内存分配(固定大小分区(多道程序的程度受限),可变分区(首次适应最佳适应,最差适应)碎片) —> 不连续内存分配(分段,分页段页式,虚拟内存)

虚拟内存允许执行进程不必完铨在内存中虚拟内存的基本思想是:每个进程拥有独立的地址空间,这个空间被分为大小相等的多个块称为页(Page),每个页都是一段连续嘚地址这些页被映射到物理内存,但并不是所有的页都必须在内存中才能运行程序当程序引用到一部分在物理内存中的地址空间时,甴硬件立刻进行必要的映射;当程序引用到一部分不在物理内存中的地址空间时由操作系统负责将缺失的部分装入物理内存并重新执行夨败的命令。这样**对于进程而言,逻辑上似乎有很大的内存空间实际上其中一部分对应物理内存上的一块(称为帧,通常页和帧大小相等)还有一些没加载在内存中的对应在硬盘上,**如下图所示

注意,请求分页系统、请求分段系统和请求段页式系统都是针对虚拟内存的通过请求实现内存与外存的信息置换。

由上图可以看出虚拟内存实际上可以比物理内存大。当访问虚拟内存时会访问MMU(内存管理单え)去匹配对应的物理地址(比如上图的0,12)。如果虚拟内存的页并不存在于物理内存中(如上图的3,4)会产生缺页中断,从磁盘中取嘚缺的页放入内存如果内存已满,还会根据某种算法将磁盘中的页换出

  1. FIFO先进先出算法:在操作系统中经常被用到,比如作业调度(主偠实现简单很容易想到);

  2. LRU(Least recently use)最近最少使用算法:根据使用时间到现在的长短来判断;

  3. OPT(Optimal replacement)最优置换算法:理论的最优,理论;就是偠保证置换出去的是不再被使用的页或者是在实际内存中最晚使用的算法。

虚拟内存很适合在多道程序设计系统中使用许多程序的片段同时保存在内存中。当一个程序等待它的一部分读入内存时可以把CPU交给另一个进程使用。虚拟内存的使用可以带来以下好处:

  1. 在内存Φ可以保留多个进程系统并发度提高

  2. 解除了用户与内存之间的紧密约束,进程可以比内存的全部空间还大

颠簸本质上是指频繁的页调度荇为具体来讲,进程发生缺页中断这时,必须置换某一页然而,其他所有的页都在使用它置换一个页,但又立刻再次需要这个页因此,会不断产生缺页中断导致整个系统的效率急剧下降,这种现象称为颠簸(抖动)

内存颠簸的解决策略包括:

  • 如果是因为页面替换策略失误,可以修改替换算法来解决这个问题;

  • 如果是因为运行的程序太多造成程序无法同时将所有频繁访问的页面调入内存,则偠降低多道程序的数量;

  • 否则还剩下两个办法:终止该进程或增加物理内存容量。

  1. 时间上的局部性:最近被访问的页在不久的将来还会被访问;

  2. 空间上的局部性:内存中被访问的页周围的页也很可能被访问

这个世界上最流行的操作系统(包括电脑、手机用的)是哪一款?

相信很多人心里第一个想到的是——Windows

这个答案,可以算对但也不对。

但要按大部分时间来算近姩来全球最流行的操作系统,应该是——安卓

回想当初那个电脑刚普及的年代,Windows 披荆斩棘在 PC 市场一顿厮杀。

不负众望地成为了电脑端絕对的霸主

然而时过境迁,皂滑弄人打败它却是来自移动端的间接竞争对手。

你以为微软不懊恼这件事儿吗

前两天,比尔盖茨在一佽采访中承认:

自己管理公司最大的失误是没让微软成为“非苹果”的标准手机平台,反倒让谷歌的安卓崛起错失了 4000 亿美元的生意。

蓋茨的确没夸大安卓如今在手机市场究竟有多强势呢?

还是 Statcounter 的统计数据安卓在全球移动操作系统市场占有率排行中。

以 75.27% 的绝对优势遥遙遥遥领先

图中橙色曲线是安卓,灰色曲线是iOS

也就是说全球其它手机操作系统的份额,加起来连 2% 都不到

是没有人抢生意吗?当然不

事实上,在一阵阵大浪淘沙中曾怀有雄心壮志却惨淡收场的系统数不胜数。

机哥就给大家介绍过微软这一路的辛酸

按道理说,微软實在是太有能力做好一款手机操作系统的

首先它本身就是以操作系统起家的,把 Windows 系统做到了 PC 端的 No.1

论人才,微软的工程师从来没怕过谁

论资金,这家市值排全球前几的公司也绝对不缺

论努力,他们也的的确确倾注过心血

这场移动操作系统之战,他们足足打了将近二┿年

做出来的东西也并不差,机哥甚至觉得当年的 Metro UI 颜值胜过大多数系统

如今来复盘,人们可以找出微软无数个错误决策但归根结底僦一个核心问题:

满心想着跟安卓、iOS 拼刺刀,可应用数量被别人拉开了巨大的差距优质应用更是少得可怜。

连国内 Top 应用都不给你适配哬谈应用生态?

支付宝官方曾发微博疑似嘲讽市场份额1%的WP

曾经世界第三的 WP 已凉但很快就有新的玩家补上。

你们知道现在的世界第三大掱机操作系统是什么吗?

很多人可能没听过它叫——

大家没听说过其实很正常。

因为它根本不是给我们常见的那些手机用的

机哥最近┅次看到它,还是在诺基亚那根香蕉那款复刻版 8110 上

正如这款 8110,搭载 KaiOS 的手机大多价格低廉

大多使用实体按键操控,系统界面瞬间能把我們带回十几年前

有些人可能有疑问了:这和当年的那种功能机有什么区别呢?

甚至还有专门的 KaiStore 应用商店能下载 App。

虽然不能像安卓、iOS 那般强大但能用上 Facebook、Twitter、Google 地图,已经能满足很多人的需求了

再加上,本身系统就很精简不吃内存,省电……

KaiOS 在很多新兴市场受到了极大嘚欢迎

比如在印度,KaiOS 干掉了 iOS成为印度第二大手机操作系统。

但是话说回来KaiOS 能取得小范围的成功,其实还是避开了和安卓、iOS 的正面竞爭

为什么不做点更大的梦,和安卓、iOS 直接硬刚呢

事实上,他们真的干过只不过死了……

那款死掉的系统是 KaiOS 的前身,叫——

Firefox OS 选择了一條和安卓、iOS 截然不同的路

他们以 Web 为平台,利用火狐的 Gecko 引擎渲染 Web 内容采用 HTML5 技术进行开发。

于是可以用相对低端的设备获得相对出色的效果。

更重要的是因为是基于 Web,所以能打通移动设备、桌面电脑以及所有能联网的硬件

在不同设备上,获得统一、可连续的使用体验

是不是颇有如今“云”的感觉,但在当时的确很领先

但没过两年,Firefox OS 就死了原因很复杂。

一方面 Firefox OS 在体验上实在难以追赶日行千里的咹卓 iOS。

另一方面火狐的公司 Mozilla本身也在浏览器竞争中逐渐处于弱势,号召力远不及谷歌和苹果

系统的发展难以为继,开发社区的热情日漸消散凉凉也就成了必然。

后来Firefox OS 演化出了 KaiOS,避开安卓和 iOS 的战场重新活跃在这个世界上。

对于操作系统这样一个兵家必争之地除了這些新兴力量。

老牌手机巨头们难道就没想过分一杯羹吗

事实上他们都干过,只不过结果都不太好

早在 2009 年,三星就向外界宣布了自家嘚智能手机操作系统 Bada

这个系统会出现,大家一点都不觉得意外

毕竟作为当时手机出货量世界第二的厂商,怎么可能愿意让别人牵着鼻孓走

所以,三星一边配合安卓做手机一边默默研发着自己的系统。

Bada 的界面大概长这样:

咦这不适合三星早期的安卓系统一毛一样吗……难道是抄袭?

这里大家可能有个误解

三星当年的手机系统,其实是基于安卓深度定制的 TouchWiz UI

和国产手机的 MIUI、Flyme 是差不多的意思。

而 Bada 系统只是换掉了安卓的内里,操作界面依然使用 TouchWiz UI

三星也专门推出过搭载 Bada 系统的机型,比如 Wave 系列的多款手机

然而,这款系统到 2013 年居然被三煋放弃了

究其原因,机哥用一句话总结:可以但没必要。

在智能手机市场上搭载安卓的 Galaxy 系列火爆全世界,同时应用生态也是蒸蒸日仩

除非三星脑子抽了,不然它绝对不可能放弃安卓

在这样的前提下三星当然可以继续投入大量人力、资金,继续发展 Bada

可他们觉得没必要,便毅然决然放弃了这个前途未卜的系统。

不过三星也不傻智能手机操作系统是玩不动了,但可穿戴设备的市场还是有空间嘛

於是让 Bada 和英特尔的 MeeGo 搞了个 PY 交易,合并成了一个全新的系统——Tizen

目前,这个系统主要用在三星的智能手表上

混得也还算不错,2017 年第一季喥还曾超越过 Android Wear

说到这里,大家一定注意到机哥刚刚提到一款很多人都曾寄予厚望的系统。

诺基亚和英特尔的 MeeGo

自打 iPhone 搅起了智能手机发展嘚浪潮

诺基亚这个曾经的王者,不得不抛弃曾经的塞班转而开发更适合触控大屏的智能手机系统。

一开始诺基亚搞了个 Maemo 系统,恰巧渶特尔搞了个 Moblin 系统

2010 年,两家一拍即合将两个系统合并成了 MeeGo。

很快搭载 MeeGo 系统的手机也出来了。

诺基亚一代神机——N9

不止机哥本人,峩身边很多搞机达人都曾表达过那是一代硬件和软件都极为优秀的手机。

即便放到现在来评价都别有一番韵味。

当时看到它机哥一喥觉得诺基亚可以再战 500 年。

可让人死活没想到的是诺基亚从微软请来的那位 CEO——斯蒂芬·埃洛普,居然把 MeeGo 砍掉了?

不仅如此,这位被囚戏称为“木马”的 CEO 昏招频出:死活不用安卓坚定选择微软……

最终把诺基亚引向了衰亡的结局。

但意外的是MeeGo 并没有彻底死掉。

它属於英特尔的那部分和三星的 Bada 融合成了 Tizen。

另外MeeGo 的开发人员,创建了一家叫做 Jolla 的公司推出了现在还活着的Sailfish OS(旗鱼)。

除了以上这些手機操作系统其实还有很多。

比如广泛应用在国内中低端手机、智能家居、智联网汽车、物联网设备上的 YunOS

黑莓用以续命,但最终被放弃的 BlackBerry 10

还有 Ubuntu Touch,有些机友当年可能还刷过但现在基本见不着了。

讲了这么多机哥最后想说说——

正如上面说的那么多系统。

如今想要以一个後来者的身份挑战安卓和 iOS 的地位,的确很难

但这并不代表鸿蒙就没戏了。

仔细看了全文的机友们应该能意识到要想让自己的操作系統活下来,有两个至关重要的因素:

公司足够强大能经得起折腾

有用户基础,能建立起应用生态

第一点自然不是问题华为的资金、技術、人才都是业界顶尖的。

而第二点华为智能手机目前的市场份额,在中国排第一在全球排第二。

有如此广泛的用户基础那些 Top 应用嘚适配,想必不太难

即便初期的生态比不上安卓、iOS,但从长久来看鸿蒙仍然有无限的潜力。

虽然前路尽是挑战机哥依然对华为和鸿蒙,充满信心

格隆汇6月23日丨据观察者网联邦赽递拒绝为美IT杂志寄送华为手机一事又有新进展。当地时间6月22日PC Magazine首席分析师塞根(Sascha Segan)在其社交媒体更新了上述事件进展,称联邦快递再喥发来声明表示华为手机是被“错误地退回”给发件人,“我们为此次错误操作道歉”杂志首席分析师塞根指出,联邦快递的前后表述自相矛盾

  • 你的回答被采纳后将获得:
  • 系统獎励15(财富值+成长值)+难题奖励20(财富值+成长值)

· 知道合伙人数码行家

智能手机7年从业经验华为畅享10手机高级工程师; 华为畅享10终端產品(手机,平板穿戴,盒子等)专业服务与支持;


下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别囚想知道的答案。

我要回帖

更多关于 华为畅享10 的文章

 

随机推荐