线程 共享 vs 不共享
共享:代码、数据、文件、堆、地址空间
不共享:程序计数器(PC)、寄存器、栈
堆是大家共用的阳台、栈是每个人自己的房间
1.如果页面的访问顺序为(0,0,1,1,3,1,2),有2个页帧可供程序使用,按照先进先出页面置换算法,共产生()缺页中断
A.3次
B.2次
C.4次
D.5次
正确答案]:B
试题解析\]: 页面的访问顺序为(0,0,1,1,3,1,2),由于只有2个页帧, (1)当执行到(0,0,1,1)时,2个页帧分配给了0和1两个页面,完全可以不需要产生缺页中断。 (2)访问下一个页号为3时,页帧不足以分配,需要置换一个页帧,因此产生1次缺页中断,按照先进先出置换算法,应该把0号页置换出去,页帧中是(1,3)。 (3)访问下一个页号为1时,1号页面在页帧中,可以直接访问不需要置换。 (4)访问页号2时,2号页面此时不在页帧中,需要置换一个页帧,因此产生1次缺页中断,按照先进先出置换算法,应该把1号页置换出去,页帧中是(3,2)。 综上所述,需要产生2次缺页中断。 2.文件的逻辑结构(逻辑文件)是指用户概念中的文件,逻辑文件有()两种形式。 A.流式文件与索引文件B.记录式文件与物理文件**C.流式文件与记录式文件** D.记录式文件与索引文件 \[正确答案】:C \[试题解析】: 文件的逻辑结构(逻辑文件)是指用户概念中的文件,逻辑文件有两种形式,分别是无结构的流式文件和有结构的记录式文件。 3.为了解决批处理系统无法进行人机交互的问题()把CPU的时间划分成很短的时间片, **A.分时操作系统** B.网络操作系统 C.分布式操作系统 D.嵌入式操作系统 分时:电脑用的(Windows/Linux) 网络:服务器用的(Windows Server/Linux 服务器版) 分布式:一堆机器一起用(Google Bigtable、Spanner) 嵌入式:设备里用的(RT-ThreadFree/RTOS/VxWorks)
页式、段式、段页式 存储管理对比表(操作系统里内存管理方式)
| 对比项目 | 页式管理 | 段式管理 | 段页式管理 |
|---|---|---|---|
| 划分依据 | 按固定大小分页 | 按逻辑意义分段(代码段、数据段等) | 先分段 ,段内再分页 |
| 地址结构 | 页号 + 页内偏移 | 段号 + 段内偏移 | 段号 + 页号 + 页内偏移 |
| 是否连续 | 程序不连续,页内连续 | 段内必须连续,段间不连续 | 段内不连续,页内连续 |
| 碎片情况 | 有内部碎片 无外部碎片 | 有外部碎片 无内部碎片 | 只有内部碎片 无外部碎片 |
| 共享与保护 | 不方便 | 很方便(按逻辑段共享) | 方便(继承段的优点) |
| 地址变换 | 一次查页表 | 一次查段表 | 先查段表,再查页表 |
| 优点 | 内存利用率高,无外碎 | 符合逻辑、便于共享保护 | 结合前两者优点 |
| 缺点 | 无逻辑意义,共享不便 | 有外部碎片,需要连续空间 | 结构复杂,开销大 |
- 页式:固定大小 → 有内碎,无外碎
- 段式:逻辑分段 → 有外碎,无内碎,好共享
- 段页式:先段后页 → 只有内碎,最好用
页式:内存切成固定大小小页 空的小页也能被用掉 → 没有外部碎片
段式:段长度不固定,必须连续分配 用完后留下一堆小缝 → 有外部碎片
Cache 三种映射方式 对比表(cache和内存映射)
| 对比项 | 直接映射 | 全相联映射 | 组相联映射 |
|---|---|---|---|
| 核心规则 | 主存块 → 只能映射到 Cache 唯一一行 | 主存块 → 可映射到 Cache 任意一行 | 主存块 → 先映射到 固定组 ,组内任意行 |
| 查找方式 | 只查固定位置,速度最快 | 全表并行查找,速度最慢 | 先找组,再在组内查找,折中 |
| 冲突率 | 高(容易冲突) | 最低 | 较低(折中) |
| 硬件成本 | 最低 | 最高 | 中等 |
| 实际使用 | 少 | 极少 | 最常用(多级Cache都用这个) |
超简一句话记忆
- 直接映射: 只能去一个位置,简单但容易撞车
- 全相联: 哪里有空去哪里,舒服但贵
- 组相联: 先分组,组内随便放,性价比最高
4.
页面失效的是没有装入的2、3、5、7
页内偏移量=虚地址-(虚页号 * 页面大小)
实存地址=实页号*页面大小+页内偏移地址
5
6.
7.
8.()是系统进行资源分配和调度的基本单位,通过其物理实体被操作系统所感知。物理实体分为(此空不作答)三部分。
A.进程
B.线程
C.纤程
D.管程答案:A. 进程
解析(考试必背)
进程:操作系统资源分配和调度的基本单位,是程序的一次执行过程,有独立的资源(内存、打开文件等)。
线程:是调度和执行的基本单位,共享进程资源,不独立分配资源。
纤程、管程都不是资源分配的基本单位。
进程:资源分配的基本单位
→ 有自己独立的内存,独立家当
线程:调度执行的基本单位
→ 不分配资源,共享进程的内存
进程的三个物理实体(组成部分)是:代码段:要执行的指令
数据段:运行时用到的数据
PCB:操作系统管理进程的 "身份证"
一句话考点
PCB 是进程存在的唯一标志。
进程三态(运行、就绪、阻塞)就绪 → 运行
被调度程序选中,分配到 CPU。
运行 → 就绪
时间片用完,或被更高优先级进程抢占。
运行 → 阻塞
等待 I/O、等待信号、等待资源。
阻塞 → 就绪
等待的事件完成(I/O 结束),回到就绪队列。
⚠️ 重点:不能从阻塞直接到运行!
位示图(BitMap)核心结论
位示图 = 操作系统放在内存里的一张表,CPU 读它,用来管理磁盘空间。
因为 CPU 按字长存取数据,位示图按字长组织,可以让 CPU 一次操作多位,提高磁盘管理效率。
-
位示图就是用 1 个 bit 表示 1 个物理块
- 0 = 空闲
- 1 = 已分配
-
位示图的"字",确实跟操作系统位数对应
- 32 位系统:1 字 = 32 bit
- 64 位系统:1 字 = 64 bit
-
考试常考公式(直接背)
- 总位数 = 物理块数
- 所需字数 = 物理块数 / 每字位数
- 第 n 块(从0开始)
- 字号 = n / 每字位数
- 位号 = n % 每字位数
9.
直接除以字长得到的商和余数就是答案,不用任何转化
10.





