视频加载失败

课程

5033 字
约 15 分钟

os-short-answers

操作系统notes·更新于 2026-09-15

1. 操作系统的四个基本特征

操作系统的四个基本特征是:并发、共享、虚拟、异步。其中并发共享是两个最基本的特征,二者互为存在条件。

  • 并发 (Concurrency)
    • 指两个或多个事件在同一时间间隔内发生
    • 在一段时间内同时存在多道运行的程序(进程)
    • 并发执行能有效改善系统资源利用率,但使系统复杂化,需要对活动进行控制和管理
  • 共享 (Sharing)
    • 计算机系统中的资源可供内存中多个并发的进程同时使用
    • 资源不再为某道程序所独占
  • 虚拟 (Virtual)
    • 将一个物理实体变为若干个逻辑上的实体
    • 是操作系统管理系统资源的重要手段,可提高资源利用率
  • 异步 (Asynchronism)
    • 也叫不确定性,指进程以人们不可预知的速度向前推进
    • 进程的执行时间、顺序、速度和完成时间都是不可预知的

2. 微内核操作系统

  1. 提高了系统的可拓展性:采用 C/S 模式,许多功能由相对独立的服务器实现,扩展时只需增加专门的服务器。
  2. 增强了系统的可靠性:内核精简,正确性易保证;服务器间采用通信机制,单点出错不影响其他。
  3. 可移植性强:能较容易地运行在不同的计算机硬件平台上。
  4. 提供了对分布式系统的支持:采用消息传递机制,支持分布式系统和网络系统。
  5. 融入了面向对象技术:封装、继承等机制有利于提高系统的正确性、易修改性和易扩展性。
  • 运行效率低:完成一次用户请求需要利用消息实现多次交互,并多次进行用户/内核模式的上下文切换。

3. 三种操作系统的特点

类型特点/优点缺点/适用场景
批处理操作系统特点:脱机、多道、成批处理。
优点:系统利用率高,系统吞吐量大。
缺点:平均周转时间长,无交互能力。
分为单道(自动、顺序、单道)
和多道(调度、无序、多道)。
分时操作系统特点:多路性、独立性、
及时性、交互性。
缺点:系统开销大。
适合小的不成熟的作业。
实时操作系统特点:多路性、独立性、
及时性、交互性、高可靠性
重点:必须在规定时间内响应外部事件,
系统必须安全可靠(如航空订票、生产控制)。

4. 进程与程序

  1. 动态性:进程是动态的(程序的执行),程序是静态的(有序代码的集合)。
  2. 持久性:进程是暂时的(状态变化过程),程序是永久的(可长久保存)。
  3. 组成:进程包括数据段、程序段及 PCB(进程控制块),而程序组成不同。
  4. 对应关系:一个程序可对应多个进程(如多开 QQ),一个进程也可通过调用关系包含多个程序。

5. 同步与互斥

  • 引入原因:协调进程之间的相互制约关系。
  • 同步 (直接制约关系)
    • 为完成某种任务而建立的两个或多个进程,需要协调工作次序而产生的制约关系
    • 通俗理解只有运行了 A 才能运行 B
  • 互斥 (间接制约关系)
    • 当一个进程进入临界区使用临界资源时,另一个进程必须等待
    • 通俗理解运行了 A 就不能运行 B

临界区互斥的四个原则

  1. 空闲让进:临界区空闲时,允许一个进程进入。
  2. 忙则等待:临界区已有进程时,其他进程必须等待。
  3. 有限等待:进程要在有限时间内退出临界区,避免死等。
  4. 让权等待:不能进入临界区时,应让出 CPU,避免忙等。

6. 死锁 (Deadlock)

产生死锁的四个必要条件

  1. 互斥条件:资源在一段时间内只能被一个进程排它性使用。
  2. 请求和保持条件:进程保持了至少一个资源,但又提出新请求并被阻塞,且不释放已获得资源。
  3. 不可抢占条件:已获得的资源未使用完之前不能被抢占。
  4. 循环等待条件:存在一个进程-资源的循环链(如 p0p_0p1p_1,… pnp_np0p_0)。

死锁的处理方法

  1. 预防死锁:破坏四个必要条件(通常是破坏请求和保持、不剥夺、循环等待条件,互斥较难破坏)。
  2. 避免死锁:安全状态、银行家算法。
  3. 检测死锁:利用死锁定理。
  4. 解除死锁:资源剥夺法、撤销进程法、进程回退法。

补充公式:死锁计算

进程数小于资源数,则不会发生死锁的公式

  • 如果可以整除: 最多申请资源数=资源总数/进程数最多申请资源数 = 资源总数 / 进程数
  • 如果不可以整除: 最多申请资源数=(资源总数/进程数)+1最多申请资源数 = (资源总数 / 进程数) + 1
    • 5/3+1=25/3 + 1 = 2

7. 假脱机技术 (Spooling) - 打印机共享

处理过程

  1. 接收请求:当多个用户进程提出打印请求时,假脱机管理进程不直接分配打印机,而是做两件事:
    • 在磁盘输出井申请空闲缓冲区,存入要打印的数据
    • 申请一张打印请求表,填入信息并挂到假脱机文件队列上
  2. 执行打印:当打印机空闲时,输出进程从队列队头取出一张请求表,将数据从输出井传送到输出缓冲区,再送到打印机打印。

8. 分页存储管理 vs 分段存储管理

比较维度分页存储管理分段存储管理
单位性质物理单位。为了实现离散分配,消减内存外零头。逻辑单位。含有一组相对完整的信息,更好满足用户需求。
大小固定,由系统决定。硬件实现。不固定,由用户编写的程序决定(编译时划分)。
地址空间一维(单一线性地址空间)。二维(需给出段名 + 段内地址)。
权限读、写读、写、执行

9. 内存访问与地址计算习题

习题 1:内存访问次数

题目:无快表(TLB)的基本页式存储管理中,每次从主存中取指令或取操作数,至少要 2 次访问主存。

  • 解析

    1. 第一次访问主存中的页表,获取物理地址
    2. 第二次根据物理地址访问主存中的数据或指令
    • 如果有快表(TLB),且命中,则只需要访问 1 次主存

习题 2:页面地址转换计算

题目:有一系统采用页式存储管理,作业大小 8KB,页大小 2KB。

依次装入内存的第 7、9、10、5 块。

试将虚拟地址 7145 转换成内存地址 7575。

解题步骤

  1. 已知条件

    • 页大小 L=2KB=2048BL = 2KB = 2048 B
    • 虚拟地址 A=7145A = 7145
    • 页表映射关系(隐含在题目描述中):
      • 页号 0 -> 块号 7
      • 页号 1 -> 块号 9
      • 页号 2 -> 块号 10
      • 页号 3 -> 块号 5
      • (注:题目中“依次装入”通常暗示页号 0, 1, 2, 3 分别对应这些块号)
  2. 计算页号 (P) 和页内偏移 (W)

    • P=A/L=7145/2048=3P = A / L = 7145 / 2048 = 3 (取整)。
    • W=AmodL=7145mod2048=1001W = A \mod L = 7145 \mod 2048 = 1001
  3. 查找对应块号

    • 页号 3 对应的块号是 5
  4. 计算物理地址

    • 物理地址=块号×块大小+页内偏移物理地址 = 块号 \times 块大小 + 页内偏移
    • Addr=5×2048+1001=10240+1001=11241Addr = 5 \times 2048 + 1001 = 10240 + 1001 = 11241
    • (注:原文计算式写为 5*2048+1001-11241,结果正确)

答案:虚地址 7145 的内存地址是 11241

10. 文件检索与物理结构

检索方法

  • 索引文件:利用关键字进行折半查找 -> 找到表项(指针) -> 访问记录。
  • 索引顺序文件:利用关键字检索索引表 -> 找到记录组第一个表项 -> 顺序查找主文件。

文件的物理结构

  1. 连续组织方式(顺序文件结构):分配连续磁盘空间。
  2. 链接组织方式(链接式文件结构):分配不连续空间,通过指针链接。
  3. 索引组织方式(索引式文件结构):建立索引表管理盘块。

11. 磁盘空间管理:位示图法 (Bitmap)

  • 分配过程

    1. 顺序扫描位示图,找到 map[i,j]=0map[i, j] = 0 的空闲位
    2. 计算盘块号 B=n×(i1)+jB = n \times (i-1) + jnn 为每行位数)
    3. 将位示图对应位置为 1
  • 回收过程

    1. 根据盘块号 BB 计算行号和列号
      • i=(B1) DIV n+1i = (B-1) \text{ DIV } n + 1
      • j=(B1)modn+1j = (B-1) \mod n + 1
    2. 修改位示图:令 map[i,j]=0map[i, j] = 0
Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录