操作系统复习题与易错点 · 知识摘录速查
文件的类型
- 正规文件:包含用户信息一般分为 ASCII 文件和二进制文件
- 目录文件:管理文件的系统文件
- 字符设备文件:和输入/输出有关用于串行 IO 类设备,如终端、打印机和网络等
- 块设备文件:磁盘类设备
死锁
- 处理死锁的基本方法有
- 预防死锁
- 避免死锁
- 检测并解除死锁
- 忽略死锁(接受风险,不等于证明死锁不可能发生)
- 处理死锁的基本方法有
Linux 的伙伴系统
历史教材按 0 至 10 阶列出 1、2、4、…、1024 页的空闲块,这是示例参数,不是所有 Linux 版本的固定上限。若页大小为 4 KiB,1024 页对应 4 MiB;实际页大小与可分配阶数须按目标内核和架构核对。参见 Linux 物理页分配的阶数说明与页大小的架构边界。
自调度算法(历史摘录待核对)
原稿未注明具体算法或课程页码,以下特点不能直接对应某个 Linux 调度器;需课程资料拥有者确认“自调度”的原意。
- 最常用的调度方式之一
- 最简单的一种调度方式
- 优点
- 易移植
- 有利于提高 CPU 的利用率
存储器的种类(
CPU寄存器保存最常用的数据)- 靠近 CPU 的容量小、速度快的高速缓存存储器作为速度相对较慢、容量较大的主存中数据和指令子集的缓冲区。
- 主存暂时存放存储容量更大、速度更慢的磁盘上的数据
- 而这些磁盘常常又作为存储在通过网络连接的其他机器的磁盘或磁带上的数据的缓冲区
程序的链接
链接程序不属于操作系统的构成部分,但是它为操作系统提供可装入的程序模块
- 可以把链接分为静态链接和动态链接
- 静态链接:
- 在程序运行前,用链接程序将目标模块链接成一个完整的装入模块
- 静态链接程序的任务一是对逻辑地址进行修改,二是变换外部调用符号
- 动态链接
- 静态链接:
- 可以把链接分为静态链接和动态链接
连续分配的类型
连续分配是指操作系统分配内存时,为每个进程分配一块物理地址连续的内存空间
- 单一连续区分配方式
- 固定分区分配方式
- 动态分区分配方式
内存分配主要任务是为每道程序分配内存空间
动态分区分配算法
- 首次适应算法
- 循环首次适应算法
- 优点:空闲区分布均勾、查找开销较小
- 缺点:容易使系统缺之大空闲区
- 最佳适应算法
分页管理
页表是系统为进程建立的数据结构,页表的作用是实现从页号到页框号的映射
- 页:将一个进程的逻辑地址空间分成若干个大小相等的片
- 页框或页顿:将物理内存空间分成与页大小相同的若干个存储
- 页内碎片:进程的最后一页一般装不满一个页框,而形成了不可利用的碎片
分页和分段的区别
分页和分段都属于离散分配方式,都要通过数据结构与硬件的配合来实现逻辑地址到物理地址的映射,但两者存在着很大的不同
- 页是按物理单位划分的,分页的引入是为了提高内存的利用率和支持虚拟存储。而段是按逻辑单位划分的,一个段含有一组意义相对完整的信息。引入分段的目的是为了方便程序员编程
- 页的大小是固定的。而段的大小不固定,取决于用户编写的程序和编译器
- 分页的地址空间是一维的,程序员给出的地址只是一个助记符,已知的逻辑地址是一个数,如 2568。分段的地址空间是二维的,程序员在标识一个逻辑地址时需要给出两个数:一个是段号,一个是段内偏移
虚拟存储技术
系统的特征
- 离散性
- 多次性
- 对换性
- 虚拟性
好处
- 提高内存利用率
- 提高多道程序度
- 把逻辑地址空间和物理地址空间分开,使程序员不用关心物理内存的容量对编程的限制
文件结构
分类
- 树形结构
- 无结构字节序列
- 固定长度记录序列
无结构字节序列(流式文件)
- 操作系统不知道也不关心文件内容是什么,操作系统所见到的就是字节,其任何含义由使用该文件的程序自行理解
- 在 UNIX 和 Windows 系统中都采用这种方式
目录结构
- 文件目录的组织和管理是文件管理的一个重要方面,包括单层目录、两级和树形目录
- 树形目录
- 优点:便于文件的分类,层次结构清晰,便于管理和保护,解决了重名问题,查找速度加快
- 缺点:查找一个文件按路径名逐层检查,由于每个文件都放在外存中,多次访问磁盘会影响速度,结构相对复杂
- 每个目录项包含对应文件文件名 和 i 结点号
FAT 文件系统
- FAT 文件系统有 3 个版本:FAT-12.FAT-16 和 FAT-32,取决于用多少个二进制位存放号
DMA 控制方式
- 命令/状态寄存器(CR)用于接收从 CPU 发来的 VO 命令或有关控制信息、设备状态
- 内存地址寄存器(MAR)用于存放内存地址
- 数据计数器(DC)用于指示 DMA,本次向 CPU 发中断信号前要读或写数据的次数
- 数据寄存器(DR)用于暂存 DMA 传输中要输入或输出的数据
缓冲池
- 公共缓冲池既可用于输入,又可用于输出
- 其中至少包含 3 种类型的缓冲区、3 种缓冲队列和 4 种工作缓冲区
进程切换的步骤
进程切换使当前正在执行的进程成为被替换进程,出让其所使用的 CPU,以运行被进程调度程序选中的新进程
- 保存包括程序计数器和其他寄存器在内的 CPU 上下文环境
- 更新被替换进程的进程控制块
- 修改进程状态,把执行态改为就绪态或者阻塞态
- 将被替换进程的进程控制块移到就绪队列或阻塞队列
- 执行通过进程调度程序选择的新进程,并更新该进程的进程控制块
- 更新内存管理的数据结构
- 恢复被调度程序选中的进程的硬件上下文
进程控制块(PCB):组织方式通常链接和索引两种
实时计算的概念
实时系统是支持实时计算的系统。实时计算的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生正确结果的时间
实时系统的特点(在实时系统中,往往采取多级容错措施来保证系统安全和数据安全)
- 实时系统主要用于实时控制和实时信息处理领域
- 实时系统比分时系统要求有更高的可靠性
- 因为任何实时系统的错误都可能带来巨大的经济损失,甚至危及生命安全
操作系统中的用户接口(批处理用户接口)
脱机用户接口是为批处理作业的用户提供的
操作系统体系结构
- 简单的监控程序模型的经典代表是(
FMS&IBSYS) - 动态可扩展结构模型的典型代表是 Harvard 大学的 VINO 操作系统
- 分层结构最经典的例子是 Dijkstra 的 THE 系统
- 客户/服务器模型的典型代表是卡内基梅隆大学研制的 Mach 操作系统、WindRiver 公司的 Vxworks 等
- 简单的监控程序模型的经典代表是(
操作系统中最核心概念(进程),也是围绕进程展开的
进程控制块中的处理机状态信息
- 通用寄存器
- 指令计数器
- 程序状态字 PSW
- 用户栈指针。其中,指令计数器中存放了
CPU要访问的下一条指令的地址
进程状态的转换
进程状态不能由阻塞态直接变为执行态,进程状态由阻塞态变为就绪态的过程称为唤醒过程由执行态变为阻塞态的过程称为阻塞过程
- 执行态
- -
时间片用完->就绪态 - -
等待事件->阻塞态
- -
- 就绪态-
进程调度->执行态 - 阻塞态-
等待的事件发生->就绪态
- 执行态
程序顺序执行时具特点有:
- 顺序性
- 封闭性
- 可再现性
系统调用的类型
- 进程控制类系统调用:创建、撤销进程;获得、改变进程属性
- 文件操纵类系统调用:创建文件、删除文件、打开文件、关闭文件和读/写文件
- 设备管理类系统调用:请求、释放设备
- 通信类系统调用:打开、关闭连接,交换信息
- 信息维护类系统调用:返回系统当前日期、时间、版本号、用户数、空闲内存和磁盘空间大小等信息
操作系统内核的功能
- 中断处理、时钟管理和原语操作
- 操作系统内核的资源管理功能包括进程管理、存储器管理和设备管理
操作系统中的时钟
- 别称为实时时钟(RTC)
也称 CMOS 时钟,是一块时钟芯片,靠电池供电,为计算机提供计时标准,是最原始、最底层的数据
- OS 时钟
OS 时钟产生于 PC 主板上的定时/计数芯片,在开机时有效,由操作系统控制
- 别称为实时时钟(RTC)
进程调度的功能
进程调度功能由操作系统内核的进程调度程序完成,在 Linux 内核中,进程调度功能的实现从调用内核函数 schedule()开始。进程调度的功能是按照某种策略和算法从就绪态进程(在 Linux 中是可执行进程)中为当前空闲的 CPU 选择在其上运行的新进程
选择调度方式和算法的准则
- 周转时间短
- 响应时间快
- 截止时间的保证
- 系统吞吐量高
- 处理机利用率好
操作系统负责管理计算机的资源
other
- 若有效执行时间片为 200、每次切换耗时为 10,则切换时间/执行时间为 5%;切换占总耗时的比例为 10/(200+10)≈4.76%,须先明确分母。
继续阅读
- 持久性与参考
- 持久性与参考
- 持久性与参考