一、操作系统引论
1.概念:
1.控制和管理 软硬件资源
2.组织调度 工作和资源
3.提供接口和环境
2.基本特征
并发,共享,虚拟,异步(在并发执行的时候,资源有限,走走停停,以不可预知的速度向前推进)
3.功能
1.资源管理者
处理机管理:进程
存储器管理:内存
文件管理:文件
设备管理:I/O
2.提供接口
命令接口(直接):联机(实时交互);脱机(批处理,一组作业控制命令组成)
程序接口(间接):系统调用组成
3.用作扩充机器
扩充裸机
4.发展过程
1.单批道: 系统资源不能充分用
2.多批道: 不能交互,平均周转时间长
3.分时:不够及时
4.实时:硬/软实时
5.运行环境
1.内核态和用户态
缺页在用户态发生,在内核态处理
2.内核:
1)时钟管理:计时,时钟中断
2)中断机制:提高CPU利用率
3)原语:原子性的
4)系统控制的数据结构及处理
3.中断(外中断)和异常(内中断)
发生中断,意味着需要操作系统来管理:
用户态 -> 内核态 :通过中断实现
内核态 -> 用户态: 执行特权指令
外中断:CPU外部与当前无关
内中断:CPU内部与当前执行指令有关
二、进程的描述与执行
1.组成
由进程控制块(pcb)、程序段、数据段组成
2.组织方式
链接方式:队列
索引方式:索引表
3.特征
动态性、并发性、独立性、异步性、结构性
p.s 可再现性(程序的特性):多次运行得到同一结果
4.进程和程序的区别
进程是动态的,可以并发执行
5.状态和转换
状态:创建,就绪,运行,阻塞,终止。(加粗为基本状态)
1)运行->就绪:
a.时间片用完
b.被优先级更高的抢占
2)就绪->运行:
就差cpu
3)运行->阻塞:
因发生某等待事件而无法执行
4)阻塞->就绪:
等待的事件完成
6.进程通信
1.共享存储
基于共享数据结构:低级,如消费者生产者
基于共享存储区:高级
2.消息传递
以格式化为单位,利用原语进行传递。
直接:直接挂到接受进程的消息缓存队列
间接:先发送到中间的信箱
3.管道通信
用于连接读和写进程的共享文件
p.s 全局变量是对同一进程而言
6.线程
1.定义
2.和进程的区别和联系
三、处理机调度
1.评价标准:
1.cpu利用率
2.系统吞吐量
3.周转时间
4.等待时间
5.相应时间
2.三个层次
1.作业调度(高级):外存 -> 内存(调入)
2.内存调度(中级):把处于挂起状态的进程,由外存转到内存(调回)【发生频率比高级的高】
3.进程调度(低级):内存(就绪队列) -> cpu
3.进程调度方式
1.非剥夺(非抢占)方式
2.剥夺(抢占)
4.调度算法
1.FCFS(先来先服务)
缺点:对长作业有利,对短作业不利
2.SJF (短作业优先)
优点:“最短的”平均等待时间以及平均周转时间
3.优先级算法
1.优先级的类型:
2)静态优先级:在创建进程时确定
3)动态优先级:先赋予优先级,再动态调整
2.会导致低优先级的进程的饥饿
4.时间片轮转算法
1.规则:按到达就绪队列的顺序,轮流执行一个时间片。时间片内没完成就剥夺。属于抢占式。
2.适用于分时操作系统
5.高响应比优先算法
1.思想:考虑作业的等待时间和要求服务的时间
2.规则:响应比高的先服务
3.要计算,开销大,不会饥饿
6.多级反馈队列调度
1.抢占式;实时os;低优先级饥饿
四、死锁
1.概念
1.死锁:互相等待对方手里的资源,导致进程都阻塞。
2.死锁和饥饿:
饥饿:一直得不到资源;可能只有一个进程发生饥饿,可能在阻塞态或就绪态。
死锁:在阻塞态
3,必要条件:
1.互斥(同一资源不能被同时使用)【例如:哲学家就餐】
2.请求和保持条件(持有和等待)
3.循环等待。发生死锁一定有循环等待,反之未必
4.不剥夺条件
2.预防死锁
1.预防死锁(静态):破坏死锁的四个必要条件
2.避免死锁(动态):防止进入不安全(银行家算法);
边运行边判断;缺点:知道后续资源需求;
3.死锁的检测和解除【允许死锁发生】:定期检查
1.破坏互斥条件
将互斥使用的资源改造为允许共享使用
缺点:不是什么都能改
2.破坏不剥夺
某个请求得不到满足的时候,释放保持的资源
缺点:反复申请释放,提高系统开销;可能使得之前失效;难操作
用于:易于保存和回复的资源:如寄存器和内存
3.破坏请求和保持条件
等所有资源都齐了再运行
缺点:利用率低,进程饥饿
4.破坏循环等待
对资源编号,必须按照编号递增的顺序请求资源。
缺点:需要各类资源相对稳定,编号后避免改动;限制多;使用资源的顺序与规定的不同。
3.银行家算法(避免死锁)
1.安全状态
如果按照序列分配资源,每个进程都完成。该序列为安全序列,为安全状态。
2.核心思想
在资源分配前预先判断是否会导致进入不安全状态,依此决定是否分配资源
3.实现
1.求need:need=max-allocation
2.判断:是否
request<=need
request<=available
3.假定可以分配,修改available,allocation,need:
available=available-request(表示还有多少可用资源)
allocation=allocation+request(表示已经分配的资源)
need=need-request(表示各进程最大需要多少资源)
4.安全性检测
a.先将每一个进程的finish设为false
b.设置工作向量,表示可以提供进程运行的资源数目
初始:work=available
need[i,j]<=work[j]
c.work[j]=work[j]+allocation[i,j];finish[i]=true;(完成后释放资源)
4.死锁的检测与解除
1.死锁检测算法
1.资源分配图:
进程节点和资源节点
圈为进程节点,方框为资源节点
2.死锁定理:若资源分配图不可简化,则死锁
如何简化:
2.死锁解除算法
(死锁检测分配图,简化有还连着边的就是死锁进程)
1.资源剥夺
2.撤销进程
3.进程回退
五、进程同步
1.同步与互斥的关系
1.临界资源
2.理解资源的访问过程:
1.进入区:“上锁”
2.临界区:访问临界资源的代码叫临界区
3.退出区:解锁
4.剩余区
3.进程同步(直接制约关系)
指定先后顺序
4.进程互斥(间接制约关系)
规则:空闲让进,忙则等待,优先等待(有限的时间内进入临界区),让权等待
2.软件同步机制
1.Peterson算法:(未解决让权等待)
flag 和 turn
对P0:
flag[0]=1(表示当前进程想进入临界区)
turn = 1(被允许进入临界区的进程编号,对方的)
while(flag[1]&&turn==1);
最后需要flag[0]=0;
3.硬件同步机制
1.关中断(中断屏蔽)
2.TS或TSL(原子操作)
3.swap指令
4.信号量
1.两个原语:wait(s)和signal(s)即PV操作
2.整型信号量
会忙等待
3.记录型信号量
1.加了链表指针;
2.流程:
wait操作申请资源
若资源不够,自我阻塞;
完成后放弃资源,若仍有资源被阻塞,就唤醒
3.实现了让权等待
5.信号量的基本应用
1.实现互斥
(P 上锁)
临界区
(V 解锁)
2.实现同步
前操作后v
后操作前p
3.前驱关系
6.管程
高级的同步机制
管程包含:
1.名称
2.共享数据结构说明
3.操作
4.初始化
7.生产者消费者
1.3对PV操作
2.实现互斥的P操作一定要在实现同步的P操作之后
3.做题步骤:
1.分析关系(同步还是互斥)
2.设置信号量
3.pv操作
8.读者写者
跳过加锁(count)
读写公平法
9.哲学家进餐
3种方法防止死锁
六、内存管理
1.功能
1.内存空间的分配和回收
2.存储的保护和共享
3.地址转换(逻辑->物理)
4.内存扩充(虚拟内存)
1.页面替换算法
2.请求分页管理,虚拟内存
3.
覆盖 (进程内)
交换(进程间)
4.虚拟内存组成部分:页表机制,中断机制,地址变换机制,内存与外存
缺页中断:在外村中找,如果内存满了,要替换。
替换算法:fifo,lru(最久未使用),clock(最近最少用),OPT(最优)
5.虚拟内存的特点:多次行、对唤醒、巡礼行
6.局部性原理:时间空间局部性
2.用户程序主要处理阶段
编辑,编译,链接,装入,运行
1.装入:
1.绝对装入(只是适用于单道程序,按照物理内存的位置赋予实际的物理地址)
2.静态重定位(在运行开始前,要求空间连续)
3.动态重定位(推迟到真正执行的时候进行吗,需要寄存器,解决碎片问题,不需要连续的空间)
地址空间:
1.连续
1.单一连续分配
2.固定分区分配
3.动态分区分配:
首次适应,最佳适应,最坏适应(容量递减),临近适应
2.非连续
解决外部碎片多
1.基本分页式:页号通过页表,找到块号,块号加上页内地址不变的偏移量就是物理地址
页表在内存里;页的大小固定
快表不在内存中
2.基本分段式:作业二维
3.越界中断;缺页中断;
4.外部碎片(进不去),内部碎片
七、文件系统
1.文件存取方式:顺序和随机
2.影响安全的元素:系统,认为,自然
3.文件目录项(fcb)
4.文件的逻辑结构:(用户)
1.无结构文件(流式文件)
2.有结构文件(记录式文件):
1.顺序文件
2.索引文件:索引表
3.索引顺序文件
5.物理结构:
连续文件和链接文件和索引文件
6.目录
1.fcb
2.目录结构
单机目录,二级目录,树形目录,图形目录
7.文件分配方式
连续分配,链接分配,索引分配,
顺序 链式 索引
8.文件存储空间管理
1.空闲表法
2.空闲链表发
3.位示图法(用于外村)
9.磁盘调度算法
1.地址结构:柱面号、盘面号、扇面号
2.算法:
1.FCFS
2.最短查找时间优先
3.扫描
4.循环扫描
八、设备管理
1.程序查询方式
2.io控制方式:
1.直接控制:查询
2.中断:cpu可以杠别的,叫别的发出中断
3.dma方式:一数据块为单位输入到内存中,传输结束才想cpu发起中断
4.io通道控制方式:只能穿一个连续的数据块
3.映入缓冲区的目的:
1.缓和cpu和外设不匹配
2.提高cpu和外设的冰消
3.减少中断cpu