欠下的总是要还的,对操作系统的学习!
持续更新:
操作系统
操作系统引论
进程的描述与控制
前趋图和程序执行
-
前趋图
- 程序执行的先后顺序图
-
程序顺序执行
-
程序并发执行
进程的描述
-
进程的定义和特征
-
进程实体(进程映像)
- 程序段
- 相关数据段
- PCB
-
进程的特征
- 动态性
- 并发性
- 独立性
- 异步性
-
-
进程的基本状态及转换
-
三种状态
-
就绪
-
执行
-
阻塞
- 静止阻塞
- 活动阻塞
-
-
引入
- 创建
- 激活
-
-
挂起操作和进程状态的转换
-
挂起
-
终止
- 操作系统善后
- PCB清零
-
-
进程管理中的数据结构
-
数据结构分类
-
内存
- 内存表
-
设备
- 设备表
-
文件
- 文件表
-
进程
-
进程1....n
- 进程实体及资源
-
-
-
PCB作用
- 作为独立运行基本单位的标志
- 能实现间断性运行方式
- 提供进程管理所需要的信息
- 提供进程调度所需要的信息
- 实现与其他进程的同步与通信
-
PCB中的信息
-
进程标识符
- 外部标识符
- 内部标识符
-
处理机状态
-
处理及寄存器中的内容组成
-
通用寄存器
- 用户寄存器
-
指令计数器
-
程序状态字
-
用户栈指针
-
-
-
进程调度信息
-
进程状态
-
进程的优先级
-
进程调度所需的其他信息
-
事件
- 阻塞原因
-
-
-
PCB的组织方式
- 线性方式
- 链接方式
- 索引方式
-
进程控制
-
操作系统内核
-
OS内核两大功能
-
支撑功能
- 中断处理
- 时钟管理
- 原语操作
-
资源管理功能
- 进程管理
- 存储器管理
- 设备管理
-
-
-
进程的创建
- 申请空白PCB
- 为新进程分配其运行所需的资源
- 初始化进程控制块
- 如果进程就绪队列能够接纳新进程,就将新进程插入就绪队列
-
进程的终止
-
终止原因
- 正常结束
- 异常结束
-
终止过程
- 根据被终止的进程标识符,检索PCB,读取进程状态
- 若处于执行态,立即终止执行,并置调度标志为真,用于指示该进程被终止后应重新调度
- 若该进程还有子孙进程,也予以终止
- 将被终止进程所拥有的全部资源或者归还父进程,或系统
- 将被终止的进程,移出其所在队列或列表,等待其他程序收集信息
-
-
进程的阻塞与唤醒
-
阻塞原因
- 资源亲求失败
- 等待某种操作的完成
- 新数据尚未到达
- 等待新任务的到达
-
阻塞过程
- 自身过程(调用block)
- 将PCB插入阻塞队列
-
唤醒步骤
- 1、其他进程调用wakeup
- 2、从阻塞队列移出
- 3、将状态修改为就绪
- 4、将PCB插入就绪队列
-
-
进程的挂起与激活
-
挂起
-
1、调用suspend源语
-
2、检查状态:
- 处于就绪->改为静止就绪
- 活动阻塞->静止阻塞
-
PCB移至某指定内存区域
-
-
激活
-
1、调用active
-
2、从外存调入内存
-
3、检查状态
- 静止就绪->活动就绪
- 静止阻塞->活动阻塞
-
-
进程同步
-
进程同步的基本概念
-
两种制约关系
- 间接相互制约
- 直接相互制约
-
临界资源
-
临界区
-
同步机制应遵守的规则
- 空闲让进
- 忙则等待
- 有限等待
- 让权等待
-
-
硬件同步机制
-
关中断
-
在进入锁测试前关闭中断
-
缺点
- 1、滥用关中断权力可能导致严重后果
- 2、时间过长会影响系统效率
- 3、不适用于多CPU
-
-
-
Test-and-Set实现互斥
-
Swap
-
-
信号量机制
- 1、整型信号量
- 2、记录型信号量
- 3、AND型信号量
- 4、信号量集
-
信号量的应用
- 实现进程互斥
- 实现前趋关系
-
管程机制
- 资源管理程序
经典进程的同步问题
- 生产者消费者问题
- 哲学家进餐问题
- 读者-写者问题
进程通信
-
进程通信的类型
-
管道通信系统
-
需要提供的能力
- 互斥
- 同步
- 确定对方存在
-
-
消息传递系统
- 直接通信方式
- 间接通信方式
-
共享存储器系统
- 基于共享数据结构的通信方式
- 基于共享存储区的通信方式
-
客户机-服务器系统
-
套接字
- 1、基于文件型
- 2、基于网络型
-
远程过程调用
-
远程方法调用
-
-
-
消息传递通信的实现方式
-
直接消息传递系统
- 直接通信原语
- 消息的格式
- 进程的同步方式
- 通信链路
-
信箱
-
-
直接消息传递系统实例
线程的基本概念
-
线程的引入
- 减少程序在并发执行时的时空开销
-
线程与进程的比较
-
进程的基本属性
- 拥有资源的独立单位
- 可独立调度和分配的基本单位
-
线程
- 作为调度和分配的基本单位
-
比较dian
- 调度基本单位
- 并发性
- 资源
- 独立性
- 系统开销
- 支持多处理机
-
-
线程的状态和线程控制块
-
线程状态
- 执行
- 就绪
- 阻塞
-
TCB
- 线程标识符
- 一组寄存器
- 线程运行状态
- 优先级
- 线程转悠存储区
- 信号屏蔽
- 堆栈指针
-
线程的实现
-
线程的实现方式
- 内核支持线程KST
- 用户级线程ULT
- 组合方式
- 多对多模型
-
线程的实现
-
线程的创建和终止
- 线程的创建
处理机调度与死锁
处理机调度的层次和调度算法的目标
-
处理机调度的层次
-
高级调度
- 对象是作业
-
低级调度
- 进程调度
- 短程调度
- 对象是进程
-
中级调度
- 内存调度
-
-
处理机调度的目标
- 资源利用率
- 公平性
- 平衡性
- 策略强调执行
-
批处理系统的目标
- 平均周转时间短
- 系统吞吐量高
- 处理机利用率大
-
分时系统的目标
- 响应块
- 均衡性
-
实时系统的目标
- 截至时间的保证
- 可预测性
作业与作业调度
-
批处理系统中的作业
-
作业的定义
- 比程序广泛
- 程序和数据
- 作业说明书
-
作业步
-
作业运行的三个阶段
- 收容阶段
- 运行阶段
- 完成阶段
-
作业的三个状态
- 后备状态
- 运行状态
- 完成状态
-
-
调度算法
-
先来先服务
-
短作业优先
-
优先级调度算法
-
高响应比优先调度算法
- R=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间
-
最早截至时间优先
-
最低松弛度优先
- 任务越紧,优先级越高
-
-
调度算法的分类
- 轮转调度算法
- 优先级调度算法
- 多队列调度算法
- 多级反馈队列
死锁
-
定义
- 每个进程都在等待别人的条件
-
产生死锁的必要条件
- 互斥条件
- 请求和保持条件
- 不可抢占条件
- 循环等待条件
-
死锁处理
-
预防
-
破坏请求和保持条件
-
第一种协议
- 第开始运行就请求全部资源
-
第二种协议
- 获得初期运行的资源就开始运行
-
-
破坏不可抢占条件
-
破坏循坏等待条件
-
-
避免死锁
- 系统安全状态
- 银行家算法
-
检测死锁
-
解除死锁
- 抢占资源
- 终止进程
-
存储器规则
存储器的层次
- CPU寄存器
- 主存
- 赋存
程序的装入和链接
-
程序的装入
- 绝对装入
- 可重定位
- 动态运行的装入
-
程序的链接
- 静态链接
- 装入时动态链接
- 运行时动态链接
-
连续分配存储的管理方式
- 单一连续分配
- 固定连续分配
- 动态分区分配
-
分区算法
-
基于顺序搜索的动态分区分配算法
- 首次适应算法
- 循环首次适应算法
- 最佳适应算法
- 最坏适应算法
-
基于索引搜索的动态分区分配算法
- 快速适应算法
- 伙伴系统
- 哈希算法
-
动态可重定位分区分配
- 紧凑
- 动态重定位
- 动态重定位分区分配算法
-
对换
-
类型
- 整体对换
- 页面(分段)对换
-
对换空间的管理
网友评论