文章目录
- 1. 冯诺依曼体系结构
- 2. 初识操作系统
- 2.1 操作系统是什么?
- 2. 为什么要有操作系统
- 3. 操作系统是怎么管理的
- 4. 系统调用(System Call)
1. 冯诺依曼体系结构
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。
一般来说,计算机分为输入设备、输出设备、存储器、运算器&&控制器
名词解释
- 输入设备:输入设备包括:磁盘,网卡,键盘,鼠标等
- 输出设备:输出设备包括:磁盘,网卡,显示器,打印机等
- 中央处理器(CPU):包括运算器和控制器
关于冯诺依曼,需要强调与解释的东西:
- 这里的存储器指的是内存(掉电易失)
- 不考虑缓存的情况下,这里的CPU只能对内存进行读写,不能访问外设(输入和输出设备)
- 外设要输入或者输出数据也只能从内存中读取,不能直接从CPU中获取
- 所有的设备都只能和内存直接打交道(目的是为了提高效率)
我们知道,CPU的速度是最快的,里面配有寄存器也是最快的,内存是较快的,而外设是较慢的:
内存存在的意义在于:
如果没有内存,CPU只能从外设获取数据进行处理,但是,上面我们说到了,外设的速度是相对较慢的,此时的CPU效率取决于外设,会导致处理效率较慢。而内存的存在,解决了这个问题,可以先把数据存放在内存中,在加载到CPU进行处理,这大大提高的数据的处理。所以CPU读取数据必须从内存中拿!!!
而我们所说到的IO(输入输出既input和output)就是从内存的角度上看,把数据从输入设备存入内存的过程叫做input,把内存中的数据输出到输出设备的过程叫做output,这就是IO的过程
结论:
- 在数据层面:
- CPU只和内存打交道,不和任何外设直接打交道
- 所有的外设,有需要载入数据只向内存载入,内存写出也是向外设写出
- 在代码层面:
- 程序要运行必须加载到内存中,CPU要执行我的代码,访问我的数据只能从内存中读取(体系结构规定)
对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上。
请解释,从你登录上qq开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。如果是在qq上发送文件呢?
如果是发送文件的话,那么数据就需要先从磁盘载入到内存,然后在写到外设(网卡)再通过网络传输
2. 初识操作系统
2.1 操作系统是什么?
操作系统是一个对软硬件资源进行管理的软件
操作系统的定位:是一款专注于管理的软件
2. 为什么要有操作系统
为了更好的管理一台计算机的软硬件资源
通过合理的管理软硬件资源(手段),为用户提供更好良好的(稳定的,高效的,安全的)执行环境(目的)
3. 操作系统是怎么管理的
举个例子:大家作为学生,与自己学校的校长打过交道吗?应该很少有,但是大家又作为这个学校的学生被校长管理着,那么校长是怎么做到的呢?
是通过对数据的管理来管理学生的
所有的管理,本质是对数据做管理,管理的方法是先描述再组织
计算机管理软硬件资源的方式:
- 描述起来,用struct结构体
- 组织起来,用链表或其他高效的数据结构
计算机体系结构图
4. 系统调用(System Call)
在开发角度上看,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发
这对应着用计算机体系结构图中的户操作接口和system call,我们或者说用户不是直接和操作系统进行操作交流的,需要通过调用各种接口间接地进行交流