目录
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。
截至目前,我们所认识的计算机,都是有一个个的硬件组件组成
注意:
结构 | 作用 | 速度 |
---|---|---|
CPU | 计算 | 非常快 |
存储器(内存) | 临时存储 | 快 |
外设 | 永久存储 | 较慢 |
CPU其实很笨,只能被动的接受别人的指令、数据,所以CPU必须先认识别人的指令,CPU有自己的指令集(精简指令集和复杂指令集),我们写代码、编译的本质就是生成二进制可执行文件来让CPU来识别指令。
为什么会有内存这个东西呢?直接让外设和CPU打交道不好吗?
这是因为CPU和外设的处理速度差太多了,就像我们熟知的短板效应, 如果直接让外设和CPU打交道,那就太浪费CPU的资源了。所以我们能够知道,在数据层面,CPU只和内存打交道,目的是为了提高整机效率。
程序要运行必须要加载到内存中!CPU要读取我的代码我的数据,只能从内存中读取!这是由体系结构规定的。
外设中的数据在内存中输入输出的过程,叫做IO的过程。
那么谁来帮我们处理内存中的数据呢?操作系统!
操作系统是一个进行软硬件资源管理的软件。
任何计算机系统都包含一个基本的程序集合,称为操作系统 (OS) 。笼统的理解,操作系统包括:
与硬件交互,管理所有的软硬件资源(手段) ,为用户程序(应用程序)提供一个良好的执行环境(目的)。
以学校为例,校长需要管理全校所有的学生,但是校长并不需要直接和学生见面来管理学生,学生所有的数据,早就已经被校方拿到了手里,而且一直在更新,学校管理学生的本质其实是管理学生的数据。而校长只需要对重大事情做决策即可。做完决策之后,各班主任就会按照学生的数据来进行相应的管理并反馈给校长。
管理学生的数据,分为两步:
学生虽然不同,但是信息种类都是一样的,例如:都有姓名、性别、种族、身高、体重等等。我们通过描述出一个学生结构体,再通过合适的数据结构知识将学生信息组织起来。
同样的,操作系统管理硬件,是不需要直接和硬件打交道的。,每个硬件会有对应的描述结构体,驱动程序拿到对应硬件的数据传递给操作系统,操作系统通过管理对应的描述结构体来组织管理这些硬件。
总结:
如果任何人都可以随意操作系统中的数据,那么操作系统很容易被破坏。然而操作系统还需要为我们提供一系列的服务。为了解决这个问题,操作系统提供了很多接口供我们使用,这种调用操作系统接口的方式叫做系统调用。
我们通过指令操作、编程操作和使用界面实际上都是通过不同的方式去调用系统接口来实现我们的目的。