计算机软硬件体系结构
前言:各位老铁好,今天我来分享有关Linux进程的知识,在讲解Linux进程之前,我会先给大家讲解清楚计算机的软硬件体系结构,这个对于我们后面理解进程有着非常大的帮助,希望各位老铁能好好看看这部分内容 。
1.冯诺依曼体系结构
相信冯诺依曼体系结构对于学计算机我们并不陌生,我们或多或少都听过冯诺依曼体系结构,当然没有听过也没事,现在我来为大家画图讲解冯诺依曼体系结构。
我们知道我们写的代码经过编译器 编译会生成二进制的可执行文件加载到磁盘中,由于磁盘是外部设备,所以磁盘速度很慢,但是我们的二进制可执行程序需要加载到CPU中执行,而CPU速度很快,如果CPU需要等待磁盘加载完成后再从磁盘中读取数据,那么会极大的浪费CPU资源而且降低计算的效率,所以CPU不会直接从磁盘中读取数据,而是先提前把磁盘中数据加载到内存中(内存速度相对于磁盘较快),CPU再从内存中读取数据。
总之就一句话:CPU不直接和外部设备打交道。
这里再解释一个名词,IO过程:就是外部设备把数据搬入内存/搬出内存的过程。
2.管理
相信管理这个名词对于各位老铁并不陌生,在社会中,人不是管理者就是被管理者,今天我需要给各位老铁讲解一个小故事来理解管理这个名词。举个例子:现在笔者是一名大二的学生,笔者除了在学校的开学典礼上见过校长,其余时间就很少见过校长了,校长也不会认得我这个人,我们都知道校长(一般而言能够对重大事务有着决策权就是管理者)在学校那绝对是管理者了,而我作为学生那肯定被管理者了,但是校长这个没和学生见过几次面的管理者是如何对我们学生进行管理的呢?是如何知道学生成绩情况,学籍信息,有没有交学费等等呢?
如果我们深入思考一下,我们就会知道校长是会通过我们档案可以知道我们的信息,可以看成绩统计表来知道我们的学习情况,挂科率是多少啊等等,所以由此我们可以得出一个结论管理者是不需要和被管理者见面的,置需要对于数据管理就能做出决策了。
所以管理的本质就是对数据的管理
操作系统(Operating System(简称为OS)):操作系统就是一个对于软硬件进行管理的软件(这是操作系统的手段),为用户提供良好的,稳定的,安全的,执行环境(这是目的)
通过上面的知识,我们就可以先搭建出计算机软硬件体系结构的一部分了
然后我们继续我们的小故事,那么校长作为管理者是如何让自身的决策实现呢?那么辅导员作为执行者就登场了,有一天校长看了大二计算机学院的计算机2班和3班的学习成绩统计表,发现这两个班的期末成绩相对于大一时成绩下滑了很多,挂科率直线上升,然后校长生气了,针对这一情况校长做出了狠抓这两个班学习的决策,辅导员接收到了校长的指令,就开始实施一系列抓学习质量的措施。
那么辅导员就相当于操作系统和硬件之间的驱动器,主要是用于执行操作系统的指令。
那么我们计算机软硬件体系结构就变成了下面的图片那样
故事继续,最开始学校只是有100多名学生,校长通过把这些学生的数据存到Excel表格中,每天上班观察完这些数据,就去干别的事了,效率还行,但是突然有一天学校出名了,报考的人数增加了很多,被录取的人也变很多了,从最开始100多人到现在一万多人,校长说如果我每天看这么多数据,那不得累死我,正好,这个校长以前是非常厉害的程序员大牛,他创建了一个结构体,把学生的共有属性放到了结构体中(例如学生的姓名,性别,年龄…),再通过链表把每一个结构体对象连接起来,这样下次校长需要选出3名数学成绩最好的同学去参加全国大学生数学竞赛,校长就不需要一个一个同学进行比较,直接遍历链表找出前三个就行了,这大大提升校长的管理效率。
所以,管理的本质就是对数据的管理,管理的方式可以概括为先描述(描述出共同属性),再组织(通过数据结构将这些对象组织起来)
笔者再来为大家讲一个小故事,相信大家都去去过银行吧,那么我们存钱为什么银行不能让我们自己把钱拿进仓库呢?笔者觉得自己是一个好人啊,肯定不会动银行仓库里任何东西啊,存完我的钱我就出来了,但是无论我怎么跟工作人员说,人家就是不让我进去,人家跟我说要办理存款业务只能让柜台帮我存,如果不存钱就请出门左拐,那么为什么银行会这样呢?为什么不让我把钱自己放到仓库呢?明明我是好人啊。
银行的经理回答了我这个问题,他说先生我相信你是一个好人,但是如果让你自己把钱放到仓库里面,那么其他人也会想这么干,那么银行需要判断每一个人是否是好人,这样的成本太高了,而且也不容易判断,所以银行干脆不相信任何人,无论是谁来办理业务,只能在厚厚的玻璃外面窗口进行办理业务。
故事里的银行就是操作系统,同样操作系统也不相信任何人,操作系统也只会提供系统调用接口给用户调用系统软硬件,防止别人随意修改系统的软硬件程序。
那么我们的计算机软硬件体系结构就变成了以下的图片
但是由于系统调用接口需要具备高深的专业的知识才能使用,所以为了更 方便用户的使用,在系统调用接口的上层提供了用户操作接口。
到这里,对于计算机的软硬件体系结构我们就学习完了。
计算机软硬件体系结构
总结:
计算机的软硬件体系结构是一个复杂的系统,涉及到硬件和软件的多个层面。硬件提供了计算和存储的基础,软件则管理和控制这些资源,提供用户和应用程序的接口。通过合理的设计和优化,可以提高系统的性能和安全性,满足各种应用需求。希望这篇博客能帮助你更好地理解计算机的软硬件体系结构。