冯诺依曼体系结构与操作系统(OS)详解
冯诺依曼体系结构图
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 截至目前,我们所认识的计算机,都是由一个个的硬件组件组成 输入单元:包括键盘, 鼠标,扫描仪, 写板等 中央处理器(CPU):含有运算器和控制器等 输出单元:显示器,打印机等
关于冯诺依曼,必须强调几点: 这里的存储器指的是内存 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。 一句话,所有设备都只能直接和内存打交道
冯诺依曼体系结构详解
内存存在的意义: 为什么要有内存呢?CPU不可以直接从输入设备读取数据,经过计算,再从输出设备显示出来吗?
因为输入设备和输出设备的速度远小于CPU的计算速度,CPU直接从输入设备读取数据,经计算后再交给输出设备输出数据,这样会大大降低计算机的执行能力。
内存具有数据存储能力:现在计算机一般都有8G/16G的存储空间。
内存可以预装数据,供CPU读取。CPU在执行计算时,内存也同时在预存装载数据,这样CPU便可源源不断的从内存中读取数据,提高计算机的执行能力。
总结: 站在硬件角度和数据层面上,CPU只和内存打交道,外设只和内存打交道
输入设备:键盘、网卡、硬盘、话筒、摄像头 输出设备:显示器、音响、网卡、硬盘 数据要处理,必须要预装载到内存中,假设CPU在执行第100行命令,那么内存就会预装载100行之后的命令,预装载由操作系统完成。
程序要运行之前,必须先加载到内存,为什么? 可执行程序(文件)是放在硬盘上的(外设),CPU要去执行可执行程序,要从内存中读取数据。
各种硬件单元之间链接用的是:总线(IO总线、系统总线)
CPU是如何知道,输入设备有数据需要读取的呢?
从硬件上来看两台电脑如何通信
操作系统(OS)
概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括: 内核(进程管理,内存管理,文件管理,驱动管理)其他程序(例如函数库,shell程序等等)
设计OS的目的
与硬件交互,管理所有的软硬件资源为用户程序(应用程序)提供一个良好的执行环境
定位
在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件
操作系统(OS):进行硬件管理(内存管理,文件系统),驱动管理、进程管理。操作系统是一款进行软硬件资源管理的软件
为什么要有驱动:
所有硬件的访问工作都要由操作系统来完成的话,那么只要硬件发生变化,那么操作系统也要发生变化。这不现实,所以需要一种软件来控制各种硬件,这种软件叫做驱动。
驱动:驱动是直接和硬件打交道的软件,驱动一般都是硬件厂商提供的。让操作系统和硬件进行解耦。
用户可以直接访问操作系统吗?
操作系统要保证自身的安全,不会让用户直接访问操作系统,而是在用户层与操作系统直接增加很多的接口,叫做系统调用接口。
系统调用和库函数概念
因为用户不都是程序员,系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发让用户直接使用系统调用接口,是有一定困难的,所以在接口之上就封装了库:例:printf,scanf等库函数,供用户使用。
|