这篇文章的主要内容是冯诺依曼计算机体系结构和操作系统的理解。
目录
如图是冯诺依曼计算机体系结构,计算机本质就是对数据进行处理的机器,图中,数据从输入设备交给内存,内存再交给CPU进行快速运算,再通过内存将数据交给输出设备。在数据层面上,CPU不会直接和输入输出设备直接交互,因为会拖慢CPU的运行速度,所以CPU和外设中间会有内存来充当一个巨大的缓存,从而做到运算速率最优化。
举例:如何理解程序运行之前,必须加载到内存?
我们写的程序=代码+数据 是为了对数据进行快速数据处理,都要将数据交给CPU来处理,要想让CPU进行处理,前提是必须进入内存当中。我们的可执行文件(.exe)只不过是编译好的二进制文件,在磁盘中保存,要想让CPU执行代码处理数据,必须将.exe加载到内存当中,再和CUP进行数据上的交互。
计算机本质就是硬件和数据的一个集成。如何很好的管理和维系这些硬件和数据呢?这时候就需要操作系统来解决了。
由图可知,操作系统向上提供系统调用接口,并使用shell外壳和库为用户提供便捷,让用户使用计算机进行开发。 操作系统向下是对硬件和数据(软件)的管理。一般一个用户想要访问底层硬件,必须贯穿整个层状结构。
可执行程序运行的本质:调用系统接口将可执行程序加载到内存当中->进而使用CPU进行数据处理。
系统调用和库:系统调用是操作系统为用户的使用对外暴露的部分接口,这部分接口在使用上功能比较基础,对用户要求较高,所以开发者将部分系统调用进行适度封装,从而形成库里面的一系列函数。这样更有利于用户进行二次开发。
在我们学习的过程当中,计算机体系结构和操作系统的基础是非常重要的,当我们遇到不能理解的问题,都可以靠向计算机体系结构和操作系统,宏观的理解问题,任何访问硬件的操作都需要层状结构自上而下通过!!