操作系统期末复习

关于程序中断的题目:

  1. 优先级最高的中断

    题目:下列哪个中断具有最高优先级?

    答:D. 时钟中断

知识点

  • 在几乎所有通用 CPU(x86、ARM、RISC-V)的硬件优先级分配里,**时钟中断(Timer Interrupt)**被固定为最高或次高,以保证系统滴答(tick)能准时更新,从而维持调度器、定时器、profiler 的正确性。

  • 4

  1. 中断处理流程里"哪一步不必要"

    题目:在中断处理程序中,下列哪个操作是不必要的?

    答:B. 关闭中断

知识点

标准中断处理框架(进入→服务→退出):

  1. 保存现场(寄存器、栈指针等)

  2. 可选:关中断 / 设置中断屏蔽位 ------ 仅当这段临界区"不允许被嵌套"时才做;很多现代 OS 为了支持中断嵌套,并不全程关中断,而是只把当前 IRQ 线屏蔽掉。

  3. 执行真正的 ISR(中断服务例程)

  4. 恢复现场

    因此"关中断"不是必要步骤,而是"可选"步骤。

处理机调度:

信号量机制题目:

得看书复习了。

解答:相当聪明!

信号量机制的算法书写:

PRO算法需要取出结果并处理!

只有一个缓冲区:事情变得简单。

c 复制代码
semaphore empty = N; // 缓冲区空槽数  
semaphore full = 0;  // 缓冲区满槽数  
semaphore mutex = 1; // 互斥锁  

// 生产者  
while (true) {  
    produce_item();  
    P(empty);  
    P(mutex);  
    add_to_buffer();  
    V(mutex);  
    V(full);  
}  

// 消费者  
while (true) {  
    P(full);  
    P(mutex);  
    remove_from_buffer();  
    V(mutex);  
    V(empty);  
    consume_item();  
}  
 

银行家算法:

平均周转时间就是包括了等待时间和执行时间。

进程调度的题目:

页面置换算法:(计算缺页次数)

分页存储管理系统中的地址转换过程(逻辑地址转化为物理地址):

因为页面的大小是1024B,所以页内地址的范围是0-1023(从0开始)

第一问计算页号和页内地址:

页号=逻辑地址/页面大小

页内地址=逻辑地址%页面大小

第二问:

查找页表:就是每页对应的物理块号是多少?

计算物理地址:逻辑地址算出的页号对应的物理块号*页面大小+页内地址

分页式内存管理:(二级目录)

豆包的解答 :直接对照这个复习;

一、先搞懂核心概念

  1. 页表项(PTE):页表中的一个条目,用来记录 "虚拟页号(VPN)" 对应的 "物理页框号"(以及权限、有效位等),每个 PTE 占固定字节(题目里是 4 字节)。
  2. 页目录项(PDE) :这是 ** 多级页表(比如二级页表)** 里的概念 ------ 当虚拟地址空间很大时,页表本身也会占很多内存,所以把页表再分成 "页目录(一级)+ 页表(二级)":
    • 页目录是 "页表的索引表",每个 PDE 对应一个 "二级页表" 的物理地址;
    • 访问内存时,先通过虚拟地址的 "页目录号" 查 PDE 找到二级页表,再通过 "虚拟页号" 查 PTE 找到物理页框。

二、第 (1) 问的思路(地址空间、偏移、页号、页表 / 页目录大小)

分页管理中,虚拟地址 = 虚拟页号(VPN) + 页内偏移(offset),先明确各参数的计算逻辑:

三、第 (2) 问的思路(LRU 算法的缺页次数 / 缺页率)

LRU(最近最少使用)算法的规则是:当物理页框满了,替换 "最近最久没被访问" 的页面。

前提:
  • 页面访问序列:4、3、2、1、3、5、4、3、2、1、5
  • 物理页框数分别为 3 和 4,需要分别计算。
情况 1:物理页框数 = 3

逐个模拟页面访问,记录缺页(页面不在物理页框中则缺页):

访问序列 物理页框(LRU 顺序,最左是最近最少用) 缺页?(是 =√,否 =×)
4 [4] √(缺页 1)
3 [4,3] √(缺页 2)
2 [4,3,2] √(缺页 3)
1 替换 4 → [3,2,1] √(缺页 4)
3 3 被访问 → [2,1,3] ×
5 替换 2 → [1,3,5] √(缺页 5)
4 替换 1 → [3,5,4] √(缺页 6)
3 3 被访问 → [5,4,3] ×
2 替换 5 → [4,3,2] √(缺页 7)
1 替换 4 → [3,2,1] √(缺页 8)
5 替换 3 → [2,1,5] √(缺页 9)

缺页次数 = 9,缺页率 = 9/11≈81.8%。

情况 2:物理页框数 = 4

同样模拟:

访问序列 物理页框(LRU 顺序) 缺页?
4 [4] √(1)
3 [4,3] √(2)
2 [4,3,2] √(3)
1 [4,3,2,1] √(4)
3 [4,2,1,3] ×
5 替换 4 → [2,1,3,5] √(5)
4 替换 2 → [1,3,5,4] √(6)
3 [1,5,4,3] ×
2 替换 1 → [5,4,3,2] √(7)
1 替换 5 → [4,3,2,1] √(8)
5 替换 4 → [3,2,1,5] √(9)

缺页次数 = 9,缺页率 = 9/11≈81.8%(注:这里序列的特殊性,页框数 4 时缺页次数和 3 相同,实际 LRU 通常页框越多缺页越少)。

总结

第 (1) 问是分页地址的拆分 + 页表 / 页目录的大小计算 ,核心是 "虚拟地址 = VPN+offset" 的拆分逻辑;第 (2) 问是LRU 算法的模拟,核心是 "满页时替换最近最久未用的页面"。

动态分区分配算法:

磁盘调度算法:

62应该是58

Web复习

  1. (单选题)JavaBean的作用范围可以是page、request、session和( )四个作用范围中的一种。application

Servlet 规范定义了 init(), service(), destroy(), doGet(), 和 doPost() 方法。

相关推荐
鸿蒙小白龙1 天前
鸿蒙UniProton操作系统编译开发指导
harmonyos·鸿蒙系统·openharmony·uniproton
m0_637146932 天前
鸿蒙技术实测:ArkTS 语言深度解读
鸿蒙·鸿蒙系统
云栖梦泽3 天前
鸿蒙原子化服务开发实战:构建免安装的轻量应用
开发语言·鸿蒙系统
云栖梦泽5 天前
鸿蒙应用签名与上架全流程:从开发完成到用户手中
开发语言·鸿蒙系统
云栖梦泽5 天前
鸿蒙数据持久化实战:构建本地存储与云同步系统
开发语言·鸿蒙系统
码界奇点6 天前
基于SpringBoot3+Vue的前后端分离电商系统设计与实现
前端·javascript·vue.js·spring·毕业设计·鸿蒙系统·源代码管理
码界奇点8 天前
Unity WebGL输入支持终极指南解决浏览器输入难题的完整方案
unity·容器·游戏引擎·鸿蒙系统·webgl
fakerth9 天前
【OpenHarmony】OpenHarmony ETS Utils实现
鸿蒙系统·openharmony
汉堡黄•᷄ࡇ•᷅11 天前
鸿蒙开发:案例集合List:多列表相互拖拽(删除/插入,偏移动效)(微暇)
华为·harmonyos·鸿蒙·鸿蒙系统