一.冯诺依曼体系结构
输入设备:键盘,鼠标,话筒,摄像头...网卡,磁盘
输出设备:显示器,磁盘,网卡,打印机
外设:输入设备+输出设备
cpu(中央处理器)=运算器+控制器
存储器:内存
磁盘:外存(input/output->IO)
1.程序运行,必须先加载内存!(体系结构规定)程序运行之前,在磁盘->文件上
为什么要从磁盘加载(过程:input!)到内存?cpu获取,写入只能从内存中进行!
软件运行:cpu执行我们的代码,访问我们的数据!只能从外设加载到内存,cpu才能获取
数据是从一个设备“拷贝”到另一个设备(体系结构的效率:由设备的拷贝效率决定!)
cpu在数据层面,只和内存打交道,外设只和内存打交道!
输入输出设备效率低,cpu运算速度快
2.是否能取消存储器,直接用cpu替代?cpu运算速度快,当cpu运行结束,输出设备还没有运行结束,数据无法输出,输入设备慢,数据无法输入到内存上(木桶定理)
内存:用内存对cpu和外设进行速度适配(计算机性价比高)芯片技术+摩尔定律
3.理解数据流动
冯诺依曼进行数据流动
二.操作系统
一个基本程序的集合,是一款进行软硬件管理的软件
操作系统包括:
内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如:函数库,shell程序等)
设计操作系统的目的:
向下进行软硬件资源的管理(鼠标外部手动连接后,电脑弹窗驱动程序进行鼠标连接)
对下,与硬件交互,管理所有的软硬件资源 (是手段)对上,为⽤户程序(应⽤程序)提供⼀个良好的执⾏环境(目的!)
1.软硬件体系结构层状结构
2. 访问操作系统,必须先使用系统调用 --- 即函数,只不过是系统提供的system call
高内聚,低耦合(方便代码后续的可维护性->一个模块修改不会变动另一个模块)
3.我们的程序,只要判断出它访问了硬件,那么它必须贯穿整个软硬件体系结构
封装到系统调用,然后驱动管理,驱动程序,最后显示到显示器上
printf的本质:是你把你的数据写到了软件!是显示器!
4.库可能在底层封装了系统调用
理解操作系统:
核心功能:在整个计算机软硬件架构中,操作系统的定位是:⼀款纯正的“搞管理”的软件
如何理解管理:
底层硬件:学生 驱动程序:辅导员 操作系统:校长
1.要管理,管理者和被管理者,可以不需要见面
2.管理者和被管理者,怎么管理?根据“数据”进行管理!
3.不需要见面,如何得到数据?由中间层(如:驱动程序)获取!
先描述(类),再组织(STL)(对任何“管理”场景进行建模!)