目录
1、冯诺依曼体系
1、冯诺依曼是什么?
我们常见的计算机,笔记本,以及不常见的计算机,例如服务器,大都基本遵守冯诺依曼体系
硬件构成:
存储器:指的是内存
输入设备:键盘、摄像头、话筒、磁盘、网卡
输出设备:显示器,音响、磁盘(数据显示到输出设备中)、网卡
中央处理器:主要组件是运算器(算术运算、逻辑运算 if判断等)、控制器(cpu是可以响应外部事件的,协调外部就绪事件,比如,拷贝数据到内存)
2、冯诺依曼体系是怎么设计的
问题:为什么要有存储器?
可以输入设备把自己的数据交给cpu,cpu对数据做计算,计算完后把数据交给显示器呀
1、一般而言,计算机体系里面,运算速度或者存储效率 cpu和寄存器>内存>磁盘/SSD>光盘>磁带。运算速度相差是数量级的
2、计算机系统的整体效率不是由最快的决定,而是由最慢的决定,cpu和外设运算的数量级别相差很大,外设和cpu交互的时候,这些设备会拖慢cpu的速度,导致计算机系统运行降低
3、cpu和外设直接交互,就没有操作空间,软件无法参与进来,只能从硬件干读干写,整个系统效率低下。
4、因为存储器的存在,可以用一些软件上的策略,比如操作系统,可以预先把外设中的数据加载到内存当中,让cpu和内存交互,而不用与外设交互,能够一定程度上提高整机的效率问题。
3、结论
1、cpu读取数据(数据+代码),都是要从内存中读取,站在数据的角度,不认为cpu和外设直接交互。
2、cpu要处理数据,需要先将外设中数据加载到内存中,站在数据的角度,外设只和内存交互。
3、为什么程序(文件在磁盘上)要运行,必须先被加载到内存中?这是体系结构的特点决定的
冯诺依曼解释与朋友QQ聊天,数据的流动过程。
双方使用的电脑都遵循冯诺依曼体系,打开QQ对话框,从(输入设备输入数据)键盘输入 你好 ,
数据输入到内存中,cpu处理后写回内存,再把数据刷新到外设(网卡)中,最后发送到网络中,
到对端主机后,显示对端主机的硬件输入设备(网卡)先识别到这个数据,根据冯诺依曼体系规定,把数据从网卡读到内存里,经过cpu处理写回内存,刷新到输出设备(硬件是显示器,软件是QQ对话框)中。
2、操作系统
1、OS是什么?
操作系统是搞管理的,是对软硬件资源管理的软件
计算机整体层状结构:
2、为什么要有操作系统
对用户提供一个稳定、安全、简单的执行环境。
对下通过软硬件管理的方式保证系统的稳定性。
3、理解"管理"
1、操作系统是怎么做到管理的?
2、当被管理的数据很多时,OS如何做到很好的管理?
OS要先对被管理对象进行描述,根据描述类型,定义对象,可以把对象组织成特定的数据结构,因此对多个管理对象变成对某种数据结构的管理,
以特定数据结构组织好,所以对特定对象做管理,就变成了对特定数据结构做增删查改。
所以OS要管理硬件,OS内部管理各种不同的硬件就要有对应描述该结构体的数据结构,把所有的数据结构以链表结构维护起来,当有硬件状态发生变化时,只要改数据结构就行,所以对硬件的管理工作,就转化成了对数据结构的管理
因此OS内部一定存在大量的数据结构和算法,OS要管理各种硬件就要对硬件描述起来,管理各种软件也要把相应的软件描述起来,所以会对软硬件数据结构匹配到对应的算法
3、总结
核心:先描述、在组织
OS要管理,把对象以特定数据结构组织好,所以对特定对象做管理,就变成了对特定数据结构做增删查改。
本质先对被管理对象用struct结构体描述起来
把结构体组织起来,用链表或其他高效的数据结构来进行增删查改
4、系统调用和库函数概念
操作系统对外提供服务是通过系统调用接口的方式来完成对外提供服务的。
在开发角度,操作系统会对外表现一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
在系统调用在使用上,功能比较基础,对用户的要求也相对比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,就有利于更上层用户或者开发者进行二次开发。