计算机操作系统面试题总结(5)
one 文件管理
一、文件属性
- 文件名:id——同一目录下不能有重名文件
- 标识符:一个系统的各个文件的标识符是唯一的
- 类型:指明文件类型
- 位置:文件存放的路径
- 大小:指文件的大小
- 创建时间:上次修改时间
- 文件所有者信息
- 保护信息:堆文件保护的访问控制信息
无结构文件(流式文件)——二进制或字符流组成,如文本文件
有结构文件(记录式文件)——由相似的记录组成,如数据库
文件通过目录,层层链接起来了
os应该向上提供什么功能?
- 创建create
- 删除delete
- 读read
- 写write
- 打开open系统调用
- 关闭close
(1)文件的物理结构,文件在物理上如何在存放
(2)文件的逻辑结构,文件各个记录在逻辑上如何记录
(1)文件共享:多个用户共享使用一个文件
(2)文件保护:保证不同用户对文件的不同操作权限
二、逻辑结构(有结构/无结构 文件)
- 无结构文件内部是一系列二进制或者流式字符组成
- 有结构文件是由一组相似的记录组成,又是”记录式文件“,每条记录由若干数据项组成,并且每条记录有一个数据项可以作为关键字
各个记录的长度(占用存储空间)是不一定相等的,分为定长记录或者可变长记录两种。
1. 顺序文件
文件的记录一个接着一个顺序排列(逻辑上)
链式存储:无论是定长或者变长,都无法实现随机存取,每次只能从第一个记录开始往后查找
顺序存储:
①可变长——无法实现随机存取,每次只能从第一个记录开始往后依次查找
② 定长——可以实现随机存取;物理上也采取顺序结构,可以快速查找关键字的对应记录;若是串结构,则没办法快速查找某关键字。
2. 索引文件
索引表本身是定长记录的顺序文件。
主要用于对信息处理的及时性要求比较高的场合;
另外可以用不同的数据项建立多个索引表;
3. 顺序索引文件
一组记录对应一个索引表项。
对数据进行分组,每个分组对应一个索引表
可以先查找应的分组,找到分组后,顺序查找记录
对于大数据,进一步提高检索效率,则建立多级索引表。
三、文件目录
1、文件控制块
目录本身就是一种有结构的文件,由一条条的记录组成,每条记录对应一个该放在该目录下的文件
①FCB文件控制块——就是目录文件中一条条的记录
包含:目录项、基本信息(文件名、物理地址、逻辑地址)
可以对目录进行的操作:
搜索、创建、删除、显示、修改
②目录结构
1.单级目录情况下是不允许重命的
2.两级目录结构:主文件目录和用户文件目录
所以两级目录结构允许了不同用户的文件重名
3.多级目录结构
这个结构的提出,就需要文件路径名标识,
从根目录出发的路径叫做绝对路径
从当前目录出发的路径叫做相对路径
4.无环图目录结构
是整个目录成为一个无向无环图,可以用不同的文件名指向同一个文件
③索引结点(PCB的改进)
按文件名搜索时,不在意其他信息,所以将其他信息存放到索引结点,瘦身
2、文件的物理结构(文件的分配方式)
对非空闲磁盘块的管理
对空闲块磁盘块的管理
补充: 磁盘块的大小与内存块、页面的大小相同
① 连续分配
要求:每个文件在磁盘上占有一组连续的块
物理块号=起始块号+逻辑块号
连续分配方式支持顺序访问和直接访问
优点:连续分配在文件的顺序读写时速度最快
缺点:物理上连续分配的文件不方便扩展;存储空间利用效率低,会产生难以利用的磁盘碎片(可采用前面学习的紧凑的方法解决)
② 链接分配(显示/隐式)
①隐式链接
给出要访问的逻辑块号,操作系统找到文件对应的目录项FCB
只支持顺序访问,不支持随机存取
很方便扩展,利用率高
②显示链接
用于链接文件各物理块的指针显示地存放在一张表中,即文件分配表(FAT)
一个磁盘只需设置一张FAT,开机时,将fat写入内存,常驻内存。
逻辑块号转换称物理块号的过程不需要读磁盘操作。
支持顺序访问,也支持随机访问,访问速度也快,不产生外部碎片
③ 索引分配
为文件离散的分配各个磁盘块中,系统为每个文件建立一张索引表,索引表中记录了各个逻辑块对应的物理块。
索引表是一个文件对应一张表
显示链接是一个磁盘对应一张表
文件拓展容易实现,支持随机存取
①链接方案
一个索引表太大,一个索引块转不下,则可以多个索引块链接起来存放
系统必须先顺序读取第一个块,才可以顺序找第二个第三个,依次向下……
②多层and混合方案
多层索引(类似多级页表的原理,就像是在套娃,一直套套套……)
混合索引:多种结合,继续套娃
3、文件系统的层次结构
two 磁盘
1.定义
磁盘由表面涂有磁性物质的圆形盘片组成;每个盘片被划分为一个个磁道,每个磁道又划分为一个个扇区;
- 盘面:多个盘片摞起来,每个盘片都有两个盘面
- 柱面:盘面中相对位置相同的磁道组成的柱面
- 磁盘的物理地址(柱面号、盘面号、扇区号)来定位一个磁盘块。
磁盘的分类:
- 活动头磁盘:磁臂可以来回伸缩——每个盘面有一个磁头
- 固定头磁盘——每个磁道有一个磁头
2、磁盘调度算法
读写操作花费时间:
- 寻找(寻道)时间=启动磁头臂+移动磁头
- 延迟时间,通过转动磁盘,使磁头定位到目标扇区所需要的时间
- 传输时间,从磁盘读出或向磁盘写入数据所经历的时间
延迟时间和传输时间由磁盘转速有关,无法人工改变了
①先来先服务算法FCFS
②最短寻道时间优先SSTF(仅选取目前最优,但总体未必最优)
③扫描算法SCAN (电梯算法)
只有磁头移动到最外侧磁道时候,才能向内测移动,移动到最内侧磁道后,才往外移动,特别像电梯算法。
缺点;对各个磁道的响应频率不平均
④LOOK调度算法
如果在磁头移动方向上已经没有别的请求了,就可以立即改变磁头移动方向。边移动边观察。
⑤循环扫描算法(C-SCAN)
返回时,直接快速直接移动到起始端,不处理任何请求
⑥C-LOOK调度算法
3、减少磁盘调度延迟时间的方法
① 交替编号
在相邻的扇区在物理上保持一定的间隔。
准备时间内仍在转动,有效解决了一段时间
② 错位命名
所有的盘面都是连轴旋转,在读取完第一个磁盘后,还需要短暂的处理时间,而盘面又在不断转动,错位刚好在磁盘下方的,
ps:柱面号在磁盘号之前的原因:减少移动磁头的次数
4、磁盘的管理
① 初始化:
- 低级格式化(物理格式化)
- 磁盘分区
- 逻辑格式化
② 引导块:拥有启动分区的磁盘
如:c盘
完成的**自举程序(初始化程序)**挡在磁盘的启动块上,启动块位于磁盘的固定位置
③ 坏块
坏了,没办法用了
three I/O设备
input/output 输入输出设备 (又叫 设备控制器)
一、概念&分类
二、I/O控制器的组成
寄存器占内存地址的一部分 —— 内存映像I/O
采用I/O专用地址 —— 寄存器独立编址
三、I/O控制方式
1. 程序直接控制方式
传输单位:一个字
读入写出
读操作(数据输入):I/O设备——CPU(cpu的寄存器)——内存
写操作(数据输出):内存——CPU(cpu的寄存器)——I/O设备
2. 中断驱动方式
读操作(数据输入):I/O设备——CPU(cpu的寄存器)——内存
写操作(数据输出):内存——CPU(cpu的寄存器)——I/O设备
3. DMA方式
- 传输单位:块
- 不需要经过 CPU这个快递小哥了
- 仅在传送一个或多个数据块的开始和结束时,才需要CPU干预。
读操作(数据输入):I/O设备——内存
写操作(数据输出):内存——I/O设备
DMA控制器
(参考计算机组成原理!!!!!很无奈,想偷懒)
4. 通道控制方式
通道:一种硬件,“低配弱鸡版的CPU”,通道可以识别执行一系列通道指令
I/O控制方式的对比
四、I/O软件层次结构
- 设备独立性软件必须通过设备驱动程序来直接操控硬件
- 驱动程序一般会以一个独立的进程方式存在;
- 中断处理程序,判断是否正常结束,层层向上,最后返回到用户软件;
- 综上:设备驱动程序和中断处理程序是直接和硬件打交道的
I/O核心子系统就是设备中间三层 👆
五、SPOOLing假脱机技术
SPooLing技术
脱机:脱离主机的控制,进行输入和输出操作。
输入井/输出井:模拟外围控制机的功能。
六、设备分配管理的数据结构
- 设备控制表(DCT)系统为每个设备配置一张DCT ,用于记录设备情况;
- 控制器控制表(COCT)为每个设备控制器都会对应一个COCT,操作系统根据表的信息对控制器进行操作和管理;
- 通道控制表(CHCT)每个通道对应一个CHCT;
- 系统设备表(SDT)记录了系统中全部设备的情况,每个设备对应一个项目;
七、缓冲区管理
缓冲区是一个存储区域,可以由专门的硬件寄存器组成,也可以利用内存作为缓冲区
- 单缓冲区
- 双缓冲区
- 循环缓冲区:大小相等的缓冲区链接成一个循环队列
- 缓冲池 : 放慢了缓冲区的池子
管道——就类似缓冲区,必须满了才可操作,要实现数据的双向传输,必须设置两个管道。
完结撒花!!!!!!!!!!🙂