操作系统知识点总结
文章目录
内存管理部分
动态分区分配
基本原理:动态创建分区
优缺点:没有内碎片;存在外碎片
常用分区分配算法
-
最先适配算法
- 算法思想:按分区先后次序从头查找,找到符合要求的第一个分区。
- 算法实质:尽可能利用存储区低地址空闲区,尽量在高地址部分保存较大空闲区,以便一旦有分配大空闲区要求时,容易得到满足。
- 算法优点:分配简单,合并相邻空闲区也比较容易
- 算法缺点:查找总是从表首开始,前面空闲区往往被分割的很小,满足分配要求的可能性较小,查找次数较多。
- 解决方法:针对这个问题,对最先适应法稍加改进,就有了循环最先适配法。
-
循环最先适配算法
- 算法思想:按分区先后次序,从上次分配的分区起查找(到最后分区时再回到开头),找到符合要求的第一个分区。
- 算法特点:算法的分配和释放的时间性能较好,使空闲分区分布得更均匀,但较大的空闲分区不易保留。
-
最佳适配算法
- 算法思想:在所有大于或者等于要求分配长度的空闲区中挑选一个最小的分区,即对该分区所要求分配的大小来说,是最合适的。分配后,所剩余的块会最小。
- 算法实现:空闲存储区管理表采用从小到大的顺序结构。
- 优点:较大的空闲分区可以被保留。
- 缺点:空闲区是按大小而不是按地址顺序排列的 ,因此 释放时,要在整个链表上搜索地址相邻的空闲区,合并后,又要插入到合适的位置。
-
最坏适配算法
- 算法思想:分区时取所有空闲区中最大的一块,把剩余的块再变成一个新的小一点的空闲区。
- 算法实现:空闲区按由大到小排序。
- 优点:分配时,只需查找一次就可成功,分配算法很快。
- 缺点:最后剩余分区会越来越小,无法运行大程序
虚拟存储
含义
虚拟内存将用户逻辑内存与物理内存分开。这在现有物理内存有限的情况下,为程序员提供了巨大的虚拟内存。
虚拟存储器实际是一种存储扩充技术。 它把作业程序存放在辅助存储器里, 运行时只装入程序的一部分。遇到不存在的程序时,再把所需要的部分装入。这样在主存和辅存之间调入、调出的做法,使用户的作业地址空间无需顾及存的大小。给用户造成的印象是,无论程序有多大,它在这个系统上都可以运行。 这种以辅助存储器作为后援的虚幻存储器,就称为虚拟存储器。
虚拟存储特征
-
不连续性
- 物理内存分配的不连续性;
- 虚拟地址空间使用的不连续性。
-
部分交换
-
大空间
- 提供大范围的虚拟地址空间,其总容量不超过物理内存和外存交换区容量。
虚拟存储器容量如何确定
虚存的最大容量由CPU的地址长度决定。虚存的实际容量由CPU的地址长度和外存的容量决定,
当CPU的地址长度能表示的大小远远大于外存容量时,虚存的实际容量为内存和外存容量之和;
当外存容量远大于CPU字长能表示的大小时,虚存的实际容量由CPU字长决定。
一般情况下,CPU的地址长度能表示的大小都大于外存容量。
请求分页技术
概念
请求页面调度:只在页面需要时,才将其载入内存;需要更少的输入输出;更小的内存;更快的响应;更多的用户。
在请求页式存储管理中,当查找的页不在内存中时,要产生缺页中断。
页表结构:
- 采用两级或多级页表
- 为缩短查找时间,多级页表中的每级都可以装入到联想存储器中,并按照cache原理进行更新。
多级页表
多级页表优势:
1.可以离散存储页表。
2.在某种意义上节省页表内存空间。
多级页表劣势:
增加寻址次数,从而延长访存时间。
二级页表地址映射:
页面置换算法
-
先进先出算法(FIFO)
- 选择建立最早的页面被置换。
- 性能较差,抖动现象,Belady现象。
-
最佳算法(OPT)
- 选择“未来不再使用的”或“在离当前最远位置上出现的”页面被置换。
- 理想算法
-
最近最少使用页面淘汰算法(LRU)
- 使用离过去最近作为不远将来的近似,置换最长时间没有使用的页。
- 性能接近最佳算法。
-
最不常用算法(LFU)
-
选择到当前时间为止被访问次数最少的页面被置换;
-
每页设置访问计数器,每当页面被访问时,该页面的访问计数器加1;
-
发生缺页中断时,淘汰计数值最小的页面,并将所有计数清零。
-
-
轮转算法(clock)
-
也称最近未使用算法(NRU),是LRU和FIFO的折衷。
-
实现方法
- 每页标志位(use),若该页被访问则置user =1;
- 置换时采用一个指针,从当前指针位置开始按地址先后检查各页,寻找use=0的页面作为被置换页,并将指针经过的页修改为user=0 ,最后指针停留在被置换页的下一个页。
-
页表和快表
实现分页的基本方法涉及将物理内存分为固定大小的块,称为帧;而将逻辑内存也分为同样大小的块,称为页。
-
划分用户空间
- 把用户程序按逻辑页划分成大小相等的部分,称为页(虚页);
- 由系统自动完成的,一般,页大小为2的整数次幂。
-
划分内存空间
- 按页的大小划分为大小相等的区域,称为内存块(物理页面,页框、实页)。
-
分配内存
- 以页为单位进行分配,并按任务页数多少来分配。
- 逻辑上相邻的页,物理上不一定相邻。
分页的硬件支持如图所示。由CPU生成的每个地址分为两个部分:页号和页偏移。页号作为页表中的索引。页表包含每页所在物理内存的基地址,这些地址与页偏移的组合就形成了物理地址,可送交物理单元。内存的页模型如图所示:
联想寄存器——快表:用于存放页表信息。
为缩短查找时间,可将页表从内存装入到关联存储器(TLB),按内容查找,即逻辑页号->物理页号。
缓冲池
- 缓冲池(buffer pool)是一种**
降低磁盘访问的机制
**。它是为了提高磁盘I/O性能而引入的一种机制。它通过在内存中缓存常用的数据块,避免频繁地从磁盘读取数据,从而加快系统的响应速度。 - 缓冲池通常以页为单位缓存数据;
- 缓冲池的常见管理算法是LRU
文件管理部分
什么是文件
-
信息以一种单元,即文件形式存储在磁盘或其他外部介质上。
-
文件是一组带标识的、在逻辑上有完整意义的信息项的序列。
-
文件是通过操作系统来管理的,文件内容由文件建立者和使用者解释
什么是文件系统/文件系统的设计目标
-
是操作系统中统一管理信息资源的一种软件;
-
管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用。
-
具体来说:
-
统一管理文件的存储空间,实施存储空间的分配与回收。
-
实现文件的按名存取
-
实现文件信息的共享,并提供文件保护和保密措施;
-
向用户提供方便使用的接口
-
系统维护及向用户提供有关信息
-
文件系统的执行效率
-
提供与I/O的统一接口
-
文件的逻辑结构
从用户的角度研究文件的组织形式。
-
无结构文件:流式文件
- 构成文件的基本单位是字符,文件是有逻辑意义的、无结构的一串字符的集合。
- 好处:提供很大的灵活性
-
有结构文件:记录文件
- 文件是由若干个记录组成,是一个固定长度记录的序列,每条记录有其内部结构每个记录有一个键,可按键进行查找。
文件的物理结构(考!!)
从系统角度来看文件,从文件在物理介质上的存放方式来研究文件.
-
连续(顺序)结构:文件信息存放在若干连续的物理块中。
-
优点:
- 简单
- 支持顺序存取和随机存取
- 顺序存取速度快
- 所需的磁盘寻道次数和寻道时间最少
-
缺点
- 文件不能动态增长
- 预留空间:浪费
- 重新分配和移动
- 不利于文件插入和删除
- 外部碎片问题
- 存储压缩技术
-
-
链接结构
-
优点:
- 提高了磁盘空间利用率,不存在外部碎片问题;
- 有利于文件插入和删除;
- 有利于文件动态扩充。
-
缺点:
- 存取速度慢,不适于随机存取;
- 可靠性问题,如指针出错;
- 更多寻道次数和寻道时间;
- 链接指针占用一定的空间。
-
-
索引结构 :文件信息存放在若干不连续物理块中,系统为每个文件建立一个专用数据结构–索引表,并将这些块的块号存放在一个索引表中;一个索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块。
-
优点:
- 即能顺序存取,又能随机存取;
- 满足了文件动态增长、插入删除要求;
- 充分利用外存空间。
-
缺点:
- 较多的寻道次数和寻道时间
- 索引表本身带来了系统开销,如:内外存空间,存取时间
-
UNIX 系统采用的综合索引方式是如何实现的?有何优点?
索引表组织
- 链接模式:一个盘块一个索引表,多个索引表链接起来。
- 多级索引:将一个大文件的所有索引表(二级索引)的地址放在另一个索引表(一级索引)中。
- 综合模式:UNIX文件系统采用多级索引结构(综合模式)。
- 每个文件索引表为13个索引项,每项2个字节。最前面10项直接登记存放文件信息的物理块号(直接寻址);
- 如果文件大于10块,则利用第11项指向一个物理块,该块中最多可放256个文件物理块的块号(一次间接寻址)。对于更大的文件还可利用第12和第13项作为二次和三次间接寻址;
- UNIX采用了三级索引结构后,文件最大可达16兆个物理块。
磁盘空闲空间的管理方法
-
位示图:用一串二进制位反映磁盘空间中的分配使用情况, 每个物理块对应一位, 分配物理块为1,否则为0。
- 申请物理块时,在位示图中查找为0的位,返回对应物理块号;
- 归还时,将对应位转置0
- 描述能力强,适合各种物理结构。
优点(GPT):
- 空间利用效率高:成组链接法通过将多个文件块链接在一起,形成文件的连续空间区域。这样可以减少外部碎片,提高磁盘空间的利用效率。
- 随机访问速度较快:由于文件的块是连续存储的,因此在进行文件的随机访问时,无需频繁地进行磁盘磁头的寻道操作。这样可以减少文件的访问时间,提高系统的响应速度。
- 简单实现:成组链接法相对于其他文件分配方式,如索引分配法或位图分配法,实现起来较为简单。只需为每个文件维护一个链接指针即可,不需要额外的数据结构。
- 支持动态文件大小:成组链接法允许文件的大小可以根据需要进行扩展或缩小。当文件需要扩展时,可以通过将新分配的块链接到文件的末尾来实现,而不需要移动整个文件。这在某些情况下可以提高文件的写入效率。
- 文件分配表较小:相对于位图分配法,成组链接法所需的文件分配表较小。文件分配表仅需要记录每个文件的起始块地址即可,因此可以减少存储开销。
目录结构
基本概念
文件控制块(FCB)
-
文件控制块是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息(文件属性).
-
文件控制块是文件存在的标志;
文件目录:把所有FCB组织在一起,就构成了文件目录,即文件控制块的有序集合。
目录项:构成文件目录的项目(目录项就是FCB)
目录文件:为实现对文件目录的管理,通常将文件目录以文件形式保存在外存,这个文件就叫目录文件。
采用目录结构的目的:
- 高效性
- 重命名
- 逻辑组
- ······
常用目录结构
-
一级目录结构
- 优点:简单、易实现
- 缺点:命名问题;逻辑组
-
二级目录结构
- 树型目录结构
目录改进
目的:加快目录检索
改进方法:
- 采用目录项分解法,把FCB分成两部分。
- 符号目录顶(次部):文件名,文件号
- 基本目录项(主部):除文件名外的所有项目。如:UNIX:I节点(索引节点)
例:一个FCB有48个字节,符号目录项占 8字节,文件名6字节,文件号2字节,基本目录项占 48-6=42字节。假设,物理块大小512字节,目录文件有128个目录项。
-
改进前:1个物理块含512/48=10个FCB,则该目录文件占13个物理块;
-
改进后:1个物理块含512/8=64个符号目录项或512/42=12个基本目录项,则该目录文件符号文件占2块,基本文件占11块。
查找一个文件的平均访盘次数
-
改进前:(1+13)/2=7次
-
改进后:(1+2)/2 +1 =2.5次
减少了访问硬盘的次数,提高了检索速度
RAID
廉价磁盘冗余阵列RAID:1987年由美建国加利福尼亚大学伯克莱分校提出,现在广泛应用于大、中计算机系统和计算机网络中。
技术特点: 并行交叉存取
RAID优点:
-
可靠性高
-
磁盘I/O速度高
-
性能/价格比高
文件操作中,open 函数实现过程及其完成的内容
Open()
- 文件使用前都要先打开,即把FCB送到内存。
fd=open(文件路径名,打开方式)
- 执行过程
- 根据文件路径名查目录,找到FCB主部;
- 根据打开方式、共享说明和用户身份检查访问合法性;
- 根据文件号查系统打开文件表,看文件是否已被打开;是→共享计数加1,否则→将外存中的FCB主部等信息填入系统打开文件表空表项,共享计数置为1;
影响磁盘访问的因素
磁盘读取时间
- 磁盘系统由磁盘本身和驱动控制设备组成,实际存取读写的动作过程是由磁盘驱动控制设备按照主机要求完成的。
- 寻道:磁头移动定位到指定磁道
- 旋转延迟:等待指定扇区从磁头下旋转经过
- 数据传输:数据在磁盘与内存之间的实际传输
存取时间
一次访盘时间 = 寻道时间+旋转延迟时间+存取时间
-
减少寻道时间
-
减少延迟时间
几种磁盘调度算法
-
先来先服务(FCFS):按访问请求到达的先后次序服务
- 优点:简单,公平
- 缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利。
-
最短寻道时间优先(SSTF):优先选择距当前磁头最近的访问请求进行服务,主要考虑寻道优先。
- 优点:改善了磁盘平均服务时间
- 缺点:造成某些访问请求长期等待得不到服务
-
扫描算法(电梯算法)(SCAN)
-
单向扫描算法