系统架构师(操作系统)
1. 内存管理
1.1 分页存储
分页存储(一维):将进程的逻辑地址空间分为若干个大小相等的区域,称为页,从0开始编号。相应的内存物理地址被分成若干个块,称为物理块或页框,同样从0开始编号。若干页可以被装入多个不相邻的物理块中。同时,系统为每个进程维护一个页表,记录页号和页框的映射。
分页存储管理中,物理页大小通常设置为2的整数次幂,这样能通过拆分逻辑地址的二进制位快速分离逻辑页号与页内偏移:取逻辑地址二进制的低n位作为页内偏移,n为页大小对应的幂次,比如页大小512字节对应2的9次幂,就取低9位,剩余的高位部分即为逻辑页号;通过该逻辑页号查询进程页表,可得到对应的物理页号,再将物理页号与页内偏移拼接就能得到最终的物理地址。
例子:某操作系统采用分页存储管理方式,下图给出了进程A和进程B的页表结构。如果物理页的大小为 512 字节,那么进程 A 逻辑地址为 1111(十进制)的变量存放在()号物理内存页中。
物理页=512=2^9
1111(十进制)=10001010111(二进制)
后 9 位是页内偏移
剩余位(2)是逻辑页地址,剩余位=10(二进制)=2(十进制)
查看进程A的页表,逻辑页2,对应的物理页为4
所以,答案为4
1.2 分段存储
分段存储(二维):将作业的地址空间划分为若干段,从0开始编号,使用一段连续的地址空间。段的长度由逻辑信息组的长度决定,因此每个段的长度不等。
1.3 段页式存储+页面置换策略
在分页及段页式存储管理机制中,若页面大小为2的整数次幂,逻辑地址可按位拆分,高位部分为页号,低部位数与页大小的二进制位数一致的部分为页内偏移;物理地址通过页表映射得到,计算方式为对应页帧号乘以页面大小后加上页内偏移。
进行页面置换时,通常优先选择最近未被访问(访问位为0)的页面淘汰,若多个页面访问状态相同,则优先淘汰未修改(修改位为0)的页面——这是因为已修改页面淘汰前需写回外存,会额外增加系统开销;这类结合访问位与修改位的置换逻辑,是Clock等高效置换算法的核心思路,能在保证内存利用率的同时降低置换的系统消耗。
进程P有8个页面,页号分别为0~7,页面大小为4K ,假设系统给进程P分配了4个存储块,进程P的页面变换表如下所示。表中状态位等于1和0分别表示页面在内存和不在内存。若进程P要访问的逻辑地址为十六进制 5148H,则该地址经过变换后, 其物理地址应为十六进制();如果进程P要访问的页面6不在内存,那么应该淘汰页号为()的页面。
答:
(1)页面大小=4KB=2^12B,则逻辑地址【二进制】的后12位为页内偏移,剩余高位页为页号。 5148H=5148【十六进制】=0101000101001000【二进制】,页内偏移=000101001000【二进制】=148【十六进制】;页号=0101【十六进制】=5【十六进制】;
从表中得知,5页号对应3页帧号,从题目得知页大小为4K【十进制】,物理地址 = 页帧号 × 页大小 + 页内地址 = 3 × 1000【十六进制】 + 148【十六进制】 = 3148【十六进制】=3148H
(2)从有页帧的看,先淘汰访问位为0的,再淘汰修改位为0的,所以先淘汰5
2. 信号量机制
2.1 PV操作
在操作系统并发控制中,信号量(Semaphore) 用于协调多个进程或线程对共享资源的访问,防止出现“临界区冲突”。信号量初始值和临界资源数量有关,一个临界资源,信号量初始为 1,表示只有 1 个资源可用。依次类推,两个临界资源,信号量初始为2,表示只有2个资源可用。
P(wait)操作:S = S - 1,若结果 < 0,则表示资源不可用,当前线程需等待。
V(signal)操作:S = S + 1,若结果 ≤ 0,则唤醒等待队列中的一个线程。
两个线程共享一个临界资源,使用信号量进行同步控制。若此时信号量的值为 -1,则说明()。
答:共享一个临界资源,则S初始值为1;
若该资源被一个线程占用,则S=S-1=0;
若还有资源进来,则S=0-1=-1;所以,如果此时信号量的值为-1,说明一个资源已进入临界区,而另一个资源也等待进入
2.2 进程同步
用PV操作实现进程前驱约束是进程同步的典型应用:P操作是申请等待、V操作是释放通知
用于同步的信号量初始值需设为0,代表进程需等待前驱事件完成
规则:前驱进程执行完毕后,要对每个对应后继的信号量执行V操作,以此传递“已完成、可启动”的信号;后继进程启动前,需对所有依赖前驱的信号量执行P操作,确保所有前置条件满足后再推进自身逻辑。
当一个进程存在多个前驱时,需为每个前驱单独设置信号量,启动前依次执行对应P操作,等待所有前驱的通知;若一个进程有多个后继,要为每个后继配置独立信号量,完成后逐一执行V操作,分别触发各后继的执行。
例如:用PV操作控制进程,若用PV操作控制进程P1~P4并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1-S5的初值都等于0。那么a,b,c,d,e,f处的信号量应该填什么?
总结:PV操作是针对信号量S的操作,S是根据前驱顺序进行编号的,P操作表示等待前驱,V表示通知后续
步骤一:确定信号量S
信号量初值为0表示“需等待”。在前趋图中,每一条有向边用一个信号量表示“前驱完成后释放,后继开始时等待”。根据图中依赖关系:P1→P2 用S1,P1→P3 用S2,P3→P2 用S3,P2→P4 用S4,P3→P4 用S5。
步骤二:根据P操作表示等待前驱,V表示通知后续确定操作
a为P1结束后向P2、P3分别发信号,故V(S1)V(S2);
b为P2开始需等待来自P1和P3的S1与S3,故P(S1)P(S3);
c为P2结束后通知P4可继续,故V(S4);
d为P3开始需等待来自P1的S2,故P(S2);
e为P3结束后需分别通知P2与P4,故V(S3)V(S5);
f为P4开始需等待来自P2与P3的S4与S5,故P(S4)P(S5)。
2.3 进程异步
互斥信号量是实现进程互斥访问临界资源的核心机制,临界资源指一次仅能被一个进程访问的资源,比如共享数据、独占硬件等。互斥信号量的初始值固定为1,标识临界资源初始处于可用状态,仅允许一个进程进入对应的临界区。
规则:进入临界区前必须执行P操作申请资源,若信号量值为0则进程阻塞等待;无论临界区内的操作成功或失败,只要退出临界区就必须执行V操作释放资源,确保信号量回归可用状态,避免出现资源竞争、死锁或进程永久阻塞的问题。
例如:某航空公司机票销售系统有 n 个售票点,该系统为每个售票点创建一个进程 Pi(i=1,2,...,n)管理机票销售。假设 Tj(j=1,2,...,m)单元存放某日某航班的机票剩余票数,Temp 为 Pi 进程的临时工作单元,x 为某用户的订票张数。初始化时系统应将信号量 S 赋值为()。Pi 进程的工作流程如下图所示,若用 P 操作和 V 操作实现进程间的同步与互斥,则图中空(a),空(b)和空(c)处应分别填入(,,)。
答:互斥信号量用于保护对共享变量(此处为余票 Tj)的临界区访问。初始量固定为1。
a处要进入临界区,所以执行P操作;b\c处退出临界区,所以执行V操作。
3. 实时/分时操作系统
实时操作系统(RTOS)的任务调度核心目标是保障任务执行的确定性与及时性。
分时操作系统的核心目标:任务公平性
RTOS 通常采用抢占式调度模型,即高优先级任务可打断低优先级任务,从而保障响应时间。
时间片轮转适用于分时系统,而 RTOS 更常使用基于优先级的调度算法。
许多 RTOS 使用静态优先级调度,但也有一些采用动态优先级(如 EDF)或多种策略组合。
API:应用程序编程接口(Application Programming Interface),由RTOS提供的一组函数和调用方式,供应用程序与操作系统内核交互,实现任务调度、通信、同步等功能。
实时操作系统(RTOS)是专为实时控制任务设计的系统,它具备可裁剪性与可配置性这一关键特性,能够根据硬件环境的变化、不同应用场景的需求,灵活调整内核的结构与功能,以此适配资源有限的硬件平台,最大程度节省系统资源。
RTOS的核心目标是统筹调度系统所有可利用资源,确保实时任务在规定时限内准确完成,同时它必须具备快速响应实时事件与外部中断的能力,保障任务执行的确定性。
实时操作系统的调度算法可分为强(硬)实时调度算法和软实时调度算法两类。
强实时调度对时限要求极严格,必须确保所有任务在截止时间前完成,否则会引发系统严重故障;软实时调度则允许少量任务超时,不会造成致命影响。常见的强实时调度算法包括三类,分别是最早截止时间优先(EDF),该算法在单处理器系统中可保证任务的可调度性,总是优先调度截止时间最近的任务;最小松弛度优先(LLF),依据任务截止时间与剩余执行时间的差值(松弛度)来确定调度优先级,松弛度越小优先级越高,能有效保障任务按时完成;速率单调调度(RMS),属于固定优先级调度算法,按照任务周期长短分配优先级,任务周期越短,优先级越高。
4. 嵌入式
嵌入式操作系统是适配嵌入式硬件的专用系统,核心特点有这些:
1. 它面向特定应用场景,可根据需求进行功能裁剪与硬件移植;
2. 多数情况下需要支持多任务处理,以此满足实时响应、并发事件处理等实际需求,并非不需要多任务;
3. 具备高可靠性,能在少人工干预甚至无干预的状态下独立运行,有效应对各类运行事件与故障;
4. 受嵌入式系统存储资源有限的约束,要求系统编码体积小巧,适配有限的存储空间
----
板级支持包BSP是嵌入式系统中衔接底层硬件平台与嵌入式操作系统的关键中间层,具备硬件有关性与操作系统有关性两大核心特性。
硬件有关性体现在它必须针对具体硬件平台定制开发,不同CPU架构、外设布局、板卡设计都需要匹配专属BSP,以此精准适配和管理硬件资源;
操作系统有关性则指其接口规范需与目标嵌入式操作系统的内核要求完全契合,不同嵌入式操作系统(如Linux、VxWorks、RT-Thread等)内核交互标准不同,BSP需按对应标准适配才能让系统稳定调用硬件。
BSP可有效屏蔽底层硬件的复杂性与差异性,大幅降低嵌入式操作系统在不同硬件平台间的移植难度,是嵌入式系统开发与移植中不可或缺的组成部分。
----
嵌入式软件低功耗设计的核心策略包含编译优化技术、软硬件协同设计与算法优化三类。
编译优化可通过指令精简、代码压缩等方式生成能效更高的目标代码,减少CPU无效运行时长以降低功耗;
软硬件协同设计强调软件功能与硬件特性的适配,比如利用专用硬件模块承担原本由软件实现的运算任务,避免软硬件不匹配带来的冗余功耗;
算法优化则从逻辑层面入手,通过采用低复杂度算法、动态调整运算精度等方式,减少数据处理量与系统运行时间,从根源上降低能耗。
----
混成系统作为嵌入式实时系统的重要子类,融合了离散事件系统与连续动态系统的特性,其组件可由离散分离组件与连续组件以并行或串行的方式组合构成,核心依靠计算模型来协调管控各组件的运行行为,并非单纯通过同步或异步事件进行管理。这类系统能同时处理离散逻辑切换与连续状态变化,在工业过程控制、自动驾驶、航空航天等对实时性与动态性要求较高的场景中有着广泛应用。
----
嵌入式系统设计需紧扣硬件资源受限的核心特性,兼顾多维度关键因素。首先要保障系统扩展性与兼容性,可升级、可配置能力支撑后续功能迭代,统一接口规范实现与其他设备的顺畅适配,易用性设计则能降低终端用户操作门槛。硬件层面需重点考量重量、功耗,这类因素直接决定设备在移动、低功耗场景(如智能穿戴、野外监测传感器)的续航能力与部署可行性。商业化与开发效率维度上,成本控制是提升产品市场竞争力的关键,合理把控开发周期则影响产品上市节奏。此外,不同细分场景需强化特定属性,比如车载、医疗嵌入式系统要重点保障实时性、容错性与安全性,工业级设备需侧重可靠性与稳定性,消费级产品可更偏向成本控制与用户体验优化。
5. 存储-文件索引节点法
UNIX类文件系统的inode多级索引存储机制,核心是通过直接地址索引、一级间接地址索引、二级间接地址索引(部分系统还支持三级间接)的组合,兼顾小文件访问效率与大文件存储能力。
例子:
某文件系统文件存储采用文件索引节点法。假设磁盘索引块和磁盘数据块大小均为 1KB,每个文件的索引节点中有 8 个地址项 iaddr[0]~iaddr[7],每个地址项大小为 4 字节,其中 iaddr[0]~iaddr[5] 为直接地址索引,iaddr[6] 是一级间接地址索引,iaddr[7] 是二级间接地址索引。如果要访问 icwutil.dll 文件的逻辑块号分别为 0、260 和 518,则系统应分别采用(,,)。该文件系统可表示的单个文件最大长度是()KB。
答:
磁盘索引块 1KB=1024B
每个地址项大小=4字节=4B
那么一个索引块,可以存储1024/4=256个地址
iaddr[0]~iaddr[5] 为直接地址索引,对应6个数据块,对应逻辑号0~5
iaddr[6] 是一级间接地址索引,一级可以指向256个数据块,对应逻辑号6~261
iaddr[7] 是二级间接地址索引,可覆盖256*256=65536个数据块,对应逻辑号 262~65797
0对应直接地址索引;260对应一级索引;518对应二级索引
共覆盖6+256+65536=65798个数据块,*1KB(数据块大小)=65798KB
某文件系统文件存储采用文件索引节点法。每个文件索引节点中有 8 个地址项,每个地址项大小为 4 字节,其中 5 个地址项为直接地址索引,2 个地址项是一级间接地址索引,1 个地址项是二级间接地址索引。磁盘索引块和磁盘数据块大小均为 1KB。若要访问 iclsClient.dll 文件的逻辑块号分别为 1、518,则系统应分别采用()
答:磁盘索引块和磁盘数据块大小均为 1KB,每个地址项大小为 4 字节,那么每个块可存1KB/4B=256个地址;8个地址项,前5个是直接索引,对应地址0~4,2个是一级间接索引,对应地址5~260,261~516;1个是二级索引,对应517~256*256+5-1。【注意-1!!!】
某文件目录项 64 字节,其中 4 字节为索引项、60 字节为文件名。若索引项按字节编址,则最多可表示的文件数为()
答:索引项为4字节=4X8=32位,所以可以表示2^32文件数,和文件名大小无关。
6. 缓冲区管理(单缓冲/双缓冲)
单缓冲模式下,磁盘读入缓冲区、缓冲区数据传至用户区为连续不可拆分的阶段,必须与数据处理阶段串行执行;
双缓冲模式通过设置两个独立缓冲区交替使用,可让磁盘读入操作与缓冲区传区、数据处理操作并行进行;
某计算机系统输入/输出采用双缓冲工作方式,其工作过程如下图所示,假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间T为 10μs,由缓冲区送至用户区的时间 M 为 6μs,系统对每个磁盘块数据的处理时间 C 为 2μs。若用户需要将大小为 10 个磁盘块的 Doc1 文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用双缓冲需要花费的时间为()μs,比使用单缓冲节约了()μs时间。
答:(1):在双缓冲方式下,第一个磁盘块读入缓冲区时间T=10μs,传送到用户区时间M=6μs,处理时间C=2μs,这三个操作依次进行,总时间为T+M+C=10+6+2=18μs。从第二个磁盘块开始,由于双缓冲机制,磁盘块读入缓冲区的操作可以和缓冲区数据传送到用户区及数据处理操作并行。后续每个磁盘块实际增加的时间是T=10μs(max{T,M+C}),一共10个磁盘块,除去第一个磁盘块,还有9个,所以总时间为18+9×10=108μs。
(2)在单缓冲方式下,磁盘一定要等缓冲区的数据被加载到处理区后才能处理。这里分为两段流水,一段是读入缓冲区+缓冲区传送到用户去,这一段是不可分的,另一段是数据处理,即先读入缓冲区(T=10μs)+再传送到用户区(M=6μs)是一个整体,最后处理(C=2μs),这是一个流水线操作,那么根据流水线公式,10个磁盘块总时间为(16+2)+9×(16)=162μs。双缓冲时间为108μs,所以节约的时间为162−108=54μs。
7. 磁盘存储优化分布
磁盘处理同一磁道上的记录时,总耗时主要由单记录的读取处理时间和记录间的旋转定位时间构成。单记录读取时间可通过磁盘旋转一周时间除以每磁道物理块数计算,加上记录处理时间即为单记录的基础耗时。
在未优化的连续顺序存储场景中,若记录处理时间大于单块读取时间,处理完当前记录后磁头会错过下一条记录的起始位置,需要额外等待旋转定位的时间,这会显著增加整体耗时。为减少这类额外开销,可采用优化存储策略,将记录按特定间隔存放,让处理完当前记录的耗时恰好匹配磁头旋转到下一条记录起始位置的时间,从而消除旋转定位延迟,此时总耗时仅为单记录基础耗时乘以记录总数。这类优化思路属于磁盘IO性能优化的一部分,核心是通过合理规划数据物理分布来减少机械操作带来的延迟,类似的还有针对寻道时间的优化算法,都是从降低机械开销角度提升IO效率的常用手段。
在磁盘上存储数据的排列方式会影响 I/O 服务的总时间。假设每磁道划分成10个物理块,每块存放1个逻辑记录。逻辑记录 R1,R2, ..., R10 存放在同一个磁道上, 记录的安排顺序如下表所示:
假定磁盘的旋转速度为 30ms/周,磁头当前处在 R1的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为 6ms,则处理这 10 个记录的最长时间为 ();若对信息存储进行优化分布后,处理10个记录的最少时间为()。答:
(1)30ms/周,10个物理块,扫过一个物理块的时间就是 3ms;加上处理的时间 6ms,读取并处理 R1一共需要 9ms【注意:默认处理是要数据全局信息,所以需要读取完毕之后才能处理,需要两者时间相加】,而从 R2 开始,多了一个旋转定位时间,9ms时,磁盘头已到R4,最长需要再旋转8个块,去读和处理R2,即8*3+3+6=33ms,R3~R10与R2一样,都是用时33ms,所以总用时=9+33*9=306ms
示意图:
(2)所谓分布优化,就是让R1处理完之后,磁头的位置在R2处,其实只要把记录间隔存放,就能达到这个目标。在物理块1中存放R1,在物理块4中存放R2,在物理块7中存放R3,依此类推,这样可以做到每条记录的读取与处理时间之和均为9ms,所以处理10条记录一共耗时90ms。
示意图:
8. 磁盘调度-最短移臂调度算法
最短移臂优先调度(SSTF)是常用的磁盘调度算法,核心是每次选择与当前磁头所在柱面距离最近的I/O请求来服务,能有效减少总寻道时间,相比先来先服务(FCFS)算法寻道效率更高,但存在远端请求长期无法被响应的“饿死”隐患。磁盘调度需遵循先移臂调度确定目标柱面,再在同一柱面内按扇区号从小到大执行旋转调度的流程,当多个I/O请求处于同一柱面时,要依据旋转调度规则排序处理。
在磁盘调度管理中,应先进行移臂调度,再进行旋转调度。假设磁盘移动臂位于21号柱面上,进程的请求序列如下表所示。如果采用最短移臂调度算法,那么系统的响应序列应为()。
答:遵循先柱面最近,再扇区从小到大的原则,顺序应该为:283571469
9. 死锁
死锁 :
(1)四个必要条件
互斥条件:资源是独占的
不可剥夺条件:不被其他进程强行剥夺
请求和保持条件:在申请新的资源时,继续占用已分配资源
循环等待条件:进程等待队列形成环路
死锁预防:
破坏其中一个
(不可剥夺条件)不能获得所需要的全部资源时便处于等待状态,等待期间可以被剥夺
(请求与保持条件)每个进程在开始执行时就申请他所需要的全部资源
(循环等待)将紧缺的,稀少的采用较大的编号,在申请资源时必须按照编号的顺序进行
10. 银行家算法(避免死锁)
银行家算法是操作系统中用于避免死锁的经典算法,核心通过判断系统是否处于安全状态,即存在安全序列,来决定资源分配。计算当前可用资源时,用系统总资源减去各进程已分配资源的总和。安全状态的判定逻辑为:若存在某个进程的尚需资源数小于等于当前可用资源,即可优先为其分配资源,待该进程完成后释放其占用的全部资源,更新系统可用资源,再重复此过程,若最终所有进程都能依次完成,则系统处于安全状态。
需要注意的是,不安全状态并不等同于必然死锁,但安全状态可确保系统不会进入死锁;当拟为某进程分配资源时,需先模拟分配操作,再检查是否仍能构造出安全序列,若无法构造则不可分配,反之则可执行分配。
假设系统中互斥资源R的可用数为25。T0时刻进程P1、P2、P3、P4 对资源R的最大需求数、已分配资源数和尚需资源数的情况如表a所示,则系统()。
答:已有资源=25,已用资源=6+4+7+6=23,剩余可用2;
为确保一定不会死锁,则只能先分配给P3,待P3完成后,释放P3占用的全部资源,再判断
11. 作业/进程/线程
在操作系统中,进程是进行资源分配和管理的最小单位,它是拥有独立功能的程序执行活动,操作系统的各类资源调度与管理操作均围绕进程展开。
进程的三种形态转换:

线程是进程内部的基本执行单元,是CPU调度和执行的最小单位,自身不独立拥有系统资源,依赖所属进程获取资源。
作业是用户提交给操作系统的任务集合,可包含一个或多个进程,作业调度侧重于对多进程的整体管理。
程序段则是程序中可独立执行的代码片段,不属于资源管理的基本单位,仅为程序内部的逻辑结构部分。
12. M2M
M2M即机器对机器通信,是实现设备间自主数据传输与交互的技术体系,也是物联网落地应用的重要技术基础,其核心技术模块包含五大类:智能化机器作为数据源头,可自主采集或生成业务相关数据;M2M硬件负责从机器终端提取数据,并实现设备与通信网络的接入适配;通信网络承载数据的远距离传输,涵盖有线、无线、蜂窝网络等多种传输载体;中间件用于衔接异构系统与设备,打破不同平台间的互操作障碍;应用层是价值转化核心,通过对采集数据的清洗、分析、建模,输出可视化结果或决策依据,支撑设备管控、业务优化等场景。目前M2M已广泛应用于工业远程监控、智能电网抄表、智慧农业环境调控等诸多领域。
13. 多道批处理系统
多道批处理系统的核心优势在于通过资源并行利用提升效率,其逻辑是当某个作业因等待I/O操作暂停执行时,操作系统会将CPU分配给其他就绪作业,避免CPU空闲,同时I/O设备与CPU可并行运作,这是它区别于单道批处理系统的关键。
一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚20ms到达,它们的计算和I/O操作顺序如下:
P1: 计算40ms,I/O 60ms,计算40ms
P2: 计算100ms,I/O 40ms,计算40ms
若不考虑调度和切换时间,则完成两个作业需要的时间最少是()。答:
p1先到,先执行p1
0~40ms,执行p1计算,期间p2已到达;~100ms,p1的io操作执行完毕,p2正在进行计算操作,cpu被占用不能执行p1的计算操作;
~140ms,p2计算完毕,cpu释放;
~180ms,p1计算完毕,p2io完毕;~220ms,p2计算完毕,所有操作执行完毕;
14. 用户态与内核态
所谓内核态,即操作系统的管理程序运行时的状态。所谓用户态,即用户程序运行时的状态。
处于用户态的应用程序不具备直接执行特权指令的权限,若需请求内核提供的硬件访问、进程管理等服务,需通过系统调用机制主动触发访管中断,也就是监控陷入,这是一种软件中断,可安全实现用户态到内核态的切换,由内核代为执行特权操作后再回退至用户态。
(1)用户态(目态)只能执行非特权指令,内核态(管态)什么都可以执行
(2)常见的特权指令:对I/O设备的操作的指令、访问程序状态的指令、存取特殊寄存器的指令等
(3)类似于trap指令、数据传送指令、设置断点指令都可以在用户态执行,只是需要从用户态切换到内核态

中断的类型:
(1)溢出中断:是算术运算溢出引发的异常中断
(2)外部中断:由键盘、定时器等外部硬件设备触发
(3)访管中断:应用程序在用户态使用特权指令进行系统调用
15. 位示图(bitmap)计算方法
位示图是一种在操作系统中管理磁盘空间的方法,通过使用二进制位来表示磁盘中每个盘块的使用情况。位示图中的每一位对应磁盘上的一个物理块,其中"0"通常表示该盘块空闲,而"1"表示已分配。不同的系统可能会反转这些标记,但本质上两种状态都是用来标识空闲和已分配的情况。位示图的优势是占用空间极小,页框的分配与回收操作效率较高,适配大内存系统的页管理需求。
某计算机系统采用分页管理方式,页面大小为4KB,主存容量为16GB,采用位示图来记录主存页面的分配情况。问:位示图所占的存储空间为多少KB
答:
主存大小:16GB = 16 × 1024 MB = 16 × 1024 × 1024 KB = 16 × 1024 × 1024 × 1024 B
页面大小:4KB = 4 × 1024 B
主存中页面数(页框数) = 总内存大小 ÷ 页面大小=4 × 1024× 1024
位示图大小:每一页用1位表示是否被占用,4 × 1024× 1024位
转换为KB:4 × 1024× 1024 ÷8 ÷1024 = 512KB
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐













所有评论(0)