[Linux]计算机软硬体系结构
冯诺依曼体系结构
冯诺依曼体系结构的组成
现代计算机大多都遵守冯诺依曼体系结构冯诺依曼体系结构的示意图如下:
冯诺依曼体系结构计算机由五大部件组成:
-
输入设备
-
输出设备
-
存储器(内存)
-
运算器
-
控制器
注:如今大多的计算机都将运算器和控制器集成到一起,被称作中央处理器,简称CPU。
冯诺依曼体系结构中各部件的功能
冯诺依曼体系结构中各部件的功能如下:
- 输入设备:接受外部传入的数据并传入计算机。常见的输入设备有:键盘、话筒、摄像头、网卡、磁盘。
- 输出设备:接受计算机的计算结果。常见的输出设备包括:显示器、音响、网卡、磁盘。
- 存储器:对数据进行预加载,提高整机的效率。
- 运算器:完成各种算数运算和逻辑运算。
- 控制器:控制整个计算机能够有条不紊地工作、自动执行程序。
对存储器(内存)的理解
在谈关于存储器的理解前,首先我们要知道如下概念:
- 输入设备和输出设备统称为外设设备,简称为外设。
- 外设和CPU的部件相比速度是非常慢的。
由于CPU和外设速度差异很大,因此计算机不能被设计成如下结构:
由于CPU和外设速度差异很大,CPU很快就完成了数据的计算并将数据传到输出设备,然后CPU要等待输入设备的数据传入,CPU会存在很多不必要的空档期,这样大大的降低了CPU的效率,这就如同木桶原理:
由于外设的速度太慢导致整机的速度降低。
为了提高整机的效率,冯诺依曼体系结构将存储器部件加入了进来,存储器的速度相比外设要快很多并且有着一定的容量,在CPU运算前,存储器会预先加载大量的数据,往后CPU要进行运算时只需要从存储器获取数据,由于存储器预先存储了大量的数据,CPU可以向存储器不断的获取数据,不存在空档期,因此CPU就感受不到速度的差异,从而提高整机效率。
总结:
-
在数据传输层面,CPU只与存储器进行数据交互。
-
在数据传输层面,外设只与存储器进行数据交互。
根据如上对体系结构的理解,可以得知计算机要执行一个程序,首先要从磁盘这种外设加载到存储器中,然后CPU通过存储器获取数据来执行程序。
对数据流的理解
两台计算机的数据传输示意图如下:
两台计算机的数据传输流程:设备1的输入设备接收数据和请求然后传入存储器,CPU对存储器的数据和请求做处理,然后将数据和请求传回存储器,存储器将数据数据和请求传到输出设备中,输出设备将数据和请求传入到设备2的输入设备中,设备2同设备1将数据和请求经输入设备到存储器到CPU到存储区最后到数据设备输出。
了解操作系统
操作系统的概念
操作系统是一款进行软硬件资源管理的软件。
管理的概念
为了更好理解管理的概念,我们来看如下场景:
一个学校中要举办编程大赛,学校中有校长,辅导员,学生三种角色。
-
校长决定编程大赛在下个月举办,要求全部学生必须参加,并且将全部学生的成绩进行统计。
-
辅导员得到校长的决策后,就召集全部学生开启大会,告知学生学校编程大赛的消息,筹备大赛,并在后续完成成绩统计工作。
-
学生得知校长的决策后,就开始着手准备编程大赛的准备工作。
在如上的场景中,校长所作的内容就是做决策,辅导员所作的内容是将决策落地,也就是执行决策,学生所作的内容是参与决策的执行。
在学校举办编程大赛的场景下,校长作为管理者,所要做的主要工作就是对任务做决策。决策编程大赛的举办时间,参与大赛的对象以及大赛相关所需要做的工作。因此我们可以看出管理的核心就是对事情相关的部分做决策。
管理的本质
同样是学校的场景,学校中有校长,辅导员,学生三种角色。
在学校中,校长要管理学生考入时入学处理,对成绩优异的学生进行奖励,成绩不合格的学生的退学处理等等,在管理每一个学生时校长不需要跟每一个学生都进行交流,但是校长却能管理好每一个学生,校长管理每一个学生的依据是学生信息,比如入学时将学生的信息记录到学校中,查看学生的成绩信息就成绩优异的学生进行奖励,查看学生的成绩信息对成绩较差的学生进行退学处理,以上这些学生信息都可以称作数据,因此管理的本质是对数据的管理。其中校长作为管理者,其数据的来源是辅导员进行统计学生的信息然后上交给的校长,校长做出决策后执行决策的也是辅导员。
管理的精髓“先描述,再组织”
由于管理的本质是对数据的管理,为了更好的对数据进行管理,需要对数据进行建模,比如对于一个学生来讲,可以创建一个结构体来描述学生,结构体里包含学生的各种属性,由于要管理的学生众多,因此,需要将描述学生的结构体组织起来方便管理,比如链表结构:
以上对学生用结构体描述,然后用链表结构组织起来的方式就是**“先描述,再组织”**。
经过先描述,再组织后,校长要开除成绩最差的学生时,只需要遍历链表寻找成绩最差的学生的结点,然后将其结点删除,这样学生就不在学校管理范围内,也就是被开除了。
计算机软硬体系结构(部分)
上面的学校场景中,校长、辅导员、学生对应计算机中的就是操作系统、硬件驱动、硬件,这些部分参与了计算机软硬体系结构的组成:
- 操作系统 – 对硬件进行先描述,再组织,然后通过对硬件的这种数据建模进行管理。
- 硬件驱动(软件) – 传达操作系统的决策给硬件,让硬件去执行,并获取硬件的数据信息和请求上交给操作系统。
- 硬件 – 将操作系统下发的决策进行执行,上交请求给硬件驱动。
操作系统的管理策略
操作系统管理的目的: 为上层的用户提供安全、稳定、高效、功能丰富的执行环境。
用户可能会对计算机的硬件有各种各样的需求,比如让计算机的音响音量放大等,用户如果直接操作硬件可能会出现问题,因此操作系统作为硬件的管理者,不会让用户直接去访问硬件,而是提供了各种各样的系统接口,用户可以通过调用系统接口来实现想要的功能,通过这种方式,操作系统可以认为用户的行为是可控的,从而更好的提供良好的执行环境。
编程语言和计算机体系结构的关系
编程语言的使用在计算机体系结构中处于操作系统的上层–用户层,编程语言为了降低用户使用系统接口的成本,将系统接口封装成了库函数供用户使用:
计算机软硬体系结构(整体)
计算机软硬体系结构是层状的,包含用户层,用户操作接口层、系统调用接口层、操作系统层、硬件驱动层、硬件层:文章来源:https://www.toymoban.com/news/detail-647238.html
程序执行任何操作都需要由计算机软硬体系结构的上层不断向下层传递才能完成。文章来源地址https://www.toymoban.com/news/detail-647238.html
到了这里,关于[Linux]计算机软硬体系结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!