操作系统的作用
- 管理计算机硬件
- 充当计算机用户和计算机硬件的中介(操作系统控制硬件,协调各个用户应用程序的硬件)
计算机系统的资源
CPU时间、内存空间、文件存储空间、I/O设备等
操作系统的定义
- 如何定义一个操作系统:
- 计算机系统的根本目的是,执行用户程序并且更容易解决用户问题。为了实现这一目的构造了计算机硬件。
- 由于硬件本身并不容易使用,因此开发了应用程序。
- 有些应用程序需要一些共同操作,如控制I/O设备。
- 这些控制和分配I/O设备资源的共同功能则被组成一个软件模型:操作系统
- 比较公认的定义:
- 操作系统是一直运行在计算机上的程序(通常称为内核(kernel))
- 除了内核外还有两类程序: 系统程序和应用程序
- 系统程序: 与系统运行有关,但不是内核的一部分
- 应用程序: 与系统运行无关的所有其他程序
中间件
- 产生: 移动操作系统通常不只有内核,也有中间件
- 定义: 为应用程序开发人员提供其他功能的软件框架
- 栗子: 最常用的两个移动操作系统(IOS和Android),除了内核外,都有中间件以便支持数据、多媒体和图形等.
总线
- 物理: 一根根线,用于连接一个或多个CPU和若干设备管理器
- 作用: 提供到内存的访问服务
设备管理器
- 作用: 负责一类特定的设备(磁盘驱动、音频设备或视频显示器等)
计算机开机(或重启)后的一系列操作:
- 初始程序: 当计算机打开或重启以便开始运行时,它需要运行一个初始程序
- 初始程序的位置: 初始程序(或引导程序)一般位于计算机的固件(firmware),如ROM(Read-Only Memory,只读内存)或EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读内存)
- 引导程序的作用: 它初始化系统的各个组件,从CPU寄存器、设备控制器到内存内容
- 引导程序: 引导程序必须知道如何加载操作系统并且开始执行系统,因此引导程序必须定位操作系统内核并且加到内存
中断:
- 作用: 用于告知CPU事件的发送,并采用相应的事件处理程序
- 特点: 当CPU被中断时,它停止正在做的事,并立即转到固定位置(通常包含终端服务程序的开始地址)再继续执行。在执行完毕(中断程序)后,CPU重新执行被中断的计算
- 硬件中断: 随时通过系统总线发送信号到CPU,触发中断
- 软件中断: 通过系统调用(也称监督程序调用(monitor call)),触发中断
位、字节、字
- 位: 或比特(bit),即一个0或一个1
- 字节(byte): 8位,是大多数计算机的常用最小存储
- 字(word): 计算机架构的常用存储单位,有一个或多个字节组成
CPU只能从内存中加载指令,因此执行程序必须位于内存
内存
- 定义: 内存(main memory),也称为随机访问内存(Random Access Memory, RAM)
- 作用: CPU从内存中加载指令,执行的程序必须位于内存之内.
- 冯·诺依曼体系结构:
- 首先从内存中获取指令,并存到指令寄存器(instruction register)。
- 接着,该指令被解码,也可能会从内存中获取操作数据并且存到内部寄存器
- 在指令完成对操作数据的执行后,结果也可存到内存
- 理想情况下,程序和数据无法永久驻留内存的原因:
- 内存通常太少,不能保留所有需要的程序和数据
- 内存是失性的(volatile)存储设备,掉电时就会失去所有内容
外存
- 作用: 扩充内存
- 特点: 能存储大量数据,且数据不易丢失
- 常见外存: 磁盘或硬盘
- 外存与内存的关系: 大多数程序(系统与应用)都保存在磁盘上,当要执行时才加载到内存
存储设备的层次
- 速度从快到慢:
- 寄存器
- 高速缓存
- 内存
- 固态硬盘
- 硬盘
- 光盘
- 磁带
- 注:
- 固态硬盘之上的存储系统为易失的
- 固态硬盘及之下的为非易失的
I/O结构
- 计算机系统由一个CPU和多个设备控制器组成,它们通过共同总线连在一起
- 每个设备控制器管理某一特定类型的设备
- 设备控制器:
- 每个设备控制器维护一定量的本地缓冲程序和一组特定用途的寄存器
- 负责在所控的外围设备与本地缓冲存储之间进行数据传递
- 操作系统为设备控制器提供了一个设备驱动程序,负责设备控制器,并且为操作系统的其他部分提供统一的设备访问接口
- I/O开始:
- 设备驱动程序加载设备控制器的适当寄存器,
- 设备控制器检查寄存器内容,以便觉得采用什么操作
- 控制器开始从设备像本地缓冲区传输数据
- 数据传输完毕后,设备控制器就会通过中断通知设备驱动程序
- 设备驱动程序返回控制到操作系统
- 直接内存访问:
- 产生: 上述第4步中断I/O会带来很大的开销,为了解决这个问题产生了直接内存访问(DMA, Direct Memory Access)
- 实现: 为I/O设备设置好缓冲、指针和计数器,设备控制器可在本地缓冲和内存之间传送整块的数据,而无需CPU的干预
- 与传统的区别: 每块只产生一个中断,来告知设备驱动程序操作已完成,而不像传统那样每个字节产生一个中断.
参考《操作系统概念》P1~P8