第一章 操作系统的简介
一、概念
1、操作系统的定义:
对上层负责:是控制应用程序执行的程序
对下层负责:资源管理器
2、操作系统的地位
二、发展历史
无->单道批处理->多道批处理->分时系统->多样的OS
三、功能
处理器管理的功能
存储器管理的功能
设备管理的功能
文件管理的功能
用户接口
四、结构
整体化结构
模块化结构
层次化结构
微内核结构
内核特征:并发、共享、虚拟、异步
五、运行环境
CPU状态/模式
中断系统:device
异常:应用程序
系统调用:应用程序
----------------------------------------------------
第二章 进程管理
一、进程概念
进程的定义:一个正在执行的程序,包括程序计数器、寄存器和变量的当前值
进程的状态及其转换:五状态模型
进程实体与特征
进程实体:PCB、指令、数据、堆栈
PCB的内容:进程控制信息、进程标识、进程状态信息
进程的特征:动态性、并发性、独立性、异步性、结构特征
二、进程控制
进程切换(上下文切换)
进程的创建
fork
进程树
进程的终止/撤销
wait、exit
僵尸进程:子进程结束,父进程没有wait处理掉结束的子进程的
PCB,导致子进程的内存空间虽然都被释放掉了,但是PCB
仍然没有被释放,浪费了进程id资源
孤儿进程:父进程在子进程结束之前结束,子进程变成孤儿进程。
进程的阻塞与唤醒
三、进程调度
周转时间、响应时间
调度算法:
(大题) 1.FCFS:非抢占
2.SJF:抢占 或 非抢占,选择下一个最短处理时间的进程执行
3.RR:所有就绪进程按照FCFS原则排队,加上时间片轮转
4.优先权:|抢占
|非抢占
5.HRRN:非抢占
响应比=(等待处理器的时间 + 处理时间)/ 处理时间
实际上,按照响应比动态设定优先级
(选择题) 6.多级队列调度:
将就绪队列划分多个队列,
队列间调度:可以按照时间片
队列内调度:可以按照优先级
(选择题) 7.多级反馈队列调度:可抢占(体现在,只有高优先级的队列处理完以后,才可以处理低优先级的队列)
划分多个队列,优先级从高到低
同一个队列内按照FCFS只被分配一个时间片,执行完一个时间片后降级,进入低一级优先级队列
不同队列之间按照优先级调度队列
最低优先级队列按照时间片轮转调度(因为没有更低的优先级了)
当有高优先级队列中存在进程时,把当前正在运行的进程放回当前队列的队尾,再调度高优先级的队列
四、线程管理
线程为处理机调度角色
用户线程、内核线程的区别
五、进程同步
1、基础理论
进程的特点:动态性、并发性、独立性、异步性
进程之间的关系:独立的、协作的
竞争条件:两个以上进程共享数据,而最终执行结果则是根据执行次序而决定的
临界资源:共享数据
临界区:
临界区访问规则:空闲则入、忙则等待、有限等待、让权等待(可选)
2、硬件方法
屏蔽中断
提供特殊硬件原子指令
自旋锁(互斥锁):忙等待
3、信号量
计数信号量
条件同步:先signal(up)后 wait(down)
互斥
死锁:
饥饿:没有被死锁,但是因为优先级低总是被抢占,分配不到CPU
*生产者消费者模型 //PPT46页
哲学家就餐问题(只需要理解改进方法)
*读者-写者问题
读者优先:如ppt所述
//写者优先:
//读写公平:只需要修改读者,在读者read()完成,Rcount--后,
先释放锁(signal),如果此时读者不等于0,再获取锁(wait)
这样,在这释放和获取期间,写者就有可能能拿到锁。
4、管程(不考)
六、进程通信
1、管道
匿名管道只能用于父子进程之间,通信单向;命名管道不需要进程之间的父子关系,通信双向
fd[0]: 读 ; fd[1]: 写
2、消息传递
send、receive
3、共享存储区
七、死锁
1、死锁的基本概念
死锁的定义:如果一个进程集合中每一个进程都在等待只能由
本集合中的另一进程才能引起的事件,则称这种状态为死锁
2、产生死锁的四个必要条件
互斥、占用并等待、资源不可抢占、环路等待
资源分配图:描述死锁,有环不一定有死锁
3、死锁的预防
预先在系统实现时就把死锁排除
预防四个必要条件的发生。很难实现
4、死锁的避免
避免环路等待的发生,需要进程声明需要的资源最大需求(银行家算法中Allocated+Need)
动态检测资源分配状态,确保不会出现环路等待
安全状态:存在一条安全路径
非安全状态:不存在一条安全路径,但是可能有可以运行的进程
死锁状态:属于非安全状态,不存在可以继续运行的进程。
检测当前状态是否是安全状态:
银行家算法:需要事先声明进程的所需的最大资源、进程的个数的确定的,资源的个数也是固定的
Max, Allocation, Need, Available
5、死锁的检测与解除
每次进行资源发配后检测、定期检测(安全状态检测算法)
死锁的解除,允许抢占,终止进程释放资源
-----------------------------------------------------
第三章 存储管理
一、存储管理概述
二、实存储器管理
1、存储管理相关概念
物理地址、逻辑地址
重定位:逻辑地址向物理地址映射
发生的时机:编译时、加载时、执行时
基地址寄存器、界限寄存器
2、分区式存储管理(进程空间全部连续存放在内存中)
固定分区:内部碎片
可变分区:外部碎片
位图管理方式:
链表管理方式:(注意释放的时候合并空闲空间)
最先适配
(大题) 下次适配
最佳适配
最差适配
外部碎片的解决方式:紧凑
Buddy系统(伙伴系统):两者的结合
进程空间非连续存放在内存中:需要解决逻辑地址到物理地址的映射关系
3、段式存储管理
段表:<段号(逻辑),段起始地址(物理),段长度>
例:x86 CS:IP
4、页式存储管理
页面、页帧
页面个数可以不等于页帧个数,多个页面可以映射到一个页帧,也可能不对应页帧,替换
页表、TLB(页表的cache)
页表最大长度:页帧个数?还是页面个数?????---页面个数
流程:逻辑地址->MMU->页表->内存(cache)
问题:访问一个内存中的变量,需要2次访存
解决方法:TLB
问题:进程的页表很大
解决方法:多级页表、反置页表:表项的个数等于页帧数
5、段页式存储管理
段表+页表
三、虚拟存储器管理
覆盖技术、交换技术
x86-64只有48位虚拟地址,然后页表需要存所有的虚拟页和页帧的映射关系,所以页表最多就要有2^(48-12)(页面大小按照4k算)64G个页表项吗?而且每个进程一个页表,
----需要优化技术
1、局部性原理
进程只调入内存中部分页就可以启动运行,不需要全部内存空间都存入内存中,
这样使进程空间不局限与物理内存大小,使进程空间大于物理内存大小
2、请求页式存储管理
根据页面号查页表,如果有效位为0,则缺页,根据辅存地址找到后,load进来(替换)
3、页面置换算法
最优页面置换算法(在未来最长时间不被访问的)
FIFO
Belady异常:缺页率随页帧分配数量的增加而增加
LRU
时钟置换算法
系统颠簸
-----------------------------------------------------
第四章 文件管理
一、磁盘
1、磁盘的结构与性能参数
柱面、磁道、扇区
寻道时间、旋转时间、传送时间
2、磁盘调度算法
FCFS
SSTF
SCAN:双向移动,必须到头
C-SCAN:单向移动,必须到头
LOCK:双向移动,不必到头
C-LOCK:单向移动,不必到头
二、文件概述
1、文件与文件系统
文件是数据存储集合的虚拟
文件系统:管理文件的系统
2、文件的分类
文件描述符:进程文件打开表的索引,进程文件打开表指向系统文件打开表
三、文件结构
1、文件逻辑结构
有结构文件(索引、顺序),类似于数据库中的一个一个条目
无结构文件(流式)
2、文件物理结构
扇区、块(一个块几个扇区)
文件在物理内存的分配方法:
连续分配
链表分配
索引分配(inode):带索引的链表分配,内存表
四、文件存取方式
顺序存取,随机存取
五、文件目录
1、基本概念
目录中存储目录下所有文件的FCB
一个FCB就是一个目录项(PTE)
在目录中查找FCB是按照顺序查找的
inode
2、目录结构
树型目录结构,有向无环图
链接:硬链接,软链接
六、外存空间管理
1、位图:使用一个位表示磁盘块的分配状态
2、链表:把空闲块用指针链接
成组链接法:空闲盘块号栈
七、文件系统的实现
VFS:虚拟文件系统
(文件卷控制块)超级块:文件系统的信息,一个卷一个,记录块大小,空间块,计数等
文件控制块:inode
目录项:dentry
八、可靠性与安全性
-----------------------------------------------------
第五章 设备管理 (简答或者选择)
一、I/O硬件
设备分类与设备管理器
块设备、字符设备
设备管理器:CPU与设备之间的接口
目标:解决设备与CPU速度不匹配、屏蔽设备的物理细节和操作过程,统一的接口
功能:按照CPU的命令,自行控制I/O操作
二、I/O软件
1、目标:设备独立
设备独立性:逻辑设备、物理设备 例如:stdin,stdout 抽象成文件
好处:可拓展性、可靠性、灵活性
2、控制方式的演变
查询方式:busy wait,内存参与交换
中断方式:内存参与交换
DMA:总线周期窃取,内存不参与交换
3、软件的层次
目标:屏蔽底层差异,统一上层接口,改进设备效率
考虑的问题:设备独立性、出错处理、同步/异步传输、缓冲技术
I/O请求:
硬件->中断请求->设备驱动器->设备独立性软件->用户进程
I/O应答:
用户进程->设备独立性软件->设备驱动程序->中断处理程序->硬件
三、I/O性能提升方式
1、缓冲技术
引入的原因:
解决CPU和I/O设备速度不匹配问题
协调逻辑块和物理块大小(块与字节流的转换)不一致问题
减少对CPU的频繁中断
提高CPU和I/O设备的并行性
单缓冲
双缓冲
循环缓冲
2、通道技术
在设备控制器上又增加一层,叫通道,统一控制许多的设备控制器
通道执行I/O指令,是一个协处理器。CPU与通道并行
3、SPOOLing技术
将独占设备虚拟成共享设备
输入设备:
输入进程:将输入缓冲区中的任务登记,放入输入井中,当设备空闲时,从任务登记表中选择一个任务,
从输入井中取出,输入。
输出设备:
输出进程:将输出缓冲区的的任务登记,放入输出井中,当设备空闲时,从任务登记表中选择一个任务,
从输出井中取出,输出。
操作系统知识点纲要
最新推荐文章于 2022-08-15 21:02:22 发布