Linux进程
1.冯诺依曼体系结构
硬件:
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器。大部分都遵守冯诺依曼体系结构。
截止目前,我们认识的计算机都是由一个个的硬件组成
- 输入单元:鼠标,键盘,摄像头,话筒,磁盘......
- 中央处理器(CPU):运算器(对我们的数据进行计算任务——算数、逻辑运算)、控制器(对我们的计算硬件流程进行一定的控制)
- 输出设备:显示器,打印机......
以上都是独立的个体!各个硬件单元必须用“线”链接起来:总线,1.系统总线 2.IO总线。
关于冯诺依曼:
- 这里的存储器指的是内存
- 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
- 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取
- 一句话,所有设备都只能直接和内存打交道
一个程序要运行,必须先加载到内存中运行,为什么?
因为冯诺依曼体系结构规定!
对冯诺依曼的理解,不能停留在概念上,要深入到软件数据流上。
分析一下从登录qq开始和某位朋友聊天开始,数据的流动过程:
2.操作系统
软件:
概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的解释,操作系统包括:
- 内核(进程管理,内存管理,文件管理,驱动管理)
- 其他程序(例如函数库,shell库...)
设计OS的目的(为什么)
- 操作系统帮助用户。管理好下面的软硬件资源
- 为了给用户/用户程序(应用程序)一个良好(稳定,高效,安全)的运行环境
操作系统通过管理好底层的软硬件资源(手段),为用户提供一个良好的执行环境(目的)
定位(是什么)
在整个计算机软硬件架构中,操作系统的定位是:一款进行管理(软硬件)的软件
如何理解管理(怎么办)
- 描述被管理对象
- 组织被管理对象
操作系统里面。会有各种数据。可是,操作系统不相信任何用户!
操作系统为了保证自己的数据安全,也为了保证给用户能够提供服务,操作系统以接口的方式给用户提供调用的入口。来获取操作系统内部的数据。
接口:是操作系统提供的用C实现的,自己内部的函数调用---系统调用。
所有访问操作系统的行为,都只能通过系统调用完成!