关于程序中断的题目:
-
优先级最高的中断
题目:下列哪个中断具有最高优先级?
答:D. 时钟中断
知识点
-
在几乎所有通用 CPU(x86、ARM、RISC-V)的硬件优先级分配里,**时钟中断(Timer Interrupt)**被固定为最高或次高,以保证系统滴答(tick)能准时更新,从而维持调度器、定时器、profiler 的正确性。
-
4
-
中断处理流程里"哪一步不必要"
题目:在中断处理程序中,下列哪个操作是不必要的?
答:B. 关闭中断
知识点
标准中断处理框架(进入→服务→退出):
-
保存现场(寄存器、栈指针等)
-
可选:关中断 / 设置中断屏蔽位 ------ 仅当这段临界区"不允许被嵌套"时才做;很多现代 OS 为了支持中断嵌套,并不全程关中断,而是只把当前 IRQ 线屏蔽掉。
-
执行真正的 ISR(中断服务例程)
-
恢复现场
因此"关中断"不是必要步骤,而是"可选"步骤。
处理机调度:

信号量机制题目:
得看书复习了。



解答:相当聪明!

信号量机制的算法书写:
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开始)
第一问计算页号和页内地址:
页号=逻辑地址/页面大小
页内地址=逻辑地址%页面大小
第二问:
查找页表:就是每页对应的物理块号是多少?
计算物理地址:逻辑地址算出的页号对应的物理块号*页面大小+页内地址

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

豆包的解答 :直接对照这个复习;
一、先搞懂核心概念
- 页表项(PTE):页表中的一个条目,用来记录 "虚拟页号(VPN)" 对应的 "物理页框号"(以及权限、有效位等),每个 PTE 占固定字节(题目里是 4 字节)。
- 页目录项(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复习



- (单选题)JavaBean的作用范围可以是page、request、session和( )四个作用范围中的一种。application
Servlet 规范定义了 init(), service(), destroy(), doGet(), 和 doPost() 方法。
