第一章——操作系统导论
1. 操作系统的定义
操作系统是计算机硬件与用户之间运行的一个程序
- 一直运行在计算机上的程序,狭义上被称为内核(kernel)程序,其他的则是系统和应用程序
- 资源管理平台、运行程序的平台,也是为用户提供服务的平台
2. 计算机系统的结构
计算机系统的结构是层次结构
- 硬件 —— 提供最基本的计算资源
- 操作系统 —— 协调控制多个用户or应用对硬件的使用
- 应用程序 —— 为用户解决问题的方法程序
- 用户 —— 人、设备、其他计算机系统
3. 计算机系统的组织
单个或多个中央处理器通过总线与内存和设备控制器相连
1. 启动
Power On -> Motherboard -> BIOS -> Bootstrap(引导程序)
- 引导程序
一般位于ROM或EEROM中,称为固件(firmware)
工作内容包括:
(1) 初始化设备
(2) 把操作系统载入到内存中
(3) 运行第一个进程init(),等待事件发生
2. 中断
事件的触发通过中断实现
-
软中断
系统调用(软件)触发中断。异常时除零,不可以屏蔽 -
硬中断
硬件通过向CPU发送信号来触发中断,用户一般不可见,可以屏蔽
每个中断都有自己的中断服务程序ISR
系统通过中断向量表来管理中断请求与中断服务程序之间的对应关系
中断举例:- I/O设备发生的事件,如按键盘,点击鼠标,键盘的读写等
- 异常事件、重要事件的发生,如断电,部件失灵等
- 非法指令,如除以零,下达不存在的指令等
中断的工作流程:
当发生中断时,-
保存当前进程的程序计数器(PC)
-
跳到相应的中断服务程序中,并运行该程序
一旦中断服务程序运行结束, -
返回到被中断的程序(通过PC),并继续运行
-
或者返回操作系统指定的程序中
所以现代的操作系统一般被视为以中断驱动或事件驱动的系统
3. I/O结构
- I/O设备与CPU可以同时运行
- 每个设备控制器负责相应类型的设备
- 每个设备控制器拥有自己的本地缓冲器(buffer)和寄存器
- CPU负责内存与本地缓冲器之间的数据传递
- 设备控制器负责在其所控制的外部设备与本地缓冲存储之间进行数据传递
- I/O操作结束后,设备控制器通过中断通知CPU表示I/O结束
- 传输单位为字节(Byte)
- CPU和磁盘控制器小容量的寄存器用于传输数据
DMA直接访问内存
DMA直接访问内存是在专门的硬件控制下,实现高速外部设备与内存储器之间自动成批交换数据,尽量减少CPU干预的I/O操作方式
- DMA控制器在没有CPU干涉的情况下,以块(Block)为单位,负责在设备缓冲器与主存之间的数据传送
- 从每字节传送触发中断表示完成,变为每块触发(字节 --> 块)
- 有利于高速I/O设备传送数据,接近于内存速度
I/O操作方法
- 同步操作:I/O与用户程序无法同时运行
- 异步操作:I/O运行时,用户程序可以继续运行
4. 存储结构
一级存储设备:内存
二级存储设备:磁盘类
- 磁盘:表面划分为多个磁道,磁道又划分为多个扇区
- 闪存:芯片级别,移动存储
- 固态状态硬盘:SSD(Solide-State-Disk)
4. 计算机的体系结构
1. 单处理器系统
- 系统中只有一个通用处理器(CPU),处理来自用户进程的指令
- 一般还包括其他专用处理器,如磁盘控制器、图形控制器等,专用处理器不接受用户的指令,只接受系统的指令
- 有的通用处理器集成了专用处理器
2. 多处理器系统
1. 非对称处理器(异构)
- 处理器在结构上不同
- 一个负责操作系统,其他运行其他程序,处理器之间有主从关系
2. 对称处理器(同构)
- 各处理器在结构上完全相同
- 操作系统可以运行在任何一个处理器上,处理器之间没有主从关系
3. 多核处理器
- 一个处理器上有多个CPU,也就是集成。可对称也可非对称
注意:多处理器情况下,不管多处理器还是多核处理器,每个处理器都需要有自己的寄存器和高速缓存
?:(内存共享)避免处理器之间互相干扰和冲突,并且可以提高系统性能。
3. 集群系统
由互相连接的计算机组成的并行分布式系统,并共享存储,可以作为单独、统一的计算资源来使用。
- 多个自治系统协同工作
- 自治系统指的是个计算机系统(节点)都有自己独立的操作系统的系统
- 一个集群系统可以看成是单个逻辑计算单元,他有多个节点通过网络连接组成
优点 -高性能
更快的处理速度、更大的存储容量、更好的数据完整性、更高的可靠性和更广泛的可用性资源
缺点 -高费用
但是,需要更昂贵的实现和维护。
1. 非对称集群:选出一个节点当主节点,即主机待机模式的节点,有主从关系
2. 对称集群:没有主节点,全部节点地位相等,没有主从关系
5. 操纵系统的结构及操作
1. 操作系统的结构
1. 批处理系统
单处理器环境下的工作流程,当发生I/O操作时,由操作员调度另一个程序运行,从而提高CPU的使用率
2. 多道程序系统(提高使用率)
- 当系统进行I/O操作时,调度器就会选择另一个任务并运行
- 需要一个调度器,通过一定的调度机制选择任务并运行
- 为保障CPU总有任务运行(提高CPU的使用率),多道程序系统必须把需要运行的多个任务载入到内存以被选择并运行
可能会出现低优先级的任务难以运行的问题
3. 分时系统(体现公平性)
又称多任务系统
给每个任务赋予一个给定的时间片(time slot or time slice)CPU在多任务之间互相切换,如20msec为单位切换另一个用户
现在的操作系统一般采用多道和分时混合的系统
2. 操作系统的操作
- 一个操作系统可以被多个用户、多个程序所共享
- 用户之间、程序之间可能相互影响
- 非发货不正确操作会导致系统崩溃或破坏
操作系统需要一个保护机制
双重模式操作
- 用户模式,用户掌握计算机的控制权,运行用户代码
- 内核模式,操作系统掌握计算机的控制权,运行系统代码
- 通过模式位(Mode bit) 来区分用户模式和内存模式(存储在模式位寄存器中)
- 以0、1区分,又称管理模式,系统模式,特权模式,监督程序模式
如系统调用(System Call),当用户程序调用系统调用函数的时候,操作系统的运行模式从用户模式转变成内核模式
6. 操作系统的管理内容
1. 进程管理
- 进程是运行中的程序,是系统的运行单元
- 程序是被动实体,而进程是活动实体
- 在一个系统中有无数个进程在同时运行,运行在一个或多个CPU上,进程之间通过复用CPU并发运行
- 运行进程需要分配资源,结束时收回已分配的资源
2. 内存管理
- 主要目的是提高内存的使用率
- 管理内存的数据的存储、指令的运行
内容:
- 当有内存有空闲空间时,决定哪些进程可以载入内存,载入到哪里等
- 记录内存的哪些部分正在使用以及被谁使用
- 根据需要分配和释放内存空间,即分配的方式
3. 存储管理
文件管理系统
统一的逻辑信息存储观点——文件系统
- 对存储设备的物理属性进行了抽象的定义,即文件,他是存储的逻辑单元
- 计算机可以在多种类型的物理介质上存储信息
- 每种介质通过一个设备来控制,如磁盘驱动器,磁带驱动器
- 每个介质有不同的访问速度、容量、数据传输率和访问方法
- 文件通常组成目录以方便使用
- 多用户访问文件时,需要控制权限问题
大容量存储系统
一般指的二级存储设备,如硬盘
管理活动包括:
- 空闲空间的管理
- 存储空间的分配
- 硬盘的调度
高速缓存-Cache
- 临时存储设备,一般设置在高速设备和低速设备之间
- 当高速设备从低速设备上存取数据时,会把数据临时复制到高速缓存上
- I/O开始时,操作系统先到高速缓存里查找
需要保证数据的一致性
4. I/O子系统
针对用户隐藏具体硬件设备的特性,包括:
- 一个包括缓冲高速缓存和假脱机的内存管理部分
- 备用设备驱动器接口
- 特定硬件设备的驱动程序
- 缓冲:为传输数据,暂时存储
- 缓存:为存储数据,暂时存储
- 假脱机:关于低速字符设备与计算机主机交换信息的一种技术,又称外部设备联机并行操作。可以提高I/O速度、设备并没有单独分配给任何拍一个任务、通过实现虚拟设备可以共享设备
7. 其他计算机系统
- 分布式系统:物理上分开的计算机系统通过网络连接在一起
- 其他专用系统
- 实时系统:系统中的任务有时间节点,多用在军事设备、医疗设备
- 多媒体系统
- 嵌入式系统
- 手持系统
- 客户机、服务机计算(C/S)
- 计算服务器系统
- 文件服务器系统
- 基于web计算
- 负载平衡器
- 点对点计算(Peer-to-Peer)
- 又是客户机、又是服务器
用系统
- 又是客户机、又是服务器
- 实时系统:系统中的任务有时间节点,多用在军事设备、医疗设备
- 多媒体系统
- 嵌入式系统
- 手持系统
- 客户机、服务机计算(C/S)
- 计算服务器系统
- 文件服务器系统
- 基于web计算
- 负载平衡器
- 点对点计算(Peer-to-Peer)
- 又是客户机、又是服务器
- 复杂