操作系统学习-练习题个人总结(九)

操作系统学习-练习题个人总结(九)

第六章 文件系统

一、第一节-文件系统基本概念-课前测试

正确知识点总结

  1. 在Linux中,一个源程序经过编译之后得到的可执行文件属于(普通文件)。
  2. 文件系统的最基本目的是(实现对文件的“按名存取”)。
  3. 在文件系统中可命名的最小数据单位是数据项,用户以记录为单位对文件进行存取、检索等。

补充:

文件的分类

  • 按照用途:系统文件、库文件、用户文件
  • 按照保护级别:只读文件、读写文件、只执行文件、不保护文件
  • 按照存取方法:顺序存取文件、随机存取文件
  • 实际操作系统中文件分类:Window、Unix和Linux都有普通文件和目录文件,Unix和Linux系统还有特殊文件【FIFO文件字符、设备文件、块设备文件、符号链接文件】

二、第二节-文件逻辑结构-课前测试

正确知识点总结

  1. 从Windows系统的角度上来看,excel应用程序处理的.xls文件的逻辑结构是(流式文件)。
  2. 文件系统中源程序是有结构的记录式文件。(×)

补充:

文件的逻辑结构

  • 有结构文件:指整个文件由若干条记录构成,也称记录式文件【数据结构和数据库】
    • 顺序文件:读写批处理时比较好用,存取效率最高;查找、增加、删除文件比较难
    • 索引文件:索引表
    • 顺序索引文件:结合上述
    • 直接文件和散列文件:由记录键值获得存储物理地址
  • 无结构文件:由一组相关信息组成的有序字符流,也称流式文件;文件长度按照字节计算【UNIX、DOS、WINDOWS】

文件的物理结构

  • 连续文件【顺序文件】:磁盘空间会产生碎片,文件修改困难
  • 链接文件
    • 隐式连接文件:盘块中存有下一块的地址;顺序存储、容易丢失
    • 显式链接文件:链接指针统一存放在链接表里【FAT】;检索速度快,支持随机存取;FAT表占用内存空间
    • 一个磁盘分区大小为20GB,若盘块大小为1KB,计算该磁盘分区的FAT表大小。
      盘块数=20GB/1KB =20MB,20MB<32MB(这里要求分配的块数是2的n次方,所以要扩展),盘块号大小为3.5B(32MB->2的25次方,需要25个二进制位,25/8取半字节整数倍=3.5B),FAT表大小=20MB×3.5B=70MB
      注意:每个磁盘块号大小取半个字节的整数倍。
    • 存储空间利用率高;文件创建时用户不必指出文件的大小;文件动态扩充和修改容易;顺序存取效率高;随机存取效率较低
  • 索引文件【索引表;索引块-存放索引表的物理块;索引文件】
    • 单级索引:目录->索引表->具体文件存放物理块
    • 多级索引
    • 混合索引
      • UNIX索引结构【iaddr(0) ~iaddr(9): 直接地址;iaddr(10):一级索引;iaddr(11): 二级索引;iaddr(12): 三级索引。】
        在这里插入图片描述三、第二节-文件结构和存取-课堂测试

1、错题解析

  1. 假设某文件包含100个磁盘块,0#-99#,并且文件的FCB已经在内存中。若物理结构采用连续文件,且文件头部之前没有空闲块,文件尾部之后有空闲块。假定每次读或写一个磁盘块就是一次磁盘操作,如果要在文件第50块(49#块)前添加一个磁盘块,但不需要向其中写数据,则需要执行磁盘I/O操作的次数是(102)次。

    解析:读出后面51个块,并写到磁盘上【51*2,从后向前读50块,在50块前添加一块之后填写内容,还需要对后面后50块的内容进行修改,就是说要再读一遍,并且是从新添加的这块开始读的,因为要找到后一块就要去读前一块】

  2. 假设某文件有100个磁盘块,0#-99#,并且FCB在内存中,文件物理结构采用隐式链接,假定每次读或写一个磁盘块就是一次磁盘操作,如果要在文件第50块(49#块)前添加一个磁盘块,但不需要向其中写数据,则需要启动磁盘I/O操作的次数是(51)次。

    解析:读出前面49个块,同时写第49号块及刚添加的一个块,(需要修改其中的链接指针)

  3. 设某文件为隐式链接结构,由8个逻辑记录组成,每个逻辑记录的大小与磁盘快大小相等,均为1KB,并依次存储在60、6、43、7、212、124、19、28号磁盘上,若要存取文件的第6200逻辑字节处的信息,应访问(19)号磁盘快?若文件的FCB在内存中,需要启动(7)次磁盘I/O操作?

    解析:6200=1K*6+56,所以(从0开始)去访问19号磁盘块,需要读磁盘7次(前6次找到19号磁盘块,第7次读出文件信息)

2、正确知识点总结

  1. 磁盘与主机之间传递数据是以(数据块)为单位进行的。
  2. 如果文件采用直接存取方式,且文件大小不固定,则采用(索引)结构较合适。

四、第二节-文件索引结构-课堂测试

1、错题解析
设有一个包含2000个记录的索引文件,每个记录正好占用一个物理块。一个物理块可以存放10个索引表目,建立索引时,一个物理块应有一个索引表目,最高级索引占据一个块。问该文件的所有及文件内容本身应占(2223)个物理块。

解析:2000+2000/10+200/10+20/10+1【每个记录一个块+一级索引+二级索引+三级索引+索引目录表】

2、正确知识点总结

设有一个包含1000个逻辑记录的索引文件,每个记录刚好占用一个物理块。一个物理块可以存放10个索引表目。建立索引时,一个物理块应有一个索引表目,试问该文件系统至少应该建立(3)级索引?(假设最高级索引只占用一个物理块)。

四、第三节-文件目录管理-课前测试

正确知识点总结

  1. 文件目录项中不包含的是(文件控制块的物理位置)。
  2. Linux系统中关于文件目录和索引节点的概念正确的是(索引节点中有文件的控制信息)。
  3. 目录文件不能为空(目录文件中至少包含“.”和“…”两个特殊目录项)。
  4. 目录文件由(文件控制块)组成。
  5. 在Linux系统中,当一个普通文件处于“未打开”状态时,文件所占用的资源有(一个文件目录项;一个磁盘索引节点项;一个或多个磁盘块)

补充:

文件控制块FCB

  • 基本信息
    • 文件名
    • 用户名:文件主、同组用户、用户组等
    • 文件类型
    • 文件物理地址和文件长度
    • 文件逻辑结构和文件物理结构
  • 存取控制信息
    文件主、文件主同组用户(或授权用户)、一般用户对该文件的存取权限
  • 使用信息
    • 文件的建立日期及时间
    • 上次存取文件的日期及时间
    • 当前的使用状态信息
    • 共享链接计数等
  • 引入索引节点,将除文件名外的其它信息“封装”

文件目录结构

  • 单级目录结构:查找慢;不允许重名;不便实现文件共享
  • 两级目录结构【主目录文件+用户文件】:允许重名;缺乏灵活性;无法很好的满足文件多的用户的需求
  • 多级目录结构【绝对路径|当前路径】:允许重名:目录检索速度快,层次清楚;容易实现共享

目录检索技术

  • 线性检索法【顺序检索】
  • 哈希检索法

五、第三节-文件目录-课堂测试

1、错题解析

  1. 在Linux的ext2文件系统中,多个单独设备上的多个文件系统被安装到一个统一的文件系统中。假设光盘设备安装到/mnt上,如果光盘文件系统包含一个/home/user/data的文件,那么在整个文件系统中,这个文件的名字是(/mut/home/user/data)。

    解析:略

  2. 线性搜索法、散列搜索法以及二分搜索法都可用于树型目录结构的搜索。(×)

    解析:树形目录使用线性搜索法。

  3. 树型目录结构中,当前目录就是用户所处的目录位置,所以在Linux中,用户的当前目录就是它的注册目录。(×)

    解析:不是一回事。

2、正确知识点总结

  1. 在实现文件系统时,为加快文件目录的检索速度,可利用“FCB分解法”。假设目录文件存放在磁盘上,每个盘块512B。FCB占64B,其中文件名占8B。通常将FCB分解成两个部分,第一部分占10B(包括文件名和文件索引节点编号),第二部分占56个字节(包括文件索引节点编号和文件的其他描述信息)。假设某一个目录文件共有254个FCB,试分别给出采用分解法前和分解法后,查找该目录文件的某个FCB的平均访问磁盘次数(16.5;4)。
    解析:假设某一目录文件共有254个文件控制块,而每个磁盘块为512B,文件控制块占64B。
    采用分解法前,一个盘块可存放:512/64=8个目录项,则254个文件控制块要占:254/8=32个目录块,故平均查找一个目录项需访问磁盘:32/2=16次。
    采用分解法后,将文件控制块分解成两部分,第一部分占10B(包括文件名和文件内部号),第二部分占56B(包括文件内部号和文件其他描述信息i)。一个盘块可存放:512/10=51个目录项,这样254个目录项要占:254/51=5个目录块。平均查找一个目录项需访问磁盘:5/2≈3次,而得到文件控制块还应访问一次磁盘,故总共需访问磁盘:3+1=4次。
  2. 打开文件操作主要是(把文件控制块从磁盘拷贝到内存)。

六、第四节-文件存储空间管理-课前测试

1、错题解析
使用空闲盘块链表法管理磁盘空间,因其算法实现简单,且能实现离散分配,因此广泛地应用在多种文件系统中。(×)

解析:回收和分配效率低。

2、正确知识点总结

  1. 文件的存储空间管理实质上是对(外存空闲区)的组织和管理。
  2. 打开文件操作主要是(把文件控制块从磁盘拷贝到内存)。

补充:

空闲表法:设置一张表记录空闲块的位置和大小
空闲块链表法:使用指针将所有空闲盘块链接起来
位示图法:使用二进制位表示,0无1有
成组链接法【具体操作看例题】

  • 把所有空闲磁盘块按照固定数量分成若干组,从后向前分组。
  • 将每组(第1组除外)的总块数及相应的块号记录在前一组的最末块中
  • 对第1组,其总块数和各块块号记录在空闲盘块栈中,放在超级块里。
  • 系统启动后,将超级块复制到主存中,并建立空闲盘块号栈,栈顶指针S_Free=第1组总块数。

七、第五节-文件共享与保护-课前测试

1、错题解析
Linux的ext2文件系统采用用户权限表实现文件保护。(×)

解析:Unix和Linux都使用访问控制表

2、正确知识点总结

  1. 若采用口令保护方式来保护文件,则“口令”最合适的保存位置是(文件控制块)。
  2. 基于索引节点的共享方式,不能用于目录文件的共享。
  3. 基于索引节点的共享方式不能实现跨文件卷的文件共享。(因为每个文件卷中的文件索引节点都是从0开始编号的,即不同文件卷上的索引节点编号是重复的)

补充:

文件共享

  • 基于索引节点的共享【硬链接】:与原文件共用一个索引节点
  • 利用符号链接实现文件共享【软链接】-建立link类型的新文件
    在这里插入图片描述

文件访问保护

  • 口令保护
  • 加密保护
  • 设置文件使用权限
    • 访问控制矩阵
    • 访问控制表:对访问矩阵按列(对象)进行划分,每一列建立一张访问控制表
    • 用户权限表:对访问矩阵按行进行划分,每一行建立一张访问权限表。

八、第五节-文件共享与保护-课堂测试

错题解析

  1. 用()可以防止共享文件可能造成的破坏,但实现起来系统开销太大。

    解析:Unix和Linux都使用访问控制表

  2. 若用户仅允许他的某些同事访问他的文件,适用哪种文件保护机制(访问控制矩阵)。

    解析:不同用户,同一文件权限

九、第六节-磁盘调度-课前测试

1、错题解析
Linux的ext2文件系统采用用户权限表实现文件保护。(×)

解析:Unix和Linux都使用访问控制表

2、正确知识点总结

  1. 一个磁盘的转速为7200转/分,每个磁道有160个扇区,每扇区有512B,那么理想情况下,其数据传输率为(9600)KB/s。(磁盘转速为7200转/分=120转/s,转一圈160个扇区,每个扇区512B,所以数据传输率=120160512=9600KB/s)
  2. 启动磁盘读写一块数据时,(传输时间)是硬件设计时就固定的。
  3. 基于索引节点的共享方式不能实现跨文件卷的文件共享。(因为每个文件卷中的文件索引节点都是从0开始编号的,即不同文件卷上的索引节点编号是重复的)

补充:

0号磁道在最边上。
移臂调度算法

  • 先来先服务算法(FCFS)
  • 最短寻道时间优先算法(SSTF):磁头方向可能会频繁移动,可能会出现饥饿现象
  • 扫描算法(电梯算法)(SCAN):↑↓↑↓↑↓
  • 循环扫描算法(CSAN):↓↓↓或↑↑↑;可能会出现磁臂黏着现象
  • N-Step-SCAN算法:分组;子队列内SCAN;子队列之间用FCFS
  • FSCAN算法:当前一组,新来的一组;组内SCAN

十、第六节-磁盘调度-课堂测试

错题解析

某磁盘组的每个盘面上有200个磁道,格式化时每个磁道被分成4个扇区,整个磁盘组共有8000个扇区,那么该磁盘组应由(10)盘片组成。

解析:理解磁盘的三维结构就行了。

补充:

Linux文件系统:

Ext2文件系统结构
0~11直接寻址
12一级间接寻址
13二级间接寻址
14三级间接寻址

  • 23
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
操作系统中的PV操作是指进程之间通过信号量来实现同步和互斥的一种机制。PV操作主要包括信号量的P操作和V操作。 P操作又称为申请操作。当进程需要使用一个资源时,它需要执行P操作。P操作会检查该资源的信号量值,若值大于0,则表示资源可用,进程可以继续执行,并将信号量值减1;若值等于0,则表示资源不可用,进程需要等待。 V操作又称为释放操作。当进程释放一个资源时,它需要执行V操作。V操作会将该资源的信号量值加1。如果有其他进程正在等待该资源,V操作会唤醒其中一个进程,使其继续执行。 下面通过一个简单的例子来说明PV操作的使用: 假设有两个进程P1和P2,它们都需要访问一个临界资源,同时只能有一个进程访问该资源。 1. 初始化一个二进制信号量sem,初始值为1,表示资源可用。 2. P1进程执行时,先执行P操作,检查sem的值。由于sem的值为1,P1可以继续执行,sem的值变为0,表示资源已被占用。 3. P1进程访问资源进行操作。 4. P1进程操作完成后,执行V操作,将sem的值加1。由于没有其他进程等待该资源,操作结束。 5. P2进程执行时,先执行P操作,检查sem的值。由于sem的值为1,P2可以继续执行,sem的值变为0,表示资源已被占用。 6. P2进程访问资源进行操作。 7. P2进程操作完成后,执行V操作,将sem的值加1。由于没有其他进程等待该资源,操作结束。 通过PV操作的使用,可以实现进程之间的同步和互斥。只有当资源可用时,进程才能访问该资源,否则需要等待。这样可以有效避免进程之间的冲突和竞争。对于并发程序的正确执行具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值