软件设计师备考笔记【day3】-操作系统

目录

一,进程

[1. 进程三大核心](#1. 进程三大核心)

2,死锁

[3. PV 操作(同步 + 互斥,高频计算题)](#3. PV 操作(同步 + 互斥,高频计算题))

[(1)P 操作(申请资源)](#(1)P 操作(申请资源))

[(2)V 操作(释放资源)](#(2)V 操作(释放资源))

二,存储管理

[1. 离散存储三大方式](#1. 离散存储三大方式)

[2. 虚拟内存](#2. 虚拟内存)

[3. 页面置换算法](#3. 页面置换算法)

三,文件管理

1,文件物理结构顺序结构

2,文件权限常规权限

3,磁盘调度算法(减少磁头寻道时间)

4,位示图

[(1) 计算位示图的大小](#(1) 计算位示图的大小)

(2)物理块号与位示图位置的转换


一,进程

1. 进程三大核心
  1. 进程定义:系统资源分配和调度的基本单位;线程是调度执行最小单位,共享进程资源。
  2. 进程五状态:就绪,运行,阻塞(等待),挂起就绪,挂起阻塞
  3. 状态转换核心:

(1)运行→就绪:时间片到 / 有更高优先级进程运行

(2)阻塞:请求 I/O、等待资源阻塞

(3)就绪:I/O 完成、资源到达

2,死锁

死锁四大必要条件(同时满足才会死锁)

  • 互斥:资源同一时刻仅一个进程使用
  • 请求与保持:进程已持有资源,又申请新资源
  • 不剥夺:资源不能被强行抢占
  • 环路等待:进程间形成资源循环等待
3. PV 操作(同步 + 互斥,高频计算题)
(1)P 操作(申请资源)
  • S=S−1
  • S≥0 正常运行
  • S<0 阻塞等待,绝对值 = 等待进程数
(2)V 操作(释放资源)
  • S=S+1
  • S≤0 唤醒 1 个等待进程

互斥信号量初值固定 = 1

同步信号量初值一般 = 0

二,存储管理

1. 离散存储三大方式

(1)分页存储

  • 逻辑地址 = 页号 + 页内偏移;物理地址 = 块号 + 页内偏移
  • 页面大小固定,无内部碎片、有外部碎片,对用户透明
  • 依靠页表实现地址映射

(2)分段存储

  • 按逻辑功能划分(代码段、数据段),段长不固定
  • 逻辑地址 = 段号 + 段内偏移,用户可见,方便共享、保护
  • 存在外部碎片

(3)段页式存储:先分段、再分页;结合两者优点,系统开销最大,企业级系统常用。

2. 虚拟内存

  1. 核心原理:局部性原理(时间局部性、空间局部性),部分装入、按需调度。
  2. 缺页中断:访问页面不在内存,触发中断调入页面。

3. 页面置换算法

(1)最优 OPT:淘汰最久不使用页面,理论最优,无法实现

(2)FIFO 先进先出 :按进入内存顺序淘汰,简单,存在Belady 异常(页面增多,缺页率反而上升)

(3)LRU 最近最少使用:淘汰最久未访问页面,性能接近 OPT,硬件开销大(真题最爱考)

(4)时钟算法 CLOCK:LRU 简易实现,性价比最高

三,文件管理

1,文件物理结构顺序结构

顺序结构:连续存放,读写快,增删慢,易产生碎片

链接结构:离散存放,分为隐式链接、显式链接(FAT 表)

索引结构:单独建立索引表,随机访问效率高,占用额外存储空间

2,文件权限常规权限

读(4-r)、写(2-w)、执行(1-x)

Linux 权限:所有者、同组用户、其他用户 三类权限分开控制

3,磁盘调度算法(减少磁头寻道时间)

(1)FCFS 先来先服务:按请求顺序访问,无优化,寻道时间长

(2)SSTF 最短寻道优先:优先访问磁道距离最近请求,易产生饥饿

(3)SCAN 电梯算法:磁头单向移动,到边界折返,均衡性能,考试高频

(4)C-SCAN 循环扫描:单向循环访问,只单向折返,请求等待时间更均匀

4,位示图
(1) 计算位示图的大小

要计算管理整个磁盘需要多大的位示图(以"字"为单位),可以遵循以下步骤:

  • 计算物理块总数 :磁盘总容量 / 物理块大小
  • 计算所需字数 :物理块总数 / 字长(结果通常需要向上取整)

举个例子 :

一个磁盘容量为1024GB,物理块大小为4MB,计算机字长为64位。

  • 物理块总数 = (1024 GB × 1024 MB/GB) / 4 MB = 262144 个
  • 位示图所需字数 = 262,144 / 64 = 4096 个字
(2)物理块号与位示图位置的转换

即已知物理块号,求它在位示图中的具体位置(哪个字的哪一位)。

通用公式(假设所有编号均从0开始):

  • 块号 → 字号和位号 :
    • 字号 i = b / n (整除)
    • 位号 j = b % n (取余)
  • 字号和位号 → 块号 :
    • 块号 b = i * n + j

举个例子 :

系统字长为32位,物理块和字号都从0开始编号。请问2053号物理块在位示图的什么位置?

  • 字号 i = 2053 / 32 = 64
  • 位号 j = 2053 % 32 = 5
    所以,2053号物理块的状态由位示图中第64号字的第5位来描述。
相关推荐
叼烟扛炮12 分钟前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
叼烟扛炮35 分钟前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
songyuc1 小时前
【Manskill3】TableSceneBuilder学习笔记
pytorch·笔记·学习
゛凌乱的记忆づ3 小时前
好用的md文件编辑器——TyporaS与Typora
笔记·git·typora·markdown
zroooo4 小时前
计算机学习-知识庞大而繁杂
笔记·学习
坤坤子吖4 小时前
算法学习——单调队列
开发语言·c++·笔记·学习·算法
Zhao-Jichao5 小时前
AI Prompting for Everyone 课程笔记 - 05 使用深度搜索 Using Deep Research
人工智能·笔记
云析赢指标公式网46 小时前
指标开发笔记|主图搭配双副图成套指标逻辑拆解
人工智能·笔记
dreams_dream6 小时前
微信开发者工具报错解决笔记:删除页面后仍报 ENOENT: no such file or directory
笔记
图灵-M7 小时前
【数据结构】静态 & 动态顺序表
c语言·数据结构·笔记