操作系统的概念
操作系统的功能和目标
1. 作为系统资源的管理者
2. 作为用户和计算机硬件之间的接口
用户接口
3. 作为最接近硬件的层次
对硬件机器的扩张
小结
操作系统的特征
1. 并发(并发:交替,并行:多线程)
2. 共享
并发与共享的关系
3. 虚拟
4. 异步
小结
操作系统的发展和分类
操作系统的运行机制和体系结构
两种指令 、两种处理器状态、两种程序
操作系统的内核
操作系统体系结构
小节
中断和异常
中断,cpu转换为核心态
中断分类
小节
中断是cpu进入核心态的唯一途径
系统调用
概念
资源由系统调用统一调用,防止各个应用随意使用资源
系统调用分类
小节
系统调用会使处理器骢用户态进入核心态
第二章
进程的定义,组成、组织方式、特征
定义
组成
PCB:系统为每个运行的程序配置一个数据结构,成为进程控制块,描述进程的各种信息
组织
链接方式
索引方式
特征
小节
进程的状态
基本状态
状态转换
小节
进程控制
进程控制:实现进程状态转换
实现进程控制
相关原语
小节
进程通信
小节
线程(小进程)
线程:CPU执行的最小单位
变化
线程实现方式
用户级线程
内核级线程
二者组合,将n个用户级线程映射到m个内核级线程
多线程模型
一对多
一对一
多对多线程
小节
处理机调度
三层调度
作业调度:将外存放入内存
中级调度:扩容就绪态,在外存
进程调度:进程之间分配处理机
进程调度
临界资源:互斥调用
临界区:调用临界资源的代码
调度时机
调度方式
小节
调度算法评价指标
利用率
吞吐量
周转时间(总共完成-提交)
等待时间
进程处于等待处理及状态时间之和
响应时间
从提出请求到首次相应的时间
小节
调度算法
FCFS
SJF(最短)
HRRN
小节
RR(关键在于小队列)
优先级调度
多级反馈队列调度算法
进程同步,进程互斥
同步
互斥
小节
进程互斥的实现方法
单标志法(违反空闲让进)
我完了用你,你完了用我
双标志先检查(异步性会两个都进入,双上锁)
思路(检查,进入,上锁)
双标志后检查法
思路(上锁,检查,进入)
peterson
小节
进程互斥硬件方法
信号量机制
整型信号量
记录型信号量
小节
信号量实现进程互斥
信号量机制实现进程同步
例题
小节
生产者消费者问题
同步变量的数量来积累控制先后关系,同步在前互斥在后
互斥要放在同步之后
多生产者,多消费者
儿子,女儿触发清空盘子事件是同一种
吸烟者问题
生产者不是产生两种东西,而是产生三种组合
读者写者问题
两个读者不互斥 ,
哲学家进餐问题
一个进程要两个资源,方法来解决死锁
管程
死锁
死锁的条件
死锁处理策略
预防死锁
避免死锁
安全序列
银行家算法(满足需要的之后归还,在递归寻找满足需要的)
死锁的处理
死锁的检测
死锁的解除
第三章
内存
代码运行过程
装入过程需要讲逻辑地址变为物理地址
装入的三种方式
- 绝对装入,装入模块物理地址,装入过程直接用物理地址
- 静态重定位,装入模块逻辑地址,装入过程改为物理地址
- 动态重定位,装入模块逻辑地址,装入后为逻辑地址。运行时才变为物理地址
链接的三种方式
小节 (选择题)
内存管理概念(不重要)
覆盖与交换(内存扩充)
覆盖技术
让不可能同时运行的内存在同一个覆盖区
交换技术(中级调度)
小节(选择)
连续分配管理方式
单一连续分配
只有一道程序在使用
固定分区分配
划分的单一连续分配
动态分区分配(有外部碎片)
区别于另外两个,不会预先划分分区。装入内存时,根据进程大小动态建立分区
内部碎片与外部碎片(内部:买了浪费。外部:没买)
动态分区分配算法
- 首次适应算法 (从低地址找第一个满足的)
- 最佳适应算法(从小容量找第一个满足的)
- 最坏适应算法(从大容量开始找第一个满足的)
- 邻近适应算法(变种首次适应,每次开始从上次结束)
基本分页存储管理
得到物理地址
地址运算
页表(记录每个页面的物理地址)
计算
小节
基本地址变换机构(important)
逻辑地址到物理地址的变换
页面大小=业内偏移量
小节
具有快表的地址变换机构
局部性原理
快表与慢表 (慢表在内存中,访问慢表有两次访问内存,快表只有一次)
两级页表(页表套页表)
一级页表的问题
两级页表的原理
小节
基本分段存储管理方式 (相当于自定义长度的分页)
段表(段号,页号都不占地址,隐含的,段表项大小相同)
小节
段页式管理方式(先分段再分页)
逻辑地址结构
小节
虚拟存储技术
将能用到的放内存,用不到的放外存。看起来内存很大
特点
虚拟内存的实现A
请求分页管理方式 (多了请求调页(进内存),页面置换(出内存))
页表
缺页中断机构(内存没有时)
页面置换算法
最佳置换算法(OPT)
从需要置换开始,往后找,最后出现的那个要被替换
先进先出置换算法(FIFO)
置换最先进入的页面
最近最久未使用置换算法(LRU)
从置换开始向前查找,最后出现的(类似反操作最佳算法)
时钟置换算法(CLOCK)
简单CLOCK算法:将页面连城链表,设置访问位,被访问设为1。需要置换时循环访问链表访问过的设为0,将为0的置换出去
改进型时钟置换算法:多加了修改位,判断被淘汰的页面是否被修改过(访问位,修改位)。两者共同权衡是否要淘汰
小节
页面分配策略(进程物理块的分配)
驻留集:
三种分配策略
抖动
工作集(实际需要的物理块)
小节
第三章
认识文件
文件的逻辑结构(文件内部数据的结构)
顺序文件(两种存储方式(链式,顺序),两种文件结构(顺序 更快,串 方便插入))
是否随机存取类似数组
索引文件(顺序文件的可变长记录无法随机存取,用顺序文件存储表项,映射变长记录,来实现随机存取)
索引顺序文件(瘦身索引表)
按关键字(串结构)构建索引表
文件目录
FCB,文件控制块
索引节点(FCB优化)
减少索引空间
目录结构
文件的物理结构(important)
相当于双拆分存储分配
文件块,磁盘块
文件(块)分配方式-连续分配
连续分配的文件读写最快
存储分配进程划断,逻辑地址映射物理地址
文件分配并无逻辑地址,就是物理内存的排列
链接分配-隐式链接
链接分配-显式连接
显式与隐式
索引分配
每个文件都有一个索引表分配在物理块中
多层索引![](https://i-blog.csdnimg.cn/blog_migrate/579cd3d5ac8e2f297631484fc4c39cf5.png)
索引分配总结
文件存储空间管理
![](https://i-blog.csdnimg.cn/blog_migrate/73c2bc6af2a1a80684a64b431a0e0afe.png)
空闲表法
连续的空闲(类似连续分配)
空闲链表法
位示图法
0空闲,1非空闲
i字号,j位号, n字长
成组链接法
小节
文件的基本操作
打开文件表(系统,进程) 重的索引号叫做文件描述符
文件共享
硬链接(通过索引节点实现)
软链接(指向文件路径,如快捷方式)
文件保护
文件系统的层次结构
磁盘的结构
磁道,扇区
盘面、柱面
柱面:竖着相同的
磁盘调度算法(important)
一次读写的时间
先来先服务算法(FCFS)
最短寻找时间优先(SSTF)
扫描算法
类似电梯 ,只有到两边的顶才能返回,不撞南墙不回头
LOOK调度算法
优化的扫描算法,当方向上没有请求就返回,不撞南墙也回头
循环扫描算法(c-scan)
装了南墙直接穿越到0
小节
减少延迟方法
磁盘管理
第五章
IO设备
IO控制器 (不太重要)
io控制器的功能
IO控制器组成
程序直接控制方式
向io逻辑发出读指令
轮询查看状态(忙等待,不能干其他事)
准备好则读取数据到数据寄存器
cpu读取
放入内存
中断驱动方式
不再由cpu轮循看是否准备好,在每个指令周期末尾检查中断(不是忙等待)
DMA方式
由DMA控制器向cpu请求中断
通道控制方式
小节
IO层次结构
涉及硬件:设备驱动,中断处理
不涉及硬件,对各种设备管理:设备独立性软件
假脱机技术
脱机:脱离主机控制进行输入输出操作
SOPPLing技术
缓冲区管理
缓冲区非空,不能输入,只能输出
缓冲区为空,可以输入,满了之后才能输出