关于计算机

Posted qisuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于计算机相关的知识,希望对你有一定的参考价值。

内核 & 操作系统

内核是一个操作系统的核心,是操作系统最基本的部分。

内核指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。它负责管理系统的进程内存设备驱动程序文件网络系统等,决定着系统的性能和稳定性。

它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法来完成这些操作。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。

一个内核不是一套完整的操作系统。比如一套基于Linux内核的完整操作系统叫作Linux操作系统,或是[GNU/Linux]。

寄存器 & 缓存 & 内存

按与 CPU 的距离来分,离得最近的是寄存器,其次是缓存,最后为内存。

所以,寄存器是最贴近 CPU 的,而且 CPU 只从寄存器中进行存取

(寄存的意思是暂时存放数据,它就是一个临时放数据的空间,类似于火车站的寄存处。)

而寄存器的数据又来源于内存。于是 CPU <--> 寄存器 <--> 内存。

这就是它们之间的信息交换关系。

那为什么有缓存呢?

因为如果总是操作内存中的同一址地的数据,就会影响传输速度。于是就在寄存器与内存之间设置了缓存。

缓存就把从内存提取的数据暂时保存在里面,如果寄存器要取内存中同一位置的东西,就不用老远地跑到内存中去取,直接从缓存中提取。因为从缓存提取的速度远高于内存。当然缓存的成本肯定也是远远高于内存的,否则计算机里就不需要内存了,只用缓存它不香吗?但如果全是缓存,相信没有几个人买得起计算机了 (╯ ̄Д ̄)╯╘═╛。

现在我们再重新梳理一下四者之间的关系,同样按离 CPU 的距离:CPU <--> 寄存器 <--> 缓存 <--> 内存。

注意一个问题!寄存器并不是每次的数据都可以从缓存中取得,万一不是同一个内存地址中的数据呢?那寄存器就必须绕过缓存直接从内存中取数据。所以并不每次都得到缓存中取数据,这就是缓存的命中率。

从缓存中取就命中,不从缓存中取从内存中取,就没命中。当然关于缓存命中率又是一门学问,哪些留在缓存中,哪些不留在缓存中,都是命中的算法。这里不做赘述,感兴趣的小伙伴可以自己做相关的了解。

从经济和速度的综合考虑,又产生了一级缓存、二级缓存和三级缓存。当然它们的价位也是随着等级攀升的。

  1. 一级最重要。
  2. 二级缓存对 Intel 的 CPU 是很重要的,Intel 的 CPU 的二级缓存越大性能提升非常明显。虽然 AMD 的 CPU 二级缓存也很重要,但是其大小对 AMD 的 CPU 的性能提升并不明显。
  3. 三级缓存其实只是做了辅助的作用,除了服务器,对大多数家庭机没什么用,内存还是很重要的,但如果运行大型程序或游戏来说三级缓存就显得重要了,目前新型 CPU 已经有三级缓存了。

以上是关于关于计算机的主要内容,如果未能解决你的问题,请参考以下文章

这是一个关于计算机体系结构的问题,基本上是关于逻辑门

关于量子计算机

关于学习JAVA前的部分准备

计算机组成原理——关于数据对齐存储

计算机基础 数据类型 流程控制 字符编码 文件操作

关于如何学习计算机