1.1 操作系统的功能
计算机系统可以划分为四个组件:硬件,操作系统,应用程序和用户(硬件,软件,数据)
1.1.1 用户视角
(具有多个硬件)操作系统设计的主要目的(具有主次)
- 用户使用方便
- 性能
- 资源利用
(其他情况)操作系统设计的主要目的:优化资源利用率确保所有的CPU时间、内存和I/O都可以得到有效的使用,并且确保没有用户使用限额以外的资源
1.1.2 系统视角
可以将操作系统看成资源分配器,考虑如何为各个用户和程序分配资源
操作系统的另一个不同的视角是,强调控制各自I/O设备和用户程序的需求
控制程序管理用户程序的执行,防止计算机资源的错误或者不当的使用
1.1.3 操作系统的定义
操作系统是一种运行在计算机上面的程序(内核)
ps.除了内核以外还有两类程序:系统程序(不是内核的一部分)和应用程序
1.2 计算机系统的组成
1.2.1 计算机系统的运行
现代操作系统包括一个或多个CPU和若干设备控制器,通过公用总线相连而成,总线提供了共享内存的访问
当计算机刚刚打开时,初始程序或引导程序(必须定位到操作系统内核并且加载到内存)一般位于计算机固件,如只读内存或电可擦可编程只读内存
除了内核以外,系统程序在启动的时候加载到内存成为系统进程或系统后台程序
事件的发生通常通过硬件和软件的中断来通知,硬件可以通过系统总线发送信号到CPU,来触发中断,软件也可以通过执行系统调用(监督程序调用)触发中断
当中断的时候,会停止正在做的事情,并立即转到固定位置(包含中断服务程序的开始地址)再继续执行
中断:计算机体系结构的重要部分,不同的计算机终端不同,但是具有相同的功能
中断应将控制转移到合适的终端服务程序
转移实现的方法:
- 调用通用程序检查
- 调用特定中断处理程序(借助指针表调用)
指针表:位于地地址内存,包含各自设备中断处理程序的地址(数组或中断向量),中断体系结构里面也保存中断指令地址
中断请求 ----------> 设备号索引 ------------> 中断程序的地址
现代操作系统将返回地址保存在系统堆栈上,如果中断程序需要修改处理器状态,例如修改寄存器的值,则应该明确的保存当前状态,并在返回前恢复该状态,返回的地址加载到程序计算器
1.2.2 存储结构
CPU只能从内存当中加载指令,所以执行程序必须位于内存当中
通用计算机运行的大多数程序位于可读写内存,称为内存(通常为动态随机访问内存),也称为随机访问内存
load :将内存子节或子保存到CPU寄存器
store :将寄存器内容保存到内存
典型的指令执行周期(冯*诺依曼体系结构)
- 从内存中获取指令,存到指令寄存器
- 解码
- 从内存中获取操作数据并且存到内部寄存器
- 完成后结构存到内存
程序和数据不可能永远的保存在内存当中
- 内存通常太少,不可能永久的保存所有需要的程序和数据
- 内存是易失性的存储设备,掉电会失去所有的内容
外存的主要需求是:能永久存储大量数据
最常用的外存设备为磁盘或硬盘,能存储程序和数据
存储设备的层次:
- 寄存器
- 高速缓存
- 内存
- 固态磁盘
- 硬盘
- 光盘
- 磁带
1.2.3 I/O结构
即输入/输出结构,是计算机系统中至关重要的组成部分。它负责处理计算机与外部设备之间的数据交换,使得计算机能够接收来自外部的信息,并将处理后的结果输出到外部设备。 I/O结构的设计直接影响到计算机的性能和效率。一方面,如果I/O结构的带宽不足或延迟较大,可能会导致数据传输速度变慢,从而影响整个系统的运行速度。另一方面,如果I/O结构的设计不合理,可能会导致资源冲突或数据丢失等问题,从而影响系统的稳定性和可靠性。
1.3 计算机系统的体系结构
1.3.1 单处理器系统
专门执行有限指令集,而不执行用户进程(使用CPU监控相关执行即可)
1.3.2 多处理器系统
多处理器系统(并行系统,多核系统)
优点:
- 增加吞吐量
- 规模经济
- 增加可靠性
1.3.3 集群系统
由两个或多个独立系统(节点)组成,这种系统是松耦合的
具有高可用性服务,意味着一个或多个系统出错,依旧可以继续的提供服务
1.4 操作系统的结构
操作系统最重要的一点是具有多道程序能力,通过安排作业(编码与数据)让CPU总有一个执行作业,从而提高CPU利用率
分时系统(多任务系统)是多道程序系统的自然延伸,要求是可交互的
分时操作系统采用CPU调度和多道程序设计,为每一个用户提供一小部分的分时计算资源
进程:加载到内存并执行的程序
虚拟内存:用户可以执行比物理内存大的程序
1.5 操作系统的执行
现代操作系统依靠的是中断驱动
事件总是由于中断或陷阱引发的
陷阱(异常):一种软件生成的中断或源于出错或源于用户程序的特定请求
1.5.1 双重模式与多重模式的执行
至少需要其中两种单独的运行模式:
用户模式和内核模式(监视模式、系统模式、特权模式)
计算机硬件可以通过模式位进行操作:内核模式(0),用户模式(1)
---------------- p15图像
双重模式可以防止操作系统和用户程序受到错误用户程序的影响
实现:将可能引发损害的机器指令作为特权指令,并且硬件只有在内核模式下才允许执行特权指令
当执行系统调用时,硬件将其视为软件中断,通过中断向量转到操作系统的中断服务程序,并且模式位设置为内核模式
1.5.2 定时器
操作系统维持CPU,防止用户程序陷入死循环或不调用系统服务并且不将操作返回给操作系统
1.6 进程管理
程序本身不是进程,程序是一个被动实体,而进程是一个主动实体
进程是系统的工作单元,系统由多个进程组成
操作系统负责管理进程的以下活动:
- 在CPU上面调度进程和线程
- 创建和删除用户进程和系统进程
- 挂起和重启进程
- 提供进程同步机制
- 提供进程通信机制
1.7 内存管理
操作系统负责内存的以下活动:
- 记录内存的哪部分在被使用以及被谁使用
- 决定哪些进程会调入或调出内存
- 根据需要分配或释放内存空间
1.8 存储管理
1.8.1 文件操作系统管理
文件是创建者定义的相关信息组合,文件内容通常为程序(源程序和目标程序)和数据
操作系统负责文件管理的以下活动:
- 创建和删除文件
- 创建和删除目录,以便组织文件
- 提供文件和目录的操作原语
- 映射文件到外存
- 备份技术到稳定的存储介质
1.8.2 大容量存储器管理
操作系统管理硬盘的三个活动:
- 空闲空间分配
- 存储空间分配
- 硬盘调度
1.8.3 高速缓存
高速缓存有时也称为缓存,是计算机操作系统的重要原理
原理:信息通常保存在一个存储系统当中,当使用,它会被临时复制给更快存储系统,即高速缓存
内存可以看作为外存的高速缓存,这是因为外存数据先复制到内存以便使用,而且数据位于内存中才可以保存到外存
存储层次之间的信息传递可以是显式的,也可以是隐式的,取决于硬件设计和操作系统的控制软件(同一数据可能同时出现在不同的存储层次上:高速缓存一致性)
1.8.4 I/O系统
包含的组件:
- 缓冲,高速缓存和假脱机的内存管理组件
- 设备驱动器的通用接口
- 特定硬件设备的驱动程序
1.9 保护与安全
保护:用于控制进程或用户访问计算机系统的资源
1.10 内核数据结构
- 列表,堆栈以及队列
- 树
- 哈希函数与哈希表
- 位图
1.11 计算环境
- 传统计算
- 移动计算
- 分布计算:物理上面是分开的,可能异构的,通过网络(两个或多个系统之间的通信路径)相连的计算机系统
- 客户机-服务器计算
- 对等计算
- 虚拟化
- 云计算
- 实时嵌入式系统
1.12 小结
- 操作系统是管理计算机硬件并提供应用程序运行环境的软件
- 内存是唯一的,处理器可以直接访问的,大容量的存储区域(易失性存储)
- 外存:非易失性存储,最常用的是磁盘,提供数据和程序的存储
- 操作系统的设计具有多种方法,单处理器系统只有一个处理器,多处理器具有两个或多个处理器,并且共享内存和外存,集群系统是一种特殊的多处理器系统,通过局域网连接的多个计算机系统组成的
- 现代操作系统采用的是多道程序设计,允许多个作业同时存储于内存当中,保障CPU总有一个作业。分时系统是其扩展,采用调度算法快速切换作业
- 进程或作业是操作系统的基本工作单元。进程管理包含创建和删除进程,提供其他进程通信和同步机制。操作系统管理内存,以个闹钟内存的哪部分被使用以及被谁使用。操作系统还负责动态分配和释放内存空间。操作系统也管理存储空间包含提供文件系统来管理文件和目录以及管理大容量存储器设备的空间