一.冯诺依曼体系
1.定义:
冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。
数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。
2.结构概述图:
注:内存是硬件,相当于一个巨大的缓存。
3.基于冯诺依曼结构的计算机:
3.1.特点:在数据层面上,cpu一般不和外设直接交互,而是优先和内存直接打交道,这样提高了效率。
3.2.原因:以cpu为中心,距离cpu越近,存储效率越高,造价越贵。
计算机的存储器金字塔:
(从上到下容量越来越大,速度越来越慢,价格越来越低)
3.3.本质:用较少的钱,做出来效率不错的计算机。
问题:程序在运行之前,为什么必须先加载到内存?
程序=代码+数据,最重要cpu执行,cpu需要先读取到这些代码和数据
程序是一个exe,本质是文件,只能在磁盘中保存
而体系结构决定cpu不能直接和外设交互,只能通过内存间接交互。
二.操作系统
1.定义:
一款进行软硬件资源管理的软件,在开机时第一个加载。
2.目的:
通过操作系统将软硬件资源管理好(手段),给用户提供良好的(稳定,安全,高效)使用环境。
3.概述图:
问题:操作系统内部,一定会存在大量的数据对象和数据结构,那是如何管理的?
校长通过管理结构化的学生信息,达到管理学生的目的。
操作系统通过管理结构化的数据,达到管理软硬件资源的目的。
4.方法:先描述,再组织
类似我们c++解决问题,
封装继承多态--------->描述
各种STL容器---------->组织
5.操作系统管理核心:
1.进程管理
2.内存管理
3.文件/IO管理
4.驱动管理
类似于银行,不相信用户,但却在给我们提供服务。操作系统不相信用户,不允许访问底层数据,但却不得不给我们提供服务。引出来系统调用接口这个概念。
6.系统调用接口
6.1.定义:为了保护操作系统程序不被用户程序破坏,一般都不允许用户程序访问操作系统的程序和数据,所以也不允许应用程序采用一般的过程调用方式来直接调用这些过程,而是向应用程序提供了一系列的系统调用命令,让应用程序通过系统调用去调用所需的系统过程。
银行系统:
银行窗口-----------系统调用接口
注:1.一般一个用户想访问底层OS数据或者访问硬件,必须贯穿整个操作系统
2.站在系统用户角度,使用外壳程序
站在系统开发者的角度,直接调用系统接口,将系统接口可以封装成各种函数,打包成库。这样开发者使用相关功能时,直接调库函数即可。