目录
一、冯诺依曼体系结构
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。
下面是冯诺依曼体系结构图:
我们所认识的计算机,都是输入设备、存储器、运算器、控制器、输出设备组成的。
- 输入单元:包括键盘,鼠标,扫描仪,写板,网卡,磁盘等;
- 中央处理器(CPU):含有运算器和控制器等;
- 输出单元:显示器,网卡,打印机等。
关于冯诺依曼,必须强调几点:
- 这里的存储器指的是内存;
- 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备);
- 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取;
- 一句话,所有设备都只能直接和内存打交道。
我们的数据需要先从磁盘加载到内存中,然后由CPU读取并进行计算,将计算的结果再次加载到内存中,最后再由内存写入磁盘,通过输出设备将数据交给我们。
为什么CPU为什么不能直接访问外设呢?
因为输入输出设备称之为外设,外设一般是很慢的,比如说磁盘,相对于内存,他的速度是非常慢的,但CPU的计算速度确是非常快的。就好比从磁盘的读取速度很慢,但是CPU的计算速度却很快,但是整体的速度还是以磁盘的读取速度为主的,所以整体效率就以外设为主。
对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上,请解释,从你登录上qq开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。如果是在qq上发 送文件呢?
首先从键盘上读取信息然后加载到内存,再从内存将数据通过一系列操作发送到输出设备上(网卡),然后通过一系列的网络操作将数据发送到朋友的输入设备上(网卡),朋友的电脑再从输入设备中将数据读到内存,然后通过输出设备(显示器)就可以将信息发送到朋友的电脑上。
二、操作系统
1、概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
- 内核(进程管理,内存管理,文件管理,驱动管理);
- 其他程序(例如函数库,shell程序等等)。
操作系统是一款进行软硬件资源管理的软件。为什么操作系统要对软硬件进行管理呢?
因为操作系统对下要管理好软硬件资源,对上需要给用户提供良好(安全、稳定、高效、功能丰富等)的执行环境。
操作系统管理的本质:先描述,再组织。
- 描述:通过 struct 结构体对各种数据进行描述;
- 组织:通过 链表 等高效的数据结构对数据进行组织管理。
在计算机中,操作系统就相当于我们的管理者,而硬件驱动就相当于我们的执行者,而软件就是我们被管理者。
首先操作系统是不相信任何人的,正如我们是银行的用户,经常去银行存钱,但银行就信任我们吗?为了避免用户中有人恶意破坏,而对操作系统造成伤害, 所以操作系统并不是暴露自己的全部功能而是以系统调用来访问操作系统。由于系统调用的使用成本可能较高,之后在此基础上便有人进行二次的软件开发而产生了 图形化界面 和 shell 及工具集。
系统调用与库函数
- 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分 由操作系统提供的接口,叫做系统调用;
- 系统调用在使用上,功能比较基础&#