谷歌Chrome浏览器的多进程架构

三层计算机体系结构

硬件位于底部,操作系统OS位于中间,应用程序则在最上层。
在这里插入图片描述
当计算机或手机上的应用程序被启动时,CPU 和 GPU 为应用程序提供有力支持,应用程序使用操作系统提供的机制在 CPU 和 GPU 上运行,在底层硬件上实现相应的功能。

GPU(Graphics Processing Unit),图形处理单元,擅长处理简单任务,可以同时跨多个核心。在图形处理中, “使用 GPU” 或者 “GPU 支持” 这些字眼,通常就是在说快速渲染和平滑交互。

进程独立,防止整个系统崩溃

Process(进程) 和 Thread(线程)

进程可理解为应用程序的执行程序,线程则是存在于进程内部,可理解为某个功能函数,并执行其进程程序的部分功能。
进程作为线程的边界,而线程就像游动在进程中的鱼。
在这里插入图片描述
进程可以通过操作系统,启动另一个进程来执行不同的任务,此时系统将为新进程分配不同的内存空间。如果两个进程间需要通信,他们可以利用 IPC(Inter Process Communication)进程间通信机制进行通信。
在这里插入图片描述

谷歌Chrome/Chromium的多进程架构

谷歌Chrome是首款采用多进程浏览概念的浏览器,且具备复杂的用于隔离浏览器各个组成部分的系统。

在Chrome中,谷歌通过out of process plugins(OOPP)功能将所有的插件进程与浏览器进程隔离,就算有一个插件出现崩溃不能使用,也不会影响其它插件和整个浏览器的运行,从而提升Chrome浏览器的稳定性。
在这里插入图片描述

四个主要进程类型跟功能

  • 浏览器进程(Browser),用于处理用户界面和管理所有其他的进程,运行在浏览器的最顶级;
  • 渲染进程(Renderer),用于处理独立浏览器标签中的渲染,一个渲染进程能够处理多个标签;
  • 插件进程(Plugin),每个浏览器插件都运行在它们自己的独立进程中,这些插件进程能够与各自的渲染进程互通;
  • 扩展进程(Extension),浏览器中的扩展也拥有各自的独立进程,以避免互相干扰。
    在这里插入图片描述

服务化与站点隔离

Chrome 服务化,更省内存

大概意思为将浏览器程序的每个部分,作为一项服务运行,然后根据情况而定,来将其拆分为不同的流程或汇总为同一个流程,是个资源的动态调配整合。
若电脑性能足够强悍,浏览器在强大的硬件上运行时,可能会将每个服务拆分为不同的进程,从而提供更高的稳定性。但如果不具备此条件,设备资源受到约束,多个服务就可能会被整合到一个进程当中,从而节省内存占用。在这里插入图片描述

站点隔离,独立渲染进程

可以为每个跨网站 iframe 运行单独的渲染器进程。
每个选项卡有一个独立的渲染器进程,它允许跨站点 iframe 在单个渲染器进程中运行,并在不同站点之间共享内存空间。在同一个渲染器进程中可以运行 a.com 和 b.com 。该同源策略是网络的核心安全模型,它确保一个站点在未经同意的情况下无法访问其他站点的数据,绕过此策略是安全攻击的主要目标。进程隔离是分离站点的最有效方法。(还是图片好理解)
在这里插入图片描述
参考来源:https://juejin.im/post/5bd7c761518825292d6b0217#heading-6

发布了13 篇原创文章 · 获赞 3 · 访问量 4186

猜你喜欢

转载自blog.csdn.net/qq_39111085/article/details/103776844