期末复习其实已经过了好久,当时复习的时候写了md文件来看。 就放在这里造福学弟学妹/自己以后复习看看吧。 换了windows之后感觉用md文档方便好多。 部分图片后续有时间再传上来吧。
不允许程序运行时在内存中移动位置
经常换入换出
(根据时间不同划分)
动态链接与程序的逻辑结构相关,分段存储管理将程序按照逻辑段划分,有利于其动态链接。
分为系统区、用户区,单一程序用户空间独占
可实现静态重定位
分区大小相等
分区大小不等
① 优先利用低地址空闲区,保留高地址大空闲区;
② 低地址不断划分,留下碎片;
③ 每次都从低地址开始查找,增加开销。
从上一次找到的空闲分区的下个分区开始查找第一个合适的空闲分区。
使分区更均匀,减少了开销,但缺少大分区。
需要排序
容易产生碎片。
需要排序
产生碎片的可能性最小,查找效率高。
对于每一类具有相同容量的所有空闲分区,单独设立一个空闲分区链表。
在内存中设立一张管理索引表,其中的每一个索引表项对应了一种空闲分区类型。
以进程为单位分配空闲分区。
查找效率高,系统开销大。
分配长度为n的存储空间,计算i,使2i-1<n≤2i,在2i空闲分区链表中找,找不到则在2(i+1)中分出一个,分成两个相等的分区,一个分配,一个加入链表。
对一个大小为2^k,地址为x的内存块,其伙伴块的地址为
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2i4kXiqj-1599102180687)(C:\Users\Dimension\Desktop\os\图片1.png)]
构造一张以空闲分区大小为关键字的哈希表
紧凑
动态重定位(增设重定位寄存器,存放程序在内存中的起始地址) 动态运行时装入的方式中,作业装入内存后的所有地址是逻辑地址。执行时再 相对地址+重定位寄存器中存放的程序在内存中的起始地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A5qxocfs-1599102180691)(C:\Users\Dimension\Desktop\os\动态重定位示意图.jpg)]
动态重定位分区分配算法与动态分区分配算法区别:增加了紧凑
用来扩充内存的两种方法
覆盖用于同一进程,对换在不同进程之间进行。
覆盖:把空间分为一个固定区,若干覆盖区,经常活跃的部分放在固定区,即将访问的放在覆盖区,其他段放在外存。内存中能更新的地方只有覆盖区的段。
对换:把处于等待状态的程序从内存移到辅存换出,把准备好竞争cpu的换入。
覆盖在单一连续存储管理、固定分区分配存储管理中可使用
对换类型:整体、页面(分段)对换
提高文件存储空间利用率。离散分配。
提高进程换入和换出的速度。连续分配
4种情况
物理块=页框
地址变换:页号 -> 物理块号
具有快表 (TLB)
EAT=а×λ+(t+λ)(1—а)+t=2t+λ—t×а
λ表示查找快表所需要的时间,а表示命中率,t表示访问一次内存所需要的时间
注意一次访存时间是必需的,其他的查找过程另算。
多级页表不会加快地址的变换速度。但能减少页表所占的连续内存空间。
每个物理块设置一个页表项,按物理块编号排序。
段号位数决定了每个进程最多可以分几个段,段内地址位数决定了每个段的最大长度。
优点/要求:
方便编程信息共享信息保护动态增长动态链接2次访存
不允许可重入代码在执行中有任何改变。
全局变量不可重入
局部变量可重入
3次访存
内碎片:分页、固定分区、段页式存储管理
外碎片:分段式存储管理
q:逻辑地址到物理地址的转换是在编译时候进行的还是在装入的时候进行的?
a:装入时进行。
q:重定位是指在装入的时候进行的吗?
q:重定位就是指逻辑到物理地址的转换吗?
a:可重定位是一种装入方式,是。
q:动态分区与固定分区分配方式相比,是否解决了碎片问题
虚拟存储器,是指具有请求调入和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
虚拟内存最大容量由计算机的地址结构(CPU寻址范围)确定
实际容量=min(内存和外存容量和,CPU寻址范围)
分页系统基础上增加请求调页、页面置换。
以页面为单位置换,页面换入换出需要启动慢速I/O操作
请求分页的页表机制
页号、物理块号、状态位、访问字段、修改位、外存地址
缺页中断机构
缺页中断属于内中断(故障),需要保留CPU现场。
查快表(未命中)——查慢表(发现未调入)——调页(调入的页面直接加入快表)——查快表(命中)——访存
地址变换机构
淘汰永不使用、在最长时间内不被访问的页面。向后检查最后一个出现的页号。
会产生belady异常:分配的内存块增大,但缺页率增加。
逆向扫描最后一个出现的页号。性能最接近OPT,开销大,需要硬件支持(移位寄存器/栈)
设移位寄存器,选择在最近使用最少的页面作为淘汰页。每次访问将最高位置1.每隔一段时间右移1位
链接循环队列,扫描访问位,是1则置零,是0则换出。
最多两轮扫描。
增加修改位,修改位=0未修改。
第一轮扫描到(0,0)替换
第二轮找(0,1),经过的访问位设0
第三轮找(0,0)
第四轮找(0,1)
最多四轮,实际找(0,0)(0,1)(1,0)(1,1)
有一个未被修改的页要换出时,不将它换出内存,把该页所在的物理块挂在自由页链表。换一个已修改的页面时挂在修改页面链表的末尾。使已被修改的页面和未被修改的页面保留在内存中。当被修改的页面数目达到一定值时再将它们一起写回到磁盘上。
指给进程分配的物理块的集合
驻留集大小一般小于进程的总大小
每个进程分配一组固定数目的物理块,运行期间不改变。
平均分配算法
按比例分配算法
考虑优先权分配算法
先为进程分配一定数目的物理块,在进程运行期间,根据情况增加减少。
缺页则取出一个空闲物理块分配,无空闲块则选一页调出。
全局置换和固定分配策略不存在。
当空闲块用完时,选择一页调出
根据缺页频率动态增加减少物理块
多道程序度:希望能在系统中运行更多进程,即增加多道程序度,调高处理机的利用率。
抖动:频繁的页面调度。
进程频繁访问的页面高于可用物理块数。同时在系统中运行的进程太多。
工作集:某段时间内进程实际访问页面的集合。可能小于窗口尺寸。驻留集不能小于工作集。
页面置换算法:选一个不在工作集中的页面置换。
如何解决:
如何预防:几乎都采用调节多道程序度
采用局部置换
把工作集算法融入到处理机调度中(为缺页率高的作业增加新物理块s)
利用L=S准则调节缺页率
L是缺页之间的平均时间,S是平均缺页服务时间,即用于置换一个页面所需的时间。
选择暂停的进程
预调页(运行前):主要用于进程的首次调入。
请求调页(运行期间):运行期间发现缺页时将所缺调入
对换区速度>文件区
页面大小、所分物理块数、置换算法、程序固有特性。
被置换的页面被修改的概率是β,其缺页中断处理时间为ta,被置换页面没有被修改的缺页中断时间为tb,缺页中断处理时间的计算公式为 t=β×ta+(1—β)×tb
分段系统基础上增加了请求调段、分段置换。
以段为单位置换
硬件支持:
请求分段的段表机智缺段中断机构地址变换机构q:覆盖技术与虚拟存储技术有何本质上的不同?
a:覆盖程序段的最大长度受内存容量大小限制。
虚拟存储器中程序最大长度不受内存容量限制,只受计算机地址结构的限制。
覆盖技术覆盖段由程序员设计,要求覆盖段中的各个覆盖具有相对独立性,不存在直接联系或相互交叉访问。
虚拟存储无要求。
q:交换技术与虚拟存储的调入调出由什么不同?
a:交换就是把不用的某程序及数据从内存移到外存。
相同点:都在内存与外存之间交换信息。
区别:交换技术调入调出整个进程,一个进程大小受内存容量大小限制。
虚存的调入调出传递的是页面或分段,允许的进程大小比可用内存大。
q:实现LRU算法所需的硬件支持是什么?
a:寄存器/栈
CR3控制寄存器,利用页目录索引项找到页表,找到物理块+
SSTF
SCAN
I/O系统主要对象:I/O设备和相应设备控制器
主要任务:完成用户的I/O请求,提高I/O速率,提高设备利用率。
设备分配是分配获取i/o设备,设备独立性是为了使得某一个用户不局限于某个物理设备,虚拟设备是用来独占变共享进行扩充,缓冲管理的加入就是缓冲CPU和I/O设备间速度不匹配的矛盾,减少对CPU的中断频率,放宽对CPU中断响应时间的限制,解决数据粒度不匹配的问题,提高CPU和I/O设备间的并行性。
1.隐藏物理设备细节
2.与设备的无关性
3.提高处理机和I/O设备的利用率
4.对I/O设备进行控制
5.确保对设备的正确共享
6.错误处理
用户层I/O软件
设备独立性软件
设备驱动程序
中断处理程序
I/O系统中各种模块之间的层次视图
虚拟存储器系统需要使用块设备接口
流设备接口是流设备管理程序与高层之间的接口
CPU与控制器接口(数据寄存器、控制寄存器、状态寄存器)
I/O逻辑
接收和识别CPU的各种命令(如地址识别、译码)
负责对设备发出命令
控制器与设备接口
控制器中的寄存器与内存地址统一编址。
统一了对内存和对控制器的访问方法
目的:建立独立的I/O操作
专用CPU,通过执行I/O程序来控制I/O操作
指令类型单一,只能执行与I/O操作有关的命令
通道没自己的内存,与CPU共享内存
通道类型
控制器中的寄存器使用单独的地址,需要设置专门的指令来实现操作,要指明寄存器的地址、控制器的编号
I/O通道设备的引入
CPU干预的频率频繁
数据传送的单位是字
实现简单
只能串行工作,CPU利用率低
CPU发出命令后,可将等待的进程阻塞,切换到别的进程执行,I/O完成后,控制器会向CPU发出一个中断信号,CPU检测到后保存现场转去执行中断处理程序。
处理中断的过程中,CPU从I/O控制器读一个字的数据传送到CPU寄存器再写入主存。
CPU在每个指令周期的末尾检查中断。
以数据块为单位数据传输
传送数据从设备直接送入内存
仅在传送一个或多个数据块的开始和结束时需cpu干预
设备独立性
基本含义是:应用程序中所用的设备,不局限于使用某个具体的物理设备。
以物理设备名使用设备
引入了逻辑设备名(可以实现I/O重定向,设备可以更换,不必改变应用程序)
逻辑设备名称到物理设备名称的转换(实际执行时还要使用物理名称)
与设备无关的软件时I/O最高层软件,包括
设备驱动程序的统一接口缓冲管理差错控制对独立设备的分配与回收独立于设备的逻辑数据块缓和CPU与I/O设备间速度不匹配的矛盾
减少对CPU的中断频率,放宽对CPU中断响应时间的限制
解决数据粒度不匹配的问题
提高CPU和I/O设备的并行性
单缓冲区 T:Max(C,T)+M
双缓冲区 T:Max(C,T)
环形缓冲区
缓冲池
最有效的是缓冲池:缓冲首部+缓冲体
缓冲池缓冲区的4种工作方式
收容输入
提取输入
收容输出
提取输出
通过假脱机技术,可将一台物理I/O设备虚拟为逻辑I/O设备,这样就允许多个用户共享一台I/O设备。
磁盘缓冲区
打印缓冲区
假脱机管理进程和假脱机打印进程
用磁性物质记录二进制数据
盘片被划分为多个磁道
磁道被分为多个扇区,每个扇区存放数据量相同。扇区称为一个盘块
最内侧扇区面积最小,存储数据密度最大。
所有磁头连在同个磁臂。
磁盘存储数据之前将
1.低级格式化(物理格式化),磁道划分为扇区。
2.将磁盘分区,每个分区由若干柱面组成
3.逻辑格式化,创建文件系统。
磁盘访问时间=寻道时间+旋转延迟时间+传输时间
延迟时间:转速为r
则平均所需延迟时间
主要是前两者,旋转延迟无法优化,由磁盘属性决定。
磁盘调度就是为了优化寻道时间。
SCAN算法能使每一个请求都得到响应,所以一般使用SCAN。
对于磁盘请求如果只有一个进程,任何算法结果都是一样的。
有限处理与当前磁头最近的磁道。
SSTF平时不使用,因为有可能使磁盘请求处于饥饿状态。
移动到最外侧磁道才往内移动
边移动边观察
若磁头移动方向无请求则立即改变方向。
朝特定方向移动才处理磁道访问请求,返回时快速移到起始端,不处理任何请求。
若在移动方向无请求则立即返回,且只需要返回到最靠近边缘的需要访问的磁道上。
错题:
设置当前工作目录的主要目的是加快文件的检索速度
打开文件操作的主要工作是把指定文件的目录复制到内存指定的区域
UNIX系统,输入/输出设备视为特殊文件
对索引文件存取时,必须先查找索引表
read只需使用open返回的文件描述符,并不使用文件名作为参数
read要求参数:文件描述符fd,buf缓冲区首址、传送的字节数n
read系统调用通过陷入将CPU从用户态切换到核心态
所读文件数据不在内存时产生缺页中断,原进程进入阻塞态,至所需数据从外存调入内存,才将该进程唤醒。
UNIX采用树形目录结构,文件信息存在索引结点中。文件的索引结构存在索引结点中。
访问控制系统由系统实现
在一个文件被用户进程首次打开的过程中,操作系统需做的是将文件控制块读到内存中
防止受损常采用备份的方法保护文件,而存取控制矩阵的方法用于多用户之间的存取权限保护
最低级数据组织形式。
基本数据项
组合数据项
由创建者所定义的、具有文件名的一组相关元素的集合。
最大的数据单位
文件属性包括文件类型、长度、物理位置、建立时间
最底层:对象及其属性
中层:对对象进行操纵和管理的软件集合
最高层:文件系统提供给用户的接口
操作系统应向上提供的功能
创建
参数:外存空间大小、文件存放路径、文件名参数
1.在外存中找到文件所需空间
2.找到对应目录文件创建该文件对应目录项
删除
参数:文件存放路径、文件名
1.找到目录文件,找到文件名对应目录项
2.回收文件占用磁盘块
3.删除对应目录项
读
从外存读入内存
写
设置文件的读/写位置
打开
参数:文件存放路径、文件名、要对文件的操作类型
1.找到文件对应目录项
2.系统将文件的属性,从外存拷贝到内存打开文件表的一个表目中,并将该标目的编号返回给用户。换言之,是在用户和指定文件之间建立起一个连接。
注意有个打开计数器
关闭
1.将进程的打开文件相应表项删除
2.回收分配的内存空间
3.打开计数器-1,=0则删除对应表项
文件共享
文件保护:不同用户对文件有不同操作权限
流式文件
记录式文件,每条记录有一个数据项作为关键字。根据各条记录长度(占用的存储空间)是否相等,分为定长记录、可变长记录。
顺序存储:
可变长记录无法随机存取,只能从第一个记录查找。必须记录其长度。 定长记录可随机存取 串结构,无法快速检索顺序结构,可快速检索(折半查找) 链式存储:无法随机存取,每次只能从第一个开始查找索引表是定长记录的顺序文件,可快速查找。
将关键字作为所有号内容可以按关键字折半查找。
增删记录需要对索引表进行修改。
一组记录对应一个索引表项
定长记录串结构索引文件
多级索引顺序文件
本身就是有结构文件,记录外存位置
目录文件中的一条记录即文件控制块。
基本信息存取控制信息使用信息最重要:文件名、文件存放的物理地址。
为实现按名存取。
不适用多用户os
可以用不同的文件名指向同一个文件,甚至同一个目录。(共享)
为每个共享结点设置一个共享计数器,当需要删除,则使共享计数器-1,到0则删除结点
只要一个用户修改了文件数据,则所有用户都可以看到。
查找过程只需要"文件名",因此其他信息放在索引结点。
目录中只有文件名和索引结点指针。
存放在外存中的索引结点称为"磁盘索引结点"
放入内存后"内存索引结点",内存索引结点需要增加一些信息。
将除文件名的信息放入索引结点,这样目录项只有文件名、索引结点指针。
索引结点设链接计数变量,用于表示链接到本索引结点的用户目录项数。
count=0时才删除文件数据和索引结点
创建时引用数+1,原文件删除-1
文件2 创建Link文件类型记录文件1的存放路径(类似快捷方式),找到文件1的索引结点
会有多次磁盘I/O
创建时直接拷贝引用数,若原文件删除,仍不变
口令保护
加密保护(异或加密)
访问控制
文件块、磁盘块
逻辑块号、块内地址
每个文件在磁盘上占有一组连续的块。
支持顺序访问、随机访问。
读取需要移动磁头,访问的两个盘块相隔的越远时间越长。
要求每个文件占有一组连续的块,不方便拓展。
存储空间利用率低,会产生磁盘碎片。
每个盘块中都含有一个指向下一个盘块的指针
只适合顺序访问
每个磁盘一张FAT,存放属于某一文件的第一个盘块号
单级索引
连续分配方式,为每个文件分连续存储空间,每个空闲区对应一个空闲表项
空闲盘块链
空闲盘区链
由所有盘块所对应的位构成一个集合。
文件卷目录区用一个磁盘块作为超级块,记录下一组空闲盘块数、空闲块号。
若第一个为-1则使最后一块
分配:
(每次第一个分组记录剩下的块号)
一个分组中的块号不需要连续。
每个分组的数量有上限,最后一个分组的数量是上线-1.
超级块充当链头(永远指向第一个空闲分组)。
检查第一个分组块数是否足够。
第一个分组复制到超级块中再分配出去。
回收:
若第一个分组没满,则可以插到第一个分组当中。
若已经满了,则作为一个新分组。要先将超级块的数据复制到新回收的块中,并修改超级块的内容,让新回收的块成为第一个分组。
求单个文件最大长度
快速随机存取,性能最好的组织方式是连续结构
在磁盘上,最容易导致存储碎片发生的物理文件结构是顺序存放
位示图可用于磁盘空间的管理
文件的存储空间管理实质式对外存空闲区的组织与管理
曾画的重点(乱七八糟可以不看)
重定位
链接装入的过程和类型
连续分配(对于内存空间)
·空闲分区表
动态分区分配算法 循环首次适应。。
动态可重定位 定义
离散分配(基本分页、分段)页号逻辑->物理变换 分段的优点 段页式
第五章
虚拟存储(请求调页、调段)
局部性
什么是虚拟存储、特点
页号、块号
状态位、转换位、修改位
置换算法 内存分配有固定式
固定置换、局部置换(最佳、lru、先入先出)
发生几次缺页
缺页中断和一般中断有哪些区别
抖动现象,如何解决、预防
工作集
第六章
有几个层次
设备类型(
通道设备(类型)、跟xx的区别
设备分配的影响因素
spolling系统特点
缓冲机制、有哪几种
公用缓冲池
输入输出
哪些进程请求哪些队列
磁盘调度(先来先服务、循环扫描、扫描)
第七章
逻辑结构
无结构的字符
目录有哪些要求
第八章
文件的物理结构(链接、索引)
1.文件的创建,需要哪些系统调用?
create(const char *pathname,mode_t mode)
pathname要创建文件的路径
mode要创建文件的权限
调用成功则返回文件描述符
否则返回-1
2.Proc文件系统、管道目录等都是特殊文件
/proc 是linux的虚拟文件系统目录
3.创建文件的硬链接用哪些命令?
ln [] 源文件 目标文件
加-s则建立软链接
不加则建立硬链接
-f 若目标文件已存在则删除目标文件后再建立链接文件
创建无名管道系统功能调用
pipe()
创建两个文件描述符,fd[0]用于读,fd[1]用于写
不能对目录硬链接
4.mount和unmount
mount -t type [-o options] device dir
device:指定要挂在的设备,比如磁盘、光驱等
dir:指定把文件系统挂载到哪个目录
type:指定挂载的文件系统类型,一般不用指定
options:指定挂载参数,比如ro表示以只读方式挂载文件系统
unmount
unmout 设备文件名/挂载点
简答题:
分段和分页的区别
磁盘的访问时间,为什么要做磁盘调度
虚拟存储设备的定义、性质、原理
大题
成组链接法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KBj9NNJD-1599102180695)(C:\Users\Dimension\Desktop\os\成组链接法例题题目.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dsHKdGI5-1599102180697)(C:\Users\Dimension\Desktop\os\成组链接法例题答案.png)]
混合索引
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y1BwyIok-1599102180699)(C:\Users\Dimension\Desktop\os\混合索引例题题目.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-09DaLuLL-1599102180701)(C:\Users\Dimension\Desktop\os\混合索引例题答案.png)]
386保护模式地址转换(两级页表)