系统设计入门

讲师:neetcode.io

口袋资源独家Neetcode付费课程独家中英文字幕配套资料齐全!

不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。

计算机结构

在进入系统设计流程之前,最重要的是要了解计算机的组成模块、它们的重要性以及它们在系统设计中的作用。


组件

磁盘

磁盘是计算机中的主要存储设备。它具有持久性,这意味着无论机器处于何种状态(开机或关机),数据都将被持久保存。大多数现代计算机在磁盘中存储的信息都在TB(兆兆字节)左右。

回顾一下,一个字节由 8 位组成,而比特是计算机中最小的计量单位–二进制计量单位,用0 或 1 表示。一兆位是10 12 个字节,即一万亿字节。USB 驱动器等磁盘存储设备的存储量可能达到GB(千兆字节),即10 9,或十亿字节。

您可能会遇到这样的术语:硬盘(HDD)和固态硬盘(SDD)。硬盘(HDD)和固态硬盘(SSD)都是持久存储设备,后者更受欢迎,速度也更快。不过,它的价格通常要高一些。

硬盘是机械式的,有一个读写头。硬盘使用时间越长,磨损就越大,速度也就越慢。固态硬盘的速度明显更快,因为它们没有活动部件,依靠电子方式读写数据(类似于 RAM)。

内存

随机存取存储器也用于存储信息,但通常比磁盘驱动器小得多。随机存取存储器的大小一般从 1GB 到 128GB 不等,因为随机存取存储器比磁盘空间昂贵得多。这样做的好处是,读写 RAM 的速度明显快于磁盘。例如,向 RAM 中写入 1 MB 的数据可能需要微秒级(百万分之一秒,或1/106 秒),而向磁盘中写入相同数量的数据可能需要毫秒级(千分之一秒,或1/103 秒)”。

注:这些数字只是粗略估计,随着硬件技术的改进可能会发生变化。

RAM 可将打开的应用程序保存在内存中,包括程序分配的任何变量。内存通常被称为易失性内存,这意味着一旦关闭计算机,数据就会被删除。因此,在关闭计算机前将工作保存到磁盘中非常重要。

值得注意的是,内存和磁盘之间并不直接通信。它们依赖中央处理器来促进它们之间的数据传输。

中央处理器

中央处理器(CPU)是 RAM 和磁盘之间的中介。中央处理器也被称为计算机的 “大脑”,负责读写 RAM 和磁盘。

例如,当您编写代码并运行时,您的代码会被翻译成一组二进制指令存储在 RAM 中。这句话可以说得更清楚一些:”中央处理器读取并执行这些指令,其中可能涉及操作存储在 RAM 或磁盘中的数据。从磁盘读取数据的一个例子是打开文件系统中的文件并逐行读取。

所有计算都在中央处理器内完成,如加法/减法/乘法等。这只需几毫秒的时间。它从 RAM 中获取指令,解码这些指令并执行解码后的指令。在最底层,所有这些指令都以字节表示。

CPU 还包括一个高速缓冲存储器。高速缓冲存储器是一种速度极快的存储器,与 CPU 位于同一芯片上。

缓存

大多数 CPU 都有 L1、L2 和 L3 缓存,这些物理组件的速度比 RAM 快得多,但它们只能存储 KB 或几十 MB 的数据。

每次请求读取操作时,都会先检查缓存,然后再检查 RAM 和磁盘。如果请求读取的数据在缓存中,并且自上次访问以来没有变化,那么就会从缓存而不是 RAM 中获取数据。读写缓存比读写 RAM 和磁盘要快得多。缓存中存储的内容由操作系统决定。

缓存是一个重要的概念,应用于计算机体系结构之外的许多领域。例如,网络浏览器使用缓存来跟踪经常访问的网页,以便更快地加载它们。这些存储的数据可能包括 HTML、CSS、JavaScript 和图像等。如果数据在缓存网页时仍然有效,加载速度就会更快。但在这种情况下,浏览器使用磁盘作为缓存,因为进行互联网请求比从磁盘读取要慢得多。

高速缓存是 CPU 的一部分,这只是它比 RAM 快的部分原因。高速缓存就是所谓的 SRAM。如果您有兴趣,可以查看麻省理工学院的这一资料,其中提供了温和的介绍。


上图展示了 CPU、内存、高速缓存和磁盘如何在抽象层面上相互影响。

摩尔定律

摩尔定律是一种观测结果,它表明中央处理器中的晶体管数量每两年翻一番。从下图来看,这似乎是一个线性图,但从 Y 轴上的刻度可以看出,这是一个指数图。因此,在晶体管数量翻番的同时,计算机的成本却往往减半。然而,近年来,晶体管的数量以及计算机的速度开始趋于稳定。

结束语

这三种内存都有各自的用途。如果你正在写一篇文章,而电脑要关闭,你会希望把它存储在磁盘驱动器上。在执行多任务时,你希望打开的程序存储在内存中。在 Windows 系统中,如果多次打开文件资源管理器,你会发现每次打开的速度都会加快。这就是缓存。

既然我们已经了解了计算机体系结构,那么我们就可以开始了解应用程序体系结构,包括什么是分布式系统,它从开发人员和最终用户的角度提供了生产应用程序的基本剖析。

发表回复

后才能评论

  • 每一个课程页面,都有演示地址选项,点击链接可以跳转到课程发布网站查看详细课程列表。
  • 绝大部分课程都有试看内容,可以先点击试看,再决定是否购买。
  • 本站课程均存储在阿里云盘或百度网盘中,由于阿里云盘对分享的文件类型有限制,所以课程资料和字幕会存储到蓝奏云盘中。
  • 阿里云盘和蓝奏云盘都是不限速下载的,你既可以选择在阿里云盘中在线学习,也可以选择下载到本地学习。
  • 课程下载到本地可以挂载中英文双字幕,请点击查看Potplayer挂载中英文双字幕教程
  • 本站所有课程,均提供mp4格式视频文件,中英文双字幕,配套资料齐全,不加密。
  • 每一个课程右侧下载面板中,都会有清晰度标识,大部分都是1080P或者720P,还有少数是超高清的。
  • 本站课程购买之后,均可以免费更新,所有课程,皆配有中文字幕。
  • 请注意,课程的中文字幕是根据英文字幕用谷歌翻译生成的,本非人工翻译。谷歌翻译准确度尚可,学习观看,没有问题。
  • 由于数字资源具有可复制性,一旦购买,不接受退款要求,请在购买之前,认真了解课程内容,确定是否需要。
  • 当然,如果有特殊情况,可以查看网站底部联系方式,联系站长说明问题,我会为你妥善处理。
  • 赞助本站VIP会员,可以免费下载所有课程,详情请查看VIP介绍