[toc]
软件设计师笔记04_操作系统_精简考点
科目一考试中占7分左右。

基本概念
操作系统的定义
操作系统定义:能有效地组织和管理系统中的各种软硬件资源;合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。
操作系统的作用
- 通过资源管理提高计算机系统的效率
- 改善人机界面向用户提供友好的工作环境
操作系统的特征
操作系统的4个特征是并发性、共享性、虚拟性和不确定性。
- 并发性:多个进程同时运行
- 共享性:资源共享
- 虚拟性:虚拟内存、虚拟设备
- 不确定性:执行结果不确定
操作系统的功能
操作系统的功能可分为进程管理、存储管理、文件管理、设备管理、作业管理。
操作系统的分类
- 批处理操作系统
- 分时操作系统(轮流使用CPU工作片)
- 实时操作系统(快速响应)
- 网络操作系统
- 分布式操作系统(物理分散的计算机互联系统)
- 微机操作系统(Windows)
- 嵌入式操作系统
计算机的启动流程
计算机启动的基本流程为:BIOS——>主引导记录——>操作系统
进程管理
基本概念
进程是系统进行资源分配和调度的一个独立单位。
进程的组成
进程通常由程序块,数据块,进程控制块(PCB)组成。
- 进程控制块PCB(是进程的唯一标志)
- 程序块(描述进程要做什么)
- 数据块(存放进程执行时所需数据)
进程的基础状态模型-三态图
进程一般有3中基础状态:运行,就绪和阻塞。

- 就绪:一个进程获得了除CPU以外的所有资源,一旦得到CPU资源就可以运行。此时的进程处于就绪状态。
- 运行:当一个进程得到了CPU资源时,则表示该进程正在系统上运行。此时的进程处于运行状态。
- 阻塞:阻塞也称等待或睡眠状态。一个进程正在等待某一事件发生(例如正在请求其他资源)而暂时停止运行,这时即使把CPU资源分配给进程也无法运行,故称该进程处于阻塞状态。
注意:运行可以直接转换为就绪或阻塞。就绪状态只能转换为运行状态,阻塞状态只能转换为就绪状态。
进程的复杂状态模型-五态图
事实上,对于一个实际的系统,进程的状态及其转换更为复杂。如图所示,引入新建状态和终止状态。

- 新建:对应一个进程刚刚被创建时没有被提交的状态,并等待系统完成创建进程的所有必要信息。
- 终止:对应一个进程运行完毕的状态。
注意:运行可以直接转换为就绪或等待或终止,就绪只能转换为运行,等待只能转化为就绪。
进程调度
- 进程调度方式分为可剥夺和不可剥夺两种。
- 可剥夺式是指当有更高优先级的进程到来时,强行将正在运行进程的 CPU分配给高优先级的进程;
- 不可剥夺式是指当有更高优先级的进程到来时,必须等待正在运行进程自动释放占用的CPU,然后将CPU分配给高优先级的进程。
进程调度算法
常用的进程调度算法有先来先服务、时间片轮转、优先级调度和多级反馈调度算法。
- 先来先服务调度算法:是指按照进程到达的先后顺序进行调度,先到达的进程先执行,后到达的进程后执行。
- 时间片轮转调度算法:是指给每个进程分配一个固定的时间片,在该时间片内进程执行。时间片结束后则将CPU资源分配给其他进程。
- 优先级调度算法:是指给每个进程分配一个优先级。优先级高的进程先执行,优先级低的进程后执行。
- 多级反馈调度算法:该算法是将时间片轮转调度算法和优先级调度算法相结合。将进程分为多个队列,每个队列有不同的优先级,进程可以在不同队列之间进行迁移,根据进程的行为和优先级进行调度。
调度算法对比:
- FCFS:先来先服务,公平但效率低
- 时间片轮转:公平,适合分时系统
- 优先级调度:优先级高的先执行
- 多级反馈:结合时间片和优先级。相当于 时间片轮转 + 优先级调度。
真题
真题示例
在单处理机系统中,采用先来先服务调度算法。系统中有4个进程P1、P2、P3、P4 (假设进程按此顺序到达),其中P1为运行状态,P2为就绪状态,P3和P4为等待状态,且P3等待打印机,P4等待扫描仪。若P1 时间片到了,则P1、P2、P3和P4的状态应分别为( )。
A 等待、就绪、等待和等待 B 运行、就绪、运行和等待 C 就绪、运行、等待和等待 D 就绪、就绪、等待和运行
解题思路:
- P1 状态:因为时间片到了,P1 不能继续占用 CPU ,它从运行状态转变为就绪状态,等待下一次被调度执行。
- P2 状态:在先来先服务调度算法下,P2 在就绪队列中等待,且 P1 时间片到了释放了 CPU ,按照先来先服务的规则,P2 将获得 CPU 进入运行状态。
- P3 和 P4 状态:P3 等待打印机,P4 等待扫描仪,它们所等待的资源未得到满足,依然处于等待状态 。
真题示例
在单处理机计算机系统中有1台打印机、1台扫描仪,系统采用先来先服务调度算法。假设系统中有进程P1、P2、P3、P4,其中P1为运行状态,P2为就绪状态,P3等待打印机,P4等待扫描仪。此时,若P1释放了扫描仪,则进程P1、P2、P3、P4的状态分别为( )。
本题解题关键在于理解进程状态以及先来先服务调度算法的特点,具体思路如下:
- 分析 P1 状态:P1 释放扫描仪,只是释放了占用的资源,它本身仍在运行,所以 P1 还是运行状态 。
- 分析 P2 状态:系统采用先来先服务调度算法,P2 处于就绪状态且在就绪队列中等待,在 P1 未结束运行且无更高优先级抢占情况下,P2 只能继续等待,状态依旧是就绪。
- 分析 P3 状态:P3 等待打印机,P1 释放的是扫描仪,与 P3 等待的资源无关,所以 P3 仍处于等待打印机的等待状态。
- 分析 P4 状态:P4 等待扫描仪,P1 释放了扫描仪,满足 P4 等待的资源条件,P4 从等待状态变为就绪状态,等待被调度执行
进程通信
进程间的同步与互斥
进程同步与互斥
即通过信号量协调进程间的执行顺序,保证进程按正确的先后顺序执行。通过前驱图确定进程之间的先后关系,然后利用 PV 操作来实现这种同步关系。
信号量机制是一种用于控制进程间同步和互斥的机制。
PV操作是用来操作信号量的方式。
信号量 (⭐⭐⭐)
信号量是一种用于控制进程间同步和互斥的机制。
信号量是一个整型变量(通常用S表示),用于描述系统中某类资源的可用数量或某个事件的状态。其值的含义如下:
- S > 0:表示当前还剩余多少可用资源数量;
- S = 0:表示资源刚好用完,无剩余、也没有进程等待;
- S < 0:表示资源已经用完,此时信号量S的绝对值 = 正在排队等待的进程数量。
信号量S的物理意义:当 S ≥ 0 时表示某资源的可用数量,若 S < O,则表示其绝对值表示阻塞队列中等待该资源的进程数量。
PV操作 (⭐⭐⭐)
PV 操作是对信号量的原子操作(不可中断的操作),用于实现进程的同步与互斥:
- P 操作 :表示申请一个资源;
- V 操作 :表示释放一个资源。
PV 操作的具体逻辑
- P(S) 操作
- 先将信号量S的值减 1(S = S - 1), 即先申请并锁定资源;
- 然后若S ≥ 0:表示还有剩余资源,则该进程可以正常往下执行;
- 然后若S < 0:表示剩余资源不够,则该进程进入等待队列(该线程转为阻塞状态,等待资源释放)。
- V(S) 操作
- 先将信号量S的值加 1(S = S + 1), 即先释放资源;
- 然后若S > 0:无等待进程,直接结束;
- 然后若S ≤ 0:从等待队列中唤醒一个进程(使其就绪)。
P操作的定义:S=S-1。当某个资源的信号量S >= 0时,执行P操作,将该资源的信号量S减1;当某个资源的信号量S < 0时,由于该资源的信号量S为负数,说明该资源当前不可用,需要等待其他进程释放资源。
V操作定义: S=S+1。若S>0,则执行V操作的进程继续执行;若S ≤ 0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。
信号量和PV操作的举例说明 (⭐⭐⭐)
举例说明1
假设:停车场总共有 3 个车位。则信号量S = 3。
- 来第 1 辆车(进程 1 申请):此时P 操作:S = 3 - 1 = 2。表示剩余 2 个车位,进程 1 可以正常往下执行。
- 来第 2 辆车(进程 2 申请):此时P 操作:S = 2 - 1 = 1。表示剩余 1 个车位,进程 2 可以正常往下执行。
- 来第 3 辆车(进程 3 申请):此时P 操作:S = 1 - 1 = 0。表示剩余 0 个车位,车位刚好用完。进程 3 可以正常往下执行。
- 来第 4 辆车(进程 4 申请):此时P 操作:S = 0 - 1 = -1。表示剩余 -1 个车位,车位已经用完。进程 4 进入等待队列。此时的 -1 表示有 1 辆车在排队等待
S≥0 表示资源可用数量;S<0 绝对值是等待该资源的进程数。
举例说明2
假设厕所只有 1 个坑位,设初始信号量 S = 1
- 进程 A 进来:P (S) → S=1-1=0,进程 A 上厕所。
- 进程 B 进来:P (S) → S=0-1=-1,进程 B 等待厕所释放资源。
- 进程 A 上完厕所,释放资源:V (S) → S=-1+1=0,进程 B 从厕所队列中移除,准备上厕所了。
前趋图与PV操作 (⭐⭐⭐)
解题思路
- 先在前趋图中给每个箭头画上P操作和V操作。其中箭头起点为V操作,箭头终点为P操作。
- 然后对前趋图中的箭头,按从左到右,从上到下的顺序。依次标注上信号量。注意是左上,左下,右上,右下顺序。(大多如此)
- 有时候会根据P1和P2,P3,P4 之间的箭头。来标注信号量。
在前趋图中,针对箭线标注信号量,箭线的起点位置是V操作(即前趋活动完成后以V操作通知后继活动);箭线的终点位置是P操作(即后继活动开始前以P操作检查前趋活动是否完成)。
真题

试题分析:
P(S)操作是申请资源,是减量操作;V(S)操作是释放资源,是增量操作。所以执行两次P(S)后S的值是-3。
答案:B
真题示例

先按照解题思路,标注上信号量。
分析进程间的依赖关系:从前驱图可知,P1 执行完后 P2 才能执行,P2 执行完后 P3 和 P4 才能执行,P3 和 P4 执行完后 P5 才能执行。
- 根据前驱图,P1进程运行完需要V(S1)操作通知P2进程,所以空①应填V(S1)。
- P2进程运行完需要利用V(S2)、V(S3)操作分别通知P3、P4进程,所以空②应填V(S2)V(S3)。
- 根据前驱图,P3进程运行完需要利用V(S4)、V(S5)操作分别通知P4、P5进程,故空③应为填写V(S4)V(S5)。
- P4需要等待P2和P5进程的通知,需要执行2个P操作,由于P4进程的程序中执行前有1个P操作P(S4),故空④应为填写P(S3)。
- 根据前驱图,P4进程执行完需要通知P5进程,故P4进程应该执行1个V操作,即空⑤应填V(S6)。
- P5进程运行前需要等待P3和P4进程的通知,需要执行2个P操作,故空⑥应填写P(S5)和P(S6)。
真题示例3

先按照解题思路,标注上信号量。

解题分析:
- 根据前驱图,P1进程运行完需要利用V操作V(S1)、V (S2)分别通知P2、P3进程,所以空①应填V (S2)。
- P2进程需要等待P1进程的通知,故需要利用P(S1)操作测试P1进程是否运行完,由于P3进程执行前已经用P(S2), 所以空②应填P (S1)。
- 根据前驱图,P3进程需要等待P1和P2进程的通知,需要执行2个P操作,即P (S2)、P (S3)。由于P3进程的程序中执行前有1个P操作P (S2),故空③应为填写P (S3)。
- P3进程运行结束需要利用1个V操作通知P5进程,故空④应为1个V操作V (S5)。
- 根据前驱图,P4进程执行完需要通知P5进程,故P4进程应该执行1个V操作,即空⑤应填V (S6)。
- P5进程运行前需要等待P3和P4进程的通知,需要执行2个P操作,故空⑥应填写P(S5)和P(S6)。
真题

先按照解题思路,标注上信号量。
试题分析 
真题

解析 
注意:该题中的信号量就不是按照左上,左下,右上,右下的顺序标注的。而是按照P1和P2,P3,P4 之间的箭头。来标注信号量。
死锁 ⭐
死锁,是指两个以上的进程互相都要求对方已经占有的资源,从而导致双方进程都无法继续运行下去的现象。
产生死锁的4个必要条件是互斥条件、请求保持条件、不可剥夺条件和环路条件。
- 资源互斥
- 每个进程占有资源并等待其他资源
- 系统不能剥夺进程资源
- 进程资源图是一个环路
死锁计算公式
若系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n*(R-1)。其不发生死锁的最小资源数为n*(R-1)+1。
- 发生死锁的最大资源数 = n*(R-1)
- 不发生死锁的最小资源数 = n*(R-1)+1
死锁的处理方法
死锁的处理策略主要有4种:鸵鸟策略(即不理睬策略)、预防策略、避免策略和检测与解除死锁。
其中死锁避免就是银行家算法,即提前计算出不会产生死锁的资源分配方法。
例题
真题范例
某计算机系统中互斥资源R的可用数为8,系统中有3个进程P1、P2和P3竞争R,且每个进程都需要i个R,该系统可能会发生死锁的最小i值为( 4 )。
根据公式 8 >= 3*(i-1)+1 。当i=4时公式不成立,可能会发生死锁。
真题范例

正确答案C 图①可化简,图②不可化简
解析:
在图①中,R1的可用资源数=1,R2的可用资源数=0,进程P1是非阻塞节点,可以运行完毕: P1释放其占用的资源后,R1的可用资源数=2,R2的可用资源数=1,P2、P3都是非阻塞节点,因为P2申请2个R1资源、P1申请1个R2资源的请求均可以满足而运行完毕。可见进程资源图①是可化简的。图②中,R1和R2的可用资源数都为0,P1、P2和P3都是阻塞节点,所以图②是不可化简的。
真题范例
假设某计算机系统中资源R的可用数为6,系统中有3个进程竞争R,且每个进程都需要i个资源R,该系统可能会发生死锁的最小i值是 ( 3 ) 。若信号量S的当前值为-2,则R的可用数和等待R的进程数分别为 ( 0、2 ) 。
解题思路:
资源R的可用数为6,系统中有3个进程竞争R,当每个进程分配2个进程数的适合,不会发送死锁。一旦大于2就会发生死锁。
本题由于信号量S的当前值为-2,则意味着系统中资源R的可用个数M=0, 等待资源R的进程数N=2。
真题范例
某系统中有3个并发进程竞争资源R,每个进程都需要5个R,那么至少有( 13 )个R,才能保证系统不会发生死锁。
解题思路:
根据公式 不发生死锁的最小资源数 >= 进程数 *(单个进程所需资源数-1)+1
即不发生死锁的最小资源数 >= 3(5-1)+1
线程 ⭐
同一个进程当中的各个线程,可以共享该进程的各种资源,如内存地址空间、代码、数据、文件等,线程之间的通信与交流非常方便。
但每个线程都有自己独立的CPU运行上下文和栈,这是不能共享的(程序计数器、寄存器和栈不能共享)。
线程和进程的资源问题
同一进程内所有线程:共享进程大部分资源,仅私有少量。
- 可共享资源:全局变量、静态变量、堆空间、文件、进程代码
- 线程私有资源:栈、程序计数器 PC、寄存器、局部变量
存储管理
存储管理的主要目的是解决多个进程同时使用内存的问题。
由于进程运行时需要加载到物理内存中,不同的进程大小是不一样的,并且物理内存的大小是有限的,所以如何将进程加载到物理内存中,是一个重要的问题。
操作系统最开始采用的是「连续分配」方式,核心是让进程在内存中占据一块连续的物理空间。这种方式看似简单,却存在两个无法回避的致命问题,这也是页式存储诞生的核心动因。
问题1:外部碎片问题(最核心痛点)
连续分配要求进程必须占用一整块连续的内存空间。
假设内存总大小为100MB,先后加载了3个进程:A(20MB)、B(30MB)、C(25MB),此时内存剩余25MB。
当进程A执行完毕释放20MB后,内存中会出现“20MB空闲块+25MB空闲块”,但这两个空闲块是离散的。如果此时有一个需要22MB的进程D,虽然总空闲内存(45MB)足够,但因为没有连续的22MB空间,进程D无法加载——这种“内存总空闲足够,但无连续空闲块”的现象,就是「外部碎片」。
随着进程的频繁加载、释放,外部碎片会越来越多,导致大量内存空间被浪费,甚至出现“内存未满但无法加载新进程”的尴尬局面。
问题2:内存利用率极低,无法支持大进程
一方面,外部碎片的浪费让内存利用率大打折扣;另一方面,连续分配无法支持“进程大小超过剩余连续内存”的场景。比如,内存剩余30MB(离散分布),但有一个35MB的大进程,即便内存总空闲可能超过35MB,也无法加载,只能等待其他进程释放足够大的连续空间,灵活性极差。
最终操作系统设计者寻找一种新的内存分配方式——既能解决外部碎片,又能提高内存利用率,还能支持虚拟内存,页式存储应运而生。
页式存储的核心思想
页式存储的核心思想非常简单:打破“连续分配”的限制,将进程和内存都拆分成固定大小的“块”,让进程的块可以离散存放在内存的任意空闲块中。
具体设计分为3步,每一步都对应解决传统连续分配的痛点。
第一步:拆分进程和内存。将进程和内存都拆分成固定大小的“块”,让进程的块可以离散存放在内存的任意空闲块中。
首先,操作系统规定一个固定的“块大小”(比如4KB、8KB),然后:
- 将进程的逻辑地址空间,按块大小拆分成若干个相等的部分,每一部分称为「页面」(简称“页”),页的编号从0开始。
- 将内存的物理地址空间,按同样的块大小拆分成若干个相等的部分,每一部分称为「物理块」(又称“块”),块的编号也从0开始。
关键点:页的大小 = 物理块的大小,这是后续地址转换的基础。比如块大小为4KB,那么进程的每一页都是4KB,内存的每一个物理块也都是4KB。
第二步:将进程的块分配到内存。根据进程的逻辑地址,将进程的块装入内存中。
当进程需要加载到内存时,操作系统不再分配连续的物理空间,而是为进程的逻辑地址空间的每一页,分配一个空闲的物理块(可以是离散的、不连续的)。
比如,进程有3页(0、1、2),可以将页0放到物理块5,页1放到物理块2,页2放到物理块8——只要物理块空闲,无论位置在哪里,都可以分配。
这样一来,因为所有空闲块都是固定大小,无论如何分配,都不会出现“离散的、无法利用的小空闲块”,只会出现“页内碎片”(进程最后一页可能用不满一个块,剩余的空间无法利用,但页内碎片远小于外部碎片,浪费可忽略)。
第三步:根据进程的逻辑地址,将进程的块中的数据装入物理内存中。
如何根据逻辑地址的页号,找到对应的物理块号?这就需要「页表」——每个进程都有一张专属页表,记录了“页号→物理块号”的映射关系(比如页0对应块5,页1对应块2)。
地址转换流程(软考必考):
- 将进程的逻辑地址拆分为「页号」和「页内偏移」;
- 查询该进程的页表,根据页号找到对应的物理块号;
- 将“物理块号”和“页内偏移”拼接,得到最终的物理地址;
- CPU根据物理地址访问内存数据。
分页式存储管理
将进程空间分为一个个页,每次将需要运行的逻辑页装入物理块中,运行完再装入其他需要运行的页,就可以分批次运行完进程,而无需将整块逻辑空间全部装入物理内存中
- 优点:利用率高、碎片小(只在最后一个页中有)、分配及管理简单
- 缺点:增加了系统开销,可能产生抖动现象
真题示例
某操作系统采用分页存储管理方式,下图给出了进程A和进程B的页表结构。如果物理页的大小为1K字节,那么进程A中逻辑地址为1024 (十进制)用变量存放在( )号物理内存页中。假设进程A的逻辑页4与进程B的逻辑页5要共享物理页4,那么应该在进程A页表的逻辑页4和进程B页表的逻辑页5对应的物理页处分别填( )。

因为逻辑地址是从0开始编址的,物理页的大小为1KB,而进程A逻辑地址为1024 的变量的逻辑页号为1,对应的物理页号为3。
根据题意,进程A的逻辑页4与进程B的逻辑页5要共享的物理页4,那么应该在进程A页表的逻辑页4对应的物理页处填4,进程B页表的逻辑页5对应的物理页处也填4。
分段式存储管理
将进程空间分为一个个段,每段也有段号和段内地址,与分页式存储不同的是,每段物理大小不同,分段是根据逻辑整体分段的。
- 优点:程序逻辑完整,修改互不影响
- 缺点:内存利用率低,内存碎片浪费大
段页式存储
段页式存储管理既具有分页式存储能有效地提高主存利用率的优点,又具有分段式存储能很好地满足用户需要的长处,显然是一种比较有效的存储管理方式。
段页式存储管理核心思想就是对进程空间先分段,后分页。
- 优点:空间浪费小、存储共享容易、能动态连接
- 缺点:由于管理软件的增加,复杂性和开销也增加,执行速度下降
记忆点:
段页式存储 = 分段 + 分页
- 先分段(按功能):代码段、数据段、栈段
- 再分页(按大小):每段分成固定大小的页
- 两级地址转换:段表 → 页表 → 物理地址
真题示例
某操作系统采用分页存储管理方式,下图给出了进程A和进程B的页表结构。如果物理页的大小为1K字节,那么进程A中逻辑地址为1024 (十进制)用变量存放在( )号物理内存页中。假设进程A的逻辑页4与进程B的逻辑页5要共享物理页4,那么应该在进程A页表的逻辑页4和进程B页表的逻辑页5对应的物理页处分别填( )。

因为逻辑地址是从0开始编址的,物理页的大小为1KB,而进程A逻辑地址为1024 的变量的逻辑页号为1,对应的物理页号为3。
根据题意,进程A的逻辑页4与进程B的逻辑页5要共享的物理页4,那么应该在进程A页表的逻辑页4对应的物理页处填4,进程B页表的逻辑页5对应的物理页处也填4。
真题示例

(26)试题分析: 页内地址为13位,页号地址为11位,段号地址为8位。
根据公式,可以分别计算段号、页号和页内地址最大的寻址空间。存储管理系统中的地址长度均表示为最大的寻址空间。
所以最多有 2^8^ = 256 段,每段最大有 2^11^ = 2048 页,页的大小为 2^13^ = 8*1024 = 8K。
答案:(26)B
位数决定寻址上限,是 “最大有”,而非 “均为”。
真题示例

由于物理块是从0开始编号的,所以 16385号物理块是第16386块。16386/32=512.0625,所以 16385 号物理块的使用情况在位示图中的第513个字中描述。
磁盘的容量为 1000GB,物理块的大小为4MB,则磁盘共有(1000x1024/4)个物理块,一个字对应 32 个物理块,位示图的大小为1000 x 1024/(32x4) =8000 个字。 答案:C、D
设备管理
设备管理是操作系统中最繁杂而且与硬件紧密相关的部分。
I/O 软件
I/O软件是一个用于专门管理设备的软件,它提供了程序与设备的交互。通过I/O软件,用户可以方便地管理和使用设备,从而不必关心设备的具体实现细节。
I/O设备管理软件一般分为4层:中断处理程序、设备驱动程序、与设备无关的系统软件和用户级软件。
如图所示 
I/O管理四层架构(从上到下):
从上到下为:
- 用户层I/O软件(库函数如printf)
- 与设备无关的系统软件(统一接口read/write)
- 设备驱动程序(设备专属操作)
- 中断处理程序(响应硬件中断)
磁盘调度
常用的磁盘调度算法如下
- 先来先服务(FCFS)算法
- 最短寻道时间优先(SSTF)算法
- 扫描(SCAN)算法
- 单向扫描调度(CSCAN)算法
真题
某磁盘有100个磁道,磁头从一个磁道移至另一个磁道需要6ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和20ms,则读取一个100块的文件需要( )ms。
步骤一:计算寻道时间
- 每次寻道移动10个磁道,每个磁道移动时间6ms,则每次寻道时间为 10x6=60ms 。
- 100块文件,每块都需先寻道,所以寻道总时间为 100x60=6000ms 。
步骤二:计算旋转延迟时间
- 每块的旋转延迟时间为 100ms,一共有 100块文件。那么旋转延迟总时间为100×100=10000ms
步骤三:计算传输时间
每块的传输时间为20ms ,文件共100块。所以传输总时间为 100x20=2000ms 。
步骤四:计算读取文件的总时间
将寻道时间、旋转延迟时间和传输时间相加,可得总时间为 6000+10000+2000=18000ms
真题
假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为10μs,由缓冲区送至用户区的时间是5μs,系统对每个磁盘块数据的处理时间为2μs。若用户需要将大小为10个磁盘块的Docl文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间为( )μs;采用双缓冲区需要花费的时间为( )μs。
当第一块数据送入用户工作区后,缓冲区是空闲的,可以传送第二块数据。这样第一块数据的处理C1与第二块数据的输入T2是可以并行的。
依次类推,每一块数据的处理时间为10+5=15。则采用单缓冲区需要花费的时间为 15*10+2
若采用双缓冲区,则可使系统不必等待设备输入。每一块数据的处理时间为10,采用双缓冲需要花费的时间为10*10+5+2=107。
真题

试题分析: (6msX10个磁道 + 100ms + 20ms) x 100块 = 18000
多级索引结构
多级索引结构的计算核心公式
- 磁盘块可存的块号数 = 磁盘块大小 ÷ 块号大小
- 一级索引结构:文件大小 = 块号数 × 磁盘块大小
- 二级索引结构:文件大小 = (块号数 × 块号数) × 磁盘块大小
- 三级索引结构:文件大小 = (块号数 × 块号数 × 块号数) × 磁盘块大小
例子
某文件系统采用多级索引结构,若磁盘块的大小为512B,每个块号需占3B,那么根索引采用一级索引时的文件最大长度为( ) KB:采用二级索引时的文件最大长度为( ) KB。
根据题意,磁盘块的大小为512B,每个块号需占3B,因此一个磁盘物理块可存放512/3=170个块号。
- 根索引采用一级索引时的文件最大长度为: 170 X 512 =87040 B 约为85KB
- 根索引采用二级索引时的文件最大长度为: (170 X 170) X 512 = 289900 B 约为 14450KB
SPOOLing技术(假脱机技术)
应用场景:打印机共享 作用:将独占设备虚拟为共享设备
文件管理
位示图 ⭐
位示图的大小需要多个字 = 磁盘中物理块的数量 / 一个字可记录的物理块数量。
真题
某字长为 32 位的计算机的文件管理系统采用位示图(bitmap)记录磁盘的使用情况。若磁盘的容量为 300GB,物理块的大小为1MB,那么位示图的大小为( )个字
A.1200 B.3200 C.6400 D.9600
试题分析:
300G 的磁盘有 300×1024 = 307200 个物理块,因此总共需要 307200 位,307200/32 = 9600 字(32位系统的字长就是 32 位)。 即位示图的大小为 9600 个字。
真题

由于物理块是从0开始编号的,所以 16385号物理块是第16386块。16386/32=512.0625,所以 16385 号物理块的使用情况在位示图中的第513个字中描述。
磁盘的容量为 1000GB,物理块的大小为4MB,则磁盘共有(1000x1024/4)个物理块,一个字对应 32 个物理块,位示图的大小为1000 x 1024/(32x4) =8000 个字。 答案:C、D
真题
某文件管理系统在磁盘上建立了位示图(bitmap) ,记录磁盘的使用情况。若计算机系统的字长为32 位,磁盘的容量为300GB ,物理块的大小为4MB ,那么位示图的大小需要( )个字。
根据题意,计算机系统中的字长为32位,每位可以表示一个物通块的“使用”还是“未用”,一个字可记录32个物理块的使用情况。又因为磁盘的容量为300GB,物理块的大小为4MB,那么该磁盘有300*1024/4=76800个物理块,位示图的大小为76800/32=2400个字
真题
某文件系统采用位示图(bitmap)记录磁盘的使用情况。若计算机系统的字长为64位,磁盘的容量为1024GB,物理块的大小为4MB,那么位示图的大小需要( )个字。
根据题意计算机系统中的字长为64位,每位可以表示一个物理块的“使用”还是“未用”,一个字可记录64个物理块的使用情况。又因为磁盘的容量为1024GB,物理块的大小为4MB,那么该磁盘有1024X1024/4=262144个物理块,位示图的大小为262144/64=4096个字。
真题
某文件管理系统采用位示图.(bitmap)来记录磁盘的使用情况,若计算机系统的字长为64位,磁盘容量为512GB,物理块的大小为4MB,那么位示图的大小为( )个字.
512G=5121024M。所以5121024/4/ 64=2048,位示图的大小为2048个字.
真题

试题分析:
2053/32=64.156,并且位示图是从0开始的,所以选择C选项。
真题
在计算机系统中,若P1进程正在运行,操作系统强行撒下P1进程所占用的CPU,让具有更高优先级的进程P2运行,这种调度方式称为( 可剥夺方式 )。
在单处理机系统中,采用先来先服务调度算法。系统中有4个进程P1、P2、P3、P4 (假设进程按此顺序到达),其中P1为运行状态,P2为就绪状态,P3和P4为等待状态,且P3等待打印机,P4等待扫描仪。若P1时间片到了,则P1、P2、P3和P4的状态应分别为( 就绪、运行、等待和等待 )。
假设系统采用PV操作实现进程同步与互斥,若有n个进程共享一台扫描仪,那么当信号量S的值为-3时,表示系统中有( 3 )个进程等待使用扫描仪。
假设某分时系统采用简单时间片轮转法,当系统中的用户数为n、时间片为q时, 系统对每个用户的响应时间T= ( n*q )。
在单处理机计算机系统中有1台打印机、1台扫描仪,系统采用先来先服务调度算法。假设系统中有进程P1、P2、P3、P4,其中P1为运行状态,P2为就绪状态,P3等待打印机,P4等待扫描仪。此时,若P1释放了扫描仪,则进程P1、P2、P3、P4的状态分别为( 运行、就绪、等待、就绪 )。
假设系统中有n个进程共享3台扫描仪,并采用PV操怍实现进程同步与互斥。若系统信号量S的当前值为-1,进程P1、P2又分别执行了1次P(S)操作,那么信号量S的值应为( -3 )。
假设系统有n (n≥5) 个进程共享资源R,且资源R的可用数为5。若采用PV操作,则相应的信号量S的取值范围应为( -(n-5)~5 )。
PV操作是操作系统提供的具有特定功能的原语。利用PV操作可以( 实现资源的互斥使用 )。
在支持多线程的操作系统中,假设进程P创建了线程T1、T2和T3, 那么以下叙述中错误的是( 线程T1、T2可以共享P进程中T3的栈指针 )。
