操作系统杂谈

自考简答综合题目集锦

磁带空间利用率
1 某用户文件共10个逻辑记录,每个逻辑记录的长度为480个字符,现把该文件存放到磁带上,若磁带的记录密度为800字符/英寸,块与块之间的间隙为0.6英寸,回答下列问题:
(1)不采用记录成组操作时磁空间的利用率为( )。
(2)采用记录成组操作且块因子为5时,磁带空间的利用率为( )。
(3)当按上述方式把文件存放到磁带上后,用户要求每次读一个逻辑记录存放到他的工作区。当对该记录处理后,又要求把下一个逻辑记录读入他的工作区,直至10个逻辑记录处理结束。系统应如何为用户服务?

答:
(1)利用率为50%
每个记录占一块,因此块大小为480字符。
存储信息所占磁带空间为:480/800=0.6英寸
利用率为0.6/(0.6+0.6)=50%
(2)利用率为83%
如果采用记录成组操作且块因子为5时,块大小为480*5=2400字符。
存储信息所占的磁带空间为:2400/800=3英寸。
利用率为3/(3+0.6)=83%
(3)设置长度为2400字符的主存缓冲区;
找到该文件的存放位置,启动磁带机读出第一块内容存入主存缓冲区;
进行记录分解,按用户要求依次把主存缓冲区中的五个记录传送到用户工作区;
启动磁带机读第二块内容存入主存缓冲区,把第6至10个逻辑记录按用户要求依次传送到用户工作区。
————————————————
2 假定某系统中,磁带的记录密度为每英寸800个字符,每个逻辑记录长为160个字符,块与块之间的间隙为0.5英寸。现有600个逻辑记录需要存储到磁带上,请问:

(1)如果不采用成组操作,磁带空间的利用率是多少?

(2)在采用6个逻辑记录为一组的成组操作时,磁带空间的利用率是多少?

【答案】

(1)不采用成组操作,每个逻辑记录需要占用的磁带长度=160/800=0.2英寸,块与块之间的间隙为0.5英寸。故磁带空间的利用率为0.2/(0.2+0.5)=28.57%

(2)采用成组操作时,6个记录的长度是160×6=960,所占磁带长度=960/800=1.2英寸,磁带空间的利用率=1.2/(1.2+0.5)=70.59%。
————————————————

3 假定某系统中,磁带的记录密度为每英寸1200个字符,每个逻辑记录长为200个字符,块与块之间的间隙为0.5英寸。请问,为了使磁带空间利用率达到70%,采 用记录成组操作时的块因子应为多少?

【答案】

设块因子为 x。

每条记录所占磁带空间为 200/1200 = 1/6 英寸 , 则 (x * 1/6)/ (x*1/6 + 0.5) = 0.7 解方程可得 x = 7

所以,成组操作时,块因子应该为 7。

磁盘调度策略-信息的优化分布
1 假定某磁盘的旋转速度是每圈48ms,格式化后每个盘面被分成8个扇区,现有8 个逻辑记录存储在同一磁道上,安排如下所示:
在这里插入图片描述
处理程序要顺序处理以上记录,每读出一个记录后要花12ms的时间进行处理,然后再顺序读下一个记录并进行处理。请问:

(1)顺序处理完这8个记录总共花费了多少时间?

(2)现对记录进行优化分布,使处理程序能在最短时间内处理完这10个记录。请给出记录优化分布的示意图,并计算所需时间。

【答案】

(1)(6+12)8 + 367 = 396ms

(2)记录优化分布如下(或画示意图):
在这里插入图片描述
所需要时间为:8*(6+12)=144ms 。
【解析】

由转盘转速可知,读一个记录需要花48/8=6ms的时间,当花了6ms的时间读出第一个记录,并花费12ms时间进行处理后,第4个记录的位置已经旋转到读写磁头下面。为了顺序处理第2个记录,必须等待磁盘把第2个记录旋转到读写磁头位置下面,即要(8-2)*6=36ms的延迟时间,除去第1个记录,其他的都遵循此规律,故处理这8个记录所花时间为(6+12)8 + 367 = 396ms。

优化后,当读出一个记录并对之处理完毕后,读写磁头正好处于需要独处的下一个记录位置上,这样可以立即读出该记录而没有延迟时间,故优化后所花费的时间为8*(6+12)=144ms 。
————————————————

第三类【知识点】UNIX的三级索引结构
1 某UNIX操作系统釆用i结点管理文件的存储空间,假设磁盘块大小为2048字节,每个地址占64位(8个字节),i结点包括13个地址项,其中10个地址用来存直接地址,一个地址项存一次间接地址,一个地址项存二次间接地址,一个地址项存三次间接地址。请问,系统能管理的单个文件最大长度是多少?

【答案】

10 个直接地址表示的文件大小为:10 × 2KB = 20KB

一个一次间接地址,每个盘块大小为 2048B,每个地址项占 8 个字节,所以每个硬盘块中可以存放 2048 / 8= 256 个盘块号(或叫簇),所以能存放的文件大小为:256×2KB = 512KB

一个二次间接地址,共能存放 256×256 个盘块号,能存放的文件大小为:256×256×2KB = 128MB

一个三次间接地址,共能存放256×256个盘块号,能存放的文件大小为:256×256×256×2KB = 32GB

所以一个文件的最大长度 = 20KB + 512KB + 128MB + 32GB
————————————————

2 某UNIX操作系统采用i结点管理文件的存储空间,假设i结点包括13个地址项,其中10个地址用来存直接地址,一个地址项存一重间接地址,一个地址项存二重间接地址,一个地址项存三重间接地址。每个磁盘块地址占64位(8个字节),磁盘块大小为2048字节,如果要存取某文件的字节偏移量是1260000,请问,需要读取几次硬盘?请写出中间过程。

答 : 对于这个题目我们可以先列出来直接地址 、一重间接地址、二重间接地址、三重间接地址对应占用的内存情况
总共每个索引磁盘快可以存放 2048/8=256个地址
直接地址 : 2048 * 10 = 20480 B
一重间接地址: 256 * 2048 =524288 B
二重间接地址: 256 * 256 * 2048 = 134217728
三重间接地址 :256 * 256 * 256 * 2048 = 34359738368
由于126 0000属于7位数,数值范围处于一重间接地址和二重间接地址之间,所以可以判定1260000需要使用二重间接地址的方式来分析磁盘读取情况。

下面给出二重和三重间接地址读取情况的过程作为参考:

二级索引

  1. 读取i结点(1次硬盘读取)。
  2. 根据i结点的二级间接地址读取相应的二级间接地址块(1次硬盘读取)。
  3. 在二级间接地址块中找到一级间接地址,读取一级间接地址块(1次硬盘读取)。
  4. 根据一级间接地址块中的地址,读取包含目标字节的磁盘块(1次硬盘读取)。
    总计需要4次硬盘读取操作。

三级索引

  1. 读取i结点(1次硬盘读取)。
  2. 根据i结点的三级间接地址读取相应的三级间接地址块(1次硬盘读取)。
  3. 在三级间接地址块中找到二级间接地址,读取二级间接地址块(1次硬盘读取)。
  4. 根据二级间接地址块中的地址,读取一级间接地址块(1次硬盘读取)。
  5. 根据一级间接地址块中的地址,读取包含目标字节的磁盘块(1次硬盘读取)。
    总计需要5次硬盘读取操作。

综上所述,此题应该是读取4次硬盘。

3 假设文件索引节点中有7个地址项,其中4个地址为直接地址索引,1个地址项是二级间接地址索引,每个地址项的大小为4字节,若磁盘索引块和磁盘数据块大小均为256字节,则可表示的单个文件最大长度是()

答:
在这里插入图片描述

————————————————

虚拟页式存储地址转换过程-转换检测缓冲区(TLB)
1 在虚拟页式存储系统中,其页表(单级页表)存放在内存中。
(1)如果一次物理内存访问需要150ns,试问实现一次页面访问至少需要的存取时间是多少?

(2)如果系统有快表(TLB),快表的命中率为90%,查询一次快表的时问为30ns,试问此时实现一次页面访问平均存取时间为多少?

(3)采用快表后的平均存取时间比没有采用快表时下降了百分之几?

【答案】

(1)150 * 2 = 300ns

(2)( 150 + 30 )* 90% + ( 150 + 150 ) * 10% = 192 ns (此处是采取教材上默认的情况:TLB查找与内存查找并行,实际考试中请自己辨别,目前这个解法是和答案一致的)

(3)( 300 - 192 ) / 300 * 100% = 36%

【解析】

①明确访存过程

通常访问内存的过程分为两步,

第一步:访问内存,查找页表及其对应框,形成物理地址
第二步:访问内存,根据物理地址,计算实现对内存单元的访问,读写数据或指令

②理解快表快在哪里

快表:为提高CPU访存速度,用来存放最近被访问过的页表项(类似浏览器的经常访问网页记录)

因此免除了从头到尾挨个访问内存的过程,只在快表中查找即可,访存速度大大提高
也就是针对上述第一步访问内存,查找页表的效率进行了提升

③进行有无快表访存速度的比较

无快表:两次访问内存

有快表 (命中率为N且访问TLB与访问内存并行) :{ ( 两次访问内存 ) × ( 1-N ) + (一次访问内存 + 一次访问快表) × N }

有快表 (命中率为N且访问TLB失败后才访问内存) :{ ( 两次访问内存 + 一次访问快表 ) × ( 1-N ) + ( 一次访问内存 + 一次访问快表 ) × N }

EAT = a * λ +(t + λ)(1 - a) + t = 2t + λ - t * a
————————————————

磁盘格式化后,每个扇区的存储空间512B

【操作系统】磁盘调度算法

文章目录
影响其访问的时间因素
磁盘调度(移臂调度)
常见的磁盘调度算法
1、先来先服务算法(FCFS)
2、最短寻道时间优先算法(SSTF)
3、电梯调度算法(扫描算法SCAN)
4、循环扫描算法(C-SCAN)

影响其访问的时间因素
读写一个磁盘块时,影响其访问的时间因素主要有三个方面:
①寻道时间:磁头移动到指定磁道所需时间。
②旋转延迟时间:等待指定扇区到达磁头下的旋转时间。
③数据传输时间:数据在磁盘与内存之间的传输时间。

寻道时间占主导地位,所以减少平均寻道时间是改善系统性能的重要途径。

磁盘调度(移臂调度)
当多个磁盘I/O请求到来时,磁盘驱动程序需要安排I/O请求的处理顺序,这称为磁盘调度或移臂调度。

常见的磁盘调度算法

1、先来先服务算法(FCFS)
先来先服务算法根据磁道访问请求到来的先后顺序完成请求
例:
假如系统先后到来对柱面12,80,5,60,95,20,86,35,72,55的访问请求,按照FCFS调度算法处理该请求序列。
在这里插入图片描述
柱面访问序列:12,80,5,60,95,20,86,35,72,55
磁头总共移动:80-12+80-5+95-5+95-20+86-20+86-35+72-35+72-55=479个磁道距离
响应一个请求平均需要移动:479/10=47.9个磁道(平均寻找长度)

优点:公平,简单;如果请求访问的磁道比较集中的话,算法性能很好;
缺点:很难优化寻道时间;如果有大量进程竞争使用磁盘,请求访问的磁道很分散,则FCFS在性能上很差,寻道时间很长。
————————————————
2、最短寻道时间优先算法(SSTF)
最短寻道时间优先算法总是优先满足距离磁头当前位置最近的访问请求。

例:
柱面访问请求到来顺序为:12,80,5,60,95,20,86,35,72,55的,假定磁头位置当前在60号柱面。按照SSTF调度算法处理该请求序列。
在这里插入图片描述
柱面访问序列:60,55,72,80,86,95,35,20,12,5
磁头总共移动:60-55+95-55+95-5=135个磁道距离
响应一个请求平均需要移动:135/10=13.5个磁道(平均寻找长度)

优点:性能较好,平均寻道时间短;
缺点:可能产生“饥饿”现象。本例中,如果在处理95号磁道的访问请求时又来一个86号磁道的访问请求,处理86号磁道的访问请求时又来一个95号磁道的访问请求.如果有源源不断的86号、95号磁道的访问请求到来的话,35、20、12、5号磁道的访问请求就永远得不到满足,从而产生“饥饿”现象。
————————————————
3、电梯调度算法(扫描算法SCAN)
对于先后到达的磁盘访问请求,电梯调度算法首先选择移臂方向,磁臂在该方向上移动的过程中依次处理途经的各个访问请求,直到该方向上再无请求时,改变移臂方向,依次处理相反方向上遇到的各个请求。如果同一柱面上有多个请求,还需进行旋转优化。

例:
柱面访问请求到来顺序为:12,80,5,60,95,20,86,35,72,55,假定磁头正从60号磁道开始,向磁道号增加方向移动。按照电梯调度算法处理该请求序列。
在这里插入图片描述
柱面访问序列:60,72,80,86,95,55,35,20,12,5
磁头总共移动:95-60+95-5=125个磁道距离
响应一个请求平均需要移动:125/10=12.5个磁道(平均寻找长度)

优点:性能较好,平均寻道时间较短,不会产生饥饿现象。
缺点:①只有到达最边上的磁道时才能改变磁头移动方向,事实上,处理了95号磁道的访问请求之后就不需要再往右移动磁头了。②SCAN算法对于各个位置磁道的响应频率不平均(如:假设此时磁头正在往右移动,且刚处理过55号磁道,那么下次处理55号磁道的请求就需要等磁头移动很长一段距离;而响应了95号磁道的请求之后,很快又可以再次响应95号磁道的请求了)
————————————————
4、循环扫描算法(C-SCAN)
在该算法中,磁头仅在一个移动方向上提供访问服务。
磁臂从磁盘开始端柱面至结束端柱面移动的过程中依次处理途经请求,然后,直接返回开始端柱面重复进行,归途中并不响应请求。开始端与结束端柱面构成了一个循环。

例:
柱面访问请求到来顺序为:12,80,5,60,95,20,86,35,72,55,规定磁头向柱面号增加的方向移动时才访问磁道。柱面编号为0~100。
假定磁头正从60号柱面开始,向柱面号增加方向移动。按照循环扫描(C-SCAN)调度算法处理该请求序列。

在这里插入图片描述
柱面访问序列:60,72,80,86,95,100,0,5,12,20,35,55
磁头总共移动:100-60+55-0=95个磁道距离
响应一个请求平均需要移动:95/10=9.5个磁道(平均寻找长度)

优点:比起SCAN来,对于各个位置磁道的响应频率很平均。
缺点:只有到达最边上的磁道时才能改变磁头移动方向,事实上,处理了95号磁道的访问请求之后就不需要再往右移动磁头了;并且,磁头返回时其实只需要返回到5号磁道即可,不需要返回到最边缘的磁道。
————————————————

进程调度与死锁

进程调度时机

  • 进程运行结束

  • 进程阻塞,

  • 中断返回

  • 更高优先级的进程到来

  • 时间片用完
    选择调度策略的准则

  • 周转时间短

    1. 周转时间是指从作业被提交给系统开始, 到作业完成为止的这段时间间隔.
    2. 包括4部分: 作业在外存后备队列上等待调度的时间, 进程在就绪队列上等待进程调度的时间, 进程在CPU上执行的时间, 进程等待IO操作完成的时间.
    3. 使用平均周转时间和带权平均周转时间来衡量系统的时间性能.
    4. 平均周转时间:N个作业的周转时间之和除以N.
    5. 带权平均周转时间: N个作业的周转时间与CPU执行时间的比值之和除以N
  • 响应时间快

  • 截止时间的保证

  • 系统吞吐量高:

  • 吞吐量是单位时间内完成的作业数.

  • 处理机利用率好

调度算法

非实时系统中的调度

  1. 先来先服务调度算法(FirstCome,FirstService , FCFS)
  2. 短进程优先调度算法
  3. 优先权调度算法
    # 非抢占式优先权调度算法
    # 抢占式优先权调度算法
    优先权的类型
    # 静态优先权
    # 动态优先权
  4. 时间片轮转调度算法
  5. 多级队列调度
  6. 多级反馈队列调度

实时系统中的调度

  • 实现实时调度的基本条件
    1 提供必要的调度信息
    1). 就绪时间,
    2). 开始截止时间和完成截止时间
    3). 处理时间
    4). 资源要求
    5). 优先级
    2 系统处理能力强
    限制条件
    若m个进程, 处理时间表示为C, 周期时间表示为P,则m个C/P比值之和, 应该小于等于1.否则称为系统不可调度
    3 采用抢占式调度机制
    分为基于时钟中断的抢占和立即抢占
    4 具有快速的切换机制

  • 实时调度算法
    1 最早截止时间优先(Earlist Deadline First, EDF)
    2 最低松弛度优先(Least Laxity First LLF), 松弛度是用来表示实时进程的紧迫程序. 如果一个进程的完成截止时间为T,
    当前时间为Tc, 处理完该任务还需要的时间为Ts, 则松弛度L的表达式为: L = T - Tc - Ts

多处理器调度

  • 紧密耦合的多处理器系统和松弛耦合的多处理系统
  • 紧密耦合的多处理系统通常通过高速总线或高速交叉开关实现多个处理器之间的互连, 它们共享主存储器系统和IO设备
  • 松弛耦合的多处理器系统 通过通道或通信线路来实现多台计算机之间的互连.
  • 对称多处理器系统和非对称多处理器系统

产生死锁的原因

竞争共享资源且分配资源的顺序不当

死锁产生需要满足的条件(必须同时满足)

  • 互斥条件。指一个进程在访问资源的过程中,其他进程不能访问该资源。
  • 请求和保持条件。进程已经保持了一个资源,又提出了新的资源要求,而新请求的资源已经被其他进程占有,此时进程阻塞,但对已经获得的资源保持不放,使得其他进程无法使用被保持的资源。
  • 不剥夺条件。进程已经获得的资源不能被剥夺,只能由进程自己释放。
  • 环路等待条件。在发生死锁时,必须存在一个进程申请资源的环行链。

处理死锁的基本方法

死锁的预防

  • 摒弃请求和保持条件
  • 摒弃不剥夺条件
  • 摒弃环路等待条件

死锁的避免

  • 为安全状态和不安全状态
    检测并解除死锁
    忽略死锁问题

死锁的检测和解除

  1. 何时调用检测算法
  2. 资源分配图
  3. 死锁定理:
    死锁定理用于检测系统所处的资源分配状态S是否为死锁状态.
    S为死锁状态的充分条件是当且仅当S状态的资源分配图是不可完全简化的
  4. 死锁的解除: 有两个途径: 终止处于死锁状态的进程, 抢占死锁进程占有的资源

银行家算法
基本思路是一个进程提出资源请求后, 系统先进行资源的试分配 , 然后检测本次的试分配是否会使系统处理于安全状态, 若安全, 则按试分配方案分配资源 , 否则不分配资源.
available: 系统中资源可供使用的数量
max: 需要的资源最大数量
allocation: 已分配的资源
need: 需求的资源
request: 请求的资源

第一步:
if request<=need:
去第二步:
else:
出错

第二步:
if request <= available:
去第三步:
else:
阻塞该进程

第三步: 执行资源的试分配
available = available-request;
allocation = allocation +request
need = need-request

一文搞懂操作系统中银行家算法

操作系统——银行家算法(银行家和房地产开发商的爱恨情仇

大题题型

  • 信号量机制
  • 银行家算法
  • 调度算法求周转时间/平均周转时间
  • 基本分页存储管理管理策略,求物理地址/页大小/页表项/多少位,计算页目录号/页号/进程页所在的页框号/页内偏移量
  • 磁盘调度,使用先来先服务(FCFS)/最短寻道时间优先(SSTF)/扫描算法(SCAN)/循环扫描(CSCAN)/FSCAN,求平均磁道长度和次序

信号量案例

题型1:
某展会任何时刻最多可容纳500名参观者,当展厅中少于500名参观者时,则厅外的参观者可立即进入,否则需在外面等待。参观者进入展厅时,都必须在入口处登记(并领取资料和礼品),假定入口处有5位工作人员,每位工作人员每次只能接待一个参观者登记,请用记录型信号量机制时间参观者进程的同步算法。register()是完成登记并领取资料的函数;visit()是完成参观展览的函数;leave()是表示参观完毕离开的函数。下面已经给出了部分代码,请填写1-2空白处的代码。注:每一空可能不止一行代码。
————————————————

  1. struct semaphore cap; //表示展会容量
    struct semaphore officer; //表示工作人员的信号量
    ____(1)
    void process Vistor()
    {

    _(2)
    }

答案: 
(1)	cap.value=500;			//cap表示容量,500
	officer.value=5;		//officer表示检查,5

(2)	wait(cap);				//先检查容量看看能否进去
	wait(officer);			//再检查登记看能否登记
	register();				
	signal(officer);		//完成登记,解锁让给下一位
	visit();
	leave();
	signal(cap);			//完成参观,离开让给下一位

注意
wait(s) = s-1
signal(s)= s +1
wait 和signal成对出现
语句结尾使用 ;

操作系统 考研习题 详细解析

磁头和磁盘盘面在存取数据过程中既有存数据的操作,也有取数据的操作。
在存数据过程中,磁头会将数据写入磁盘盘面上的磁道中。磁头会根据指令将数据信号转换为磁场信号,并通过磁头的磁场作用于磁盘盘面,将数据写入磁道中的磁介质。
在取数据过程中,磁头会读取磁盘盘面上的磁道中的数据。磁头会根据指令将磁场信号转换为数据信号,并通过磁头的读取电路将数据传输到计算机系统的主存储器中。

寻道时间(Seek Time):寻道时间是指磁头从当前磁道移动到目标磁道的时间。它取决于磁头的移动速度和距离。
旋转延迟时间(Rotational Latency):旋转延迟时间是指等待目标数据从磁盘旋转到磁头下方的时间。它取决于磁盘的旋转速度和磁头位置。
传输时间(Transfer Time):传输时间是指数据从磁盘传输到主存储器的时间。它取决于磁盘的传输速度和数据量。

银行家资源分配死锁判断
总共有w个资源,有n个进程,每个进程使用r个资源。那么w必须>= n*(r-1)+1
需要的资源>=并发的进程数*(每个资源需要的进程数-1)+1

索引节点的理解

  • 索引节点,其英文为 Inode,是 Index Node 的缩写。索引节点是整个 Linux
    文件系统的基础。Linux或者Unix中一切皆文件。存储于文件系统上的任何文件都可以用索引节点来表示
  • 在 Linux
    系统中,文件系统主要分为两部分,一部分为元数据(metadata),另一部分为数据本身。元数据,换句话说,就是“包含了与数据有关信息的数据”。索引节点就管理着文件系统中元数据的部分。
  • 文件系统中的任何一个文件或目录都与一个索引节点相对应 Linux 文件系统从来不存储文件创建时间
  • 索引节点的创建与正在使用的文件系统有关。一些文件系统在创建时就创建了索引节点。有些文件系统创建时创建索引节点,但使用动态节点分配,并按需扩大索引节点的数量
  • 当用户试图读取文件或与该文件相关的信息时,他会使用文件名称。但是,实质上这个文件名称首先映射为存储于目录表中的索引点节号码。通过该索引节点号码又读取到相对应的索引节点。索引节点号码及相对应的索引节点存放于映射表(Inode
    table)中。
  • 文件存储在硬盘上,硬盘的最小存储单元叫做 扇区 Sector,每个扇区存储512字节
  • 操作系统读取硬盘的时候,不会一个一个扇区读取,而是一次性连续读取多个扇区,即一次性读取一个 块 Block;这种由多个扇区组成的块,是文件存储的最小单位
  • 在硬盘格式化的时候,操作系统会自动将硬盘分为两个区域,一个是数据区域,用于存放文件数据;一个是inode区域,存放inode所包含的信息
  • 由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存储满额的情况,此时将无法在硬盘上创建新文件
  • 每个inode都有一个号码,操作系统使用inode号码来识别不同的文件;
    Unix/Linux系统不使用文件名来识别文件,对于系统来说,文件名只是inode号码便于识别的别称;系统打开文件过程有以下三步:
Unix/Linux系统不使用文件名来识别文件,对于系统来说,文件名只是inode号码便于识别的别称;系统打开文件过程有以下三步:

系统找到此文件对应的inode号码;
通过inode号码获取inode信息;
根据inode信息找到对应的block位置,读取数据;
  • 硬链接与软链接

    • 硬链接

      1 默认情况下,文件名与inode号码是一一对应的关系,每个inode号码对应一个文件名称
      但是Unix/Linux系统允许多个文件名指向同一个inode号码,可以用不同的文件名访问同样的内容,对玩家内容进行修改,会影响到所有文件名;但是删除一个文件名,不会影响另一个文件名的访问,这种情况称为 硬链接;
      2 inode信息中有一项为 链接数,记录指向该inode的文件名总数

    • 软链接

      文件A和文件B的inode号码不同,但是文件A的内容是文件B的路径,读取文件A时,系统会自动访问导向文件B,因此无论打开哪一个文件,最终都是读取文件B,这时文件A就称为文件B的 软链接,Windows下称此方式为 快捷方式

      软链接与硬链接最大的区别

      硬链接中文件A指向文件B的inode号码;
      软链接中文件A指向文件B的文件名称,软链接不会导致 链接数 增加;

      inode号码与文件分离,会产生以下特殊现象

      文件包含特殊字符,删除inode号码即可删除文件;
      移动文件或者重命名只会修改文件名称,不影响inode号码;
      系统以inode号码识别文件,不再考虑文件名称;

  • Inode 在分区级别是唯一的。如果两个文件位于不同的分区上,则它们可以具有相同的 inode 编号

在操作系统中,簇(Cluster)是文件系统中的基本存储单位。文件系统将磁盘空间划分为一个个连续的簇,每个簇的大小可以根据文件系统的不同而有所不同,通常是几个扇区或几个字节的倍数。

案例

每个inode的大小一般是128字节或256字节,inode节点的总数,在格式化时就给定,一般是每1KB2KB就设定一个inode,假定在一块1GB的硬盘中,每个inode节点的大小为128字节,那么每1KB就设置一个inode,那么inode区域的大小就会达到128MB,占12.5%。为什么是12.5%?

根据题目中的假设,每个inode节点的大小为128字节,每1kb设置一个inode。
要计算inode区域的大小,我们需要知道硬盘的总容量和每个块的大小。题目中给出的是1GB的硬盘,即1024MB。假设块的大小为1KB,即1024字节。
首先,计算硬盘中总共可以容纳多少个块:
1GB = 1024MB 1024MB / 1KB = 1024 * 1024个块
然后,计算inode区域的大小:
每1KB设置一个inode,即每个块设置一个inode。
所以,inode区域的大小为 1024 * 1024 * 128字节 = 131072KB = 128MB。
最后,计算inode区域的大小占整个硬盘容量的百分比:
inode区域的大小为128MB,总硬盘容量为1024MB,所以 128MB / 1024MB = 0.125,即12.5%。
因此,inode区域的大小为128MB,占整个硬盘容量的12.5%

————————————————

操作系统主引导记录的英文是 Master Boot Record (MBR)。

当我们在文件系统中创建一个硬链接时,删除其中一个文件名不会影响另一个文件名的访问。
在文件系统中,一个文件可以有多个文件名指向同一个数据块。这些文件名被称为硬链接。当我们删除一个文件名时,只是删除了文件名和对应数据块之间的映射关系,但实际的数据块并不会被删除。因此,其他仍然存在的文件名仍然可以通过文件系统访问到相同的数据块。
这种机制使得多个文件名可以指向同一个文件,从而实现共享文件的目的。删除一个文件名只是删除了一个链接,而不会影响其他链接的访问。只有当所有的链接都被删除时,文件的数据块才会被真正删除。
  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值