文章目录
- 冯诺依曼体系结构
- 操作系统
- 概念
- 设计OS的目的
- 定位
- 如何理解管理
- 总结
- 系统调用和库函数概念
冯诺依曼体系结构
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。
截至目前,我们所认识的计算机,都是有一个个的硬件组件组成。
- 输入单元:包括键盘, 鼠标,扫描仪, 写板等
- 中央处理器(CPU)(快):含有运算器和控制器等
- 输出单元:显示器,打印机等
关于冯诺依曼,必须强调几点:
- 这里的存储器指的是内存(掉电易失)
- 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
- 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
- 一句话,所有设备都只能直接和内存打交道
设备 | 作用 | 速度 |
---|---|---|
CPU(中央处理器) | 计算 | 快 |
存储器 内存 | 存储 | 较快 |
外设 | 永久存储 | 慢 |
CPU其实很笨,只能被动的接受别人的指令,别人的数据->执行别人的指令,计算别人数据,cpu得先认识别人的命令->内部有自己的指令集,以硬件的方式做好的. | ||
所以我们写代码,编译的本质的写二进制可执行程序,翻译成CPU的指令集,让他执行命令. | ||
CPU在读取和写入的过程中,在数据层面,只和内存打交道:主要是为了提高整机效率 |
程序要运行的时候必须加载到内存上:CPU要执行我的代码访问我的数据,就必须在内存中读取(体系结构规定)->提高计算效率
操作系统
概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库, shell程序等等)
设计OS的目的
与硬件交互,管理所有的软硬件资源
为用户程序(应用程序)提供一个良好的执行环境
系统调用(OS提供的C函数)->操作系统->硬件驱动->硬件(软件)
定位
在整个计算机软硬件架构中,操作系统的定位是: 一款纯正的“搞管理”的软件.
如何理解管理
管理的例子
描述被管理对象
组织被管理对象
管理的本质->对数据的管理
所有的管理本质逻辑都是:先描述再组织,无论是对硬件还是软件的管理
eg.C++:先写一个类(描述),再list,vector(组织)
总结
计算机管理硬件
- 描述起来,用struct结构体
- 组织起来,用链表或其他高效的数据结构
系统调用和库函数概念
- 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
- 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。