操作系统概念大纲
1. 操作系统基础知识
1.1 操作系统的定义与作用
-
通过资源管理,提高计算机系统的效率。
-
改善人机界面,向用户提供友好的工作环境。
1.2 操作系统的特征和功能
1.2.1 特征
-
并发性
-
共享性
-
虚拟性
-
不确定性
1.2.2 功能
-
进程管理:进程控制,进程同步,进程通信,进程调度。
-
文件管理:文件存储空间管理,目录管理,文件的读写管理和存储控制,软件管理。
-
存储管理(主存储器):存储分配与回收,存储保护,地址映射,主存扩充。
-
设备管理:对硬件设备的管理,对输入输出设备的分配、启动、完成和回收。
-
作业管理:包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。
1.3 操作系统的类型
-
批处理操作系统:单道批处理,多道批处理。
-
分时操作系统:多路性,独立性,交互性,及时性。
-
实时系统:实时控制系统,实时信息处理系统。快速的响应能力,有限的交互能力,高可靠性。
-
网络操作系统
-
分布式操作系统
-
微机操作系统
-
嵌入式操作系统
1.4 研究操作系统的观点
-
资源管理的观点
-
虚拟机的观点
2. 处理机管理
2.1 基本概念
2.1.1 进程的组成
-
进程通常由程序、数据和进程控制块组成。
-
进程控制块:进程标识符,状态,位置信息,控制信息,队列指针,优先级,现场保护区,其它
2.1.2 进程的状态
-
三态模型:就绪,运行,阻塞
-
五态模型:新建,就绪,运行,阻塞,终止
2.2 进程的控制
进程的控制是由操作系统内核实现的。大多数操作系统内核均包含支撑功能和资源管理功能。
-
支撑功能
-
① 中断处理
-
② 时钟管理
-
③ 原语操作
-
-
资源管理功能
-
① 进程管理
-
② 存储器管理
-
③ 设备管理
-
-
进程控制原语
-
① 创建与撤销原语
-
② 挂起与激活原语
-
③ 阻塞与唤醒原语
-
2.3 进程间的通信
2.3.1 同步与互斥
-
进程间的同步
相互合作的进程需要在某些确定点上协调它们的工作。
-
进程间的互斥
有些资源只能供一个进程使用,称为临界资源(critical resource,CR)。
-
临界区管理的原则
-
① 有空则进
-
② 无空则等
-
③ 有限等待
-
④ 让权等待
-
2.3.2 信号量机制
-
整型信号量与PV操作
-
1> 信号量
-
① 公用信号量:实现进程间的互斥,初值=1或资源的数目
-
② 私用信号量:实现进程间的同步,初值=0或某个正整数
-
-
2> PV操作
PV操作是低级通信原语,在执行期间不可分割。P表示申请一个资源,V表示释放一个资源。
-
-
利用PV操作实现进程的互斥
令信号量mutex的初值为1,当进程进入临界区时执行P操作,退出临界区时执行V操作。则进入临界区的代码如下所示。
P(mutex) 临界区 V(mutex)
-
利用PV操作实现进程的同步
当信号量的值为0时表示希望的消息未产生,当信号量的值为非0时表示希望的消息已经存在。
2.3.3 高级通信原语
-
进程高级通信的类型
-
① 共享存储系统
-
② 消息传递系统
-
③ 管道通信
-
-
进程通信
-
① 直接通信
-
② 间接通信
-
2.4 管程
-
管程的基本思路是采用资源集中管理的方法,将系统中的资源用某种数据结构抽象的表示出来,可建立一个管程管理进程提出的访问请求。
-
管程是由一些共享数据、一组能为并发进程执行的作用在共享数据上的操作的集合、初始代码以及存取权组成的。
2.5 进程调度
2.5.1 作业3级调度
-
高级调度
又称“长调度”或者“作业调度”、“接纳调度”。它决定处于输入池的哪个后备作业可以调入主系统做好运行准备。一个作业只需一次高级调度。
-
中级调度
又称“中程调度”或者“对换调度”。它决定处于交换区中的就绪进程哪个可以调入主存参与CPU竞争。
-
低级调度
又称“短程调度”或者“进程调度”。它决定处于主存中的就绪进程哪个可以占用CPU。
-
调度方式
-
可剥夺
-
不可剥夺。
-
2.5.2 常用的调度算法
-
先来先服务(FCFS);
-
时间片轮换;
-
优先级调度,静态优先级,动态优先级。
2.6 死锁
2.6.1 定义
死锁是指两个以上的进程互相都因要求对方已经占有的资源,导致无法继续运行下去的现象。
2.6.2 死锁产生的原因
-
进程竞争资源;
-
进程推进顺序非法。
2.6.3 产生死锁的四个必要条件
-
互斥条件
-
请求保持条件
-
不可剥夺条件
-
环路条件
2.6.4 死锁的处理
-
鸵鸟策略:不理睬策略。
-
预防策略:破坏死锁的四个必要条件之一。
-
避免策略:精心分配资源,动态回避死锁。
-
检测与解除策略:能检测死锁并解除。
2.7 线程
线程与进程的比较:
-
调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。
-
并发性:进程之间可以并发,同一个进程中的多个线程叶可并发。
-
拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可访问进程的资源。
-
系统开销:在创建或撤销进程时,系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤销线程时的开销。
3.存储管理
3.1 基本概念
存储管理的对象是主存储器(主存或内存)。
-
存储器的结构
-
① 虚拟地址:符号名地址,逻辑地址
-
② 地址空间:逻辑地址空间
-
③ 存储空间:物理地址空间
-
-
地址重定位
-
① 重定位:逻辑地址转换称物理地址的过程。
-
② 静态重定位:程序装入主存时已经完成地址转换
-
③ 动态重定位:在程序运行期间完成地址转换。
-
-
存储管理的功能
-
① 主存储器的分配和回收
-
② 提高主存储器的利用率
-
③ 存储保护
-
④ 主存扩充
-
3.2 分区存储管理
3.2.1 固定分区
系统生成时已将主存划分为若干个分区,系统通过主存分配情况表管理主存。
3.2.2 可变分区
存储空间的划分是在作业装入时进行的,分区的大小刚好等于作业的大小。请求和释放分区有如下4种算法。
-
① 最佳适应算法
-
② 最差适应算法
-
③ 首次适应算法
-
④ 循环首次适应算法
3.2.3 可重定位分区
基本思想是移动所有已分配好的分区,使之成为连续区域。
3.3 分页存储管理
3.3.1 纯分页存储管理
-
分页原理:将一个进程的地址空间划分成若干大小相等的区域成为页。相应地,将主存空间划分成与页相同大小的若干物理块,成为块或者页框。在为进程分配主存时,将进程中若干页分别装入多个不相邻接的块中。
-
地址结构:分页系统的地址结构由两部分组成:前一部分为页号,后一部分会便宜量,即页内地址。
-
页表:实现从页号到物理块号的地址映射。
3.3.2 快表
一组告诉寄存器,用来保存当前访问频率高的少数活动页的页号及相关信息。
3.3.3 两级页表机制
3.4 分段存储管理
3.4.1 引入分段存储管理的原因
-
便于编程
-
分段共享
-
分段保护
-
动态连接
-
动态增长
3.4.2 分段的基本原理
作业的地址空间被划分为若干段,每个段都是一组完整的逻辑信息,如有主程序段、子程序段、数据段及堆栈段等,每个段都有自己的名字,都是从零开始编址的一段连续的地址空间,各段长度不等。在分段式存储管理系统中,为每个段分配一个连续的分区,而进程中的各个段可以分散到主存的不同分区中。
3.5 段页式存储管理
段页式系统的基本原理是先将整个主存划分成大小相等的存储块(页架),将用户程序按程序的逻辑关系分成若干段,并为每个段赋予一个段名,再将每个段划分成若干页,以页架为单位离散分配。
3.6 虚拟存储管理
3.6.1 虚拟存储器的引入
-
局部性原理:时间局部性,空间局部性
-
虚拟存储器的定义
-
虚拟存储器的实现:请求分页系统,请求分段系统,请求段页式系统。
-
虚拟存储器的特征:离散性,多次性,对换性,虚拟性
3.6.2 请求分页中的硬件支持
-
请求分页的页表机制
-
缺页中断机构
-
地址变换机构
3.6.3 页面置换算法
-
最佳置换算法
-
先进先出算法
-
最近最久未使用置换算法
-
最近未用置换算法
4.设备管理
4.1 设备管理概述
4.1.1 设备的分类
-
按数据组织分类:块设备,字符设备
-
按资源分配分类:独占设备,共享设备,虚拟设备
-
按数据传输率:低速设备,中速设备,高速设备。
4.1.2 设备管理的目标与任务
-
目标:提高设备利用率,为用户提高方便统一的界面。
-
设备管理的任务
主要功能如下:
-
① 动态掌握并记录设备的状态。
-
② 设备分配和释放
-
③ 缓冲区管理
-
④ 实现物理I/O设备的操作
-
⑤ 提供设备使用的用户接口
-
⑥ 设备的访问和控制
-
⑦ I/O缓冲和调度
-
4.2 I/O软件
-
中断处理程序
-
设备驱动程序
-
与设备无关的系统软件;
-
用户层I/O软件
4.3 通道、DMA与缓冲技术
4.3.1 通道
3类通道:字节多路通道,数组选择通道,数组多路通道
4.3.2 DMA技术
数据在主存与I/O设备间的直接成块传送,不需要CPU的任何干涉。
4.3.3 缓冲技术
4.4 spooling技术
spooling系统由“预输入程序”、“缓输出程序”和井管理程序以及输入和输出井组成。
4.5 磁盘调度
分为移臂调度和旋转调度,先移臂后旋转。
-
磁盘驱动调度
常用的磁盘调度算法:
-
先来先服务
-
最短寻道时间优先
-
扫描算法(电梯调度算法)
-
单向扫描调度算法
-
-
旋转调度算法
5.文件管理
5.1 文件与文件系统
-
文件:具有符号名、在逻辑上具有完整意义的一组相关信息项的集合。
-
文件系统:即文件管理系统,实现文件统一管理的一组软件和相关数据的集合。
-
文件的类型
5.2 文件的结构和组织
文件的结构是指文件的组织形式。
-
文件的逻辑结构:有结构的记录式文件,无结构的流式文件(UNIX都为流式)
-
文件的物理结构:连续结构,链接结构,索引结构,多个物理块的索引结构,UNIX文件系统的索引结构(3及索引结构)
5.3 文件目录
-
文件控制块(FCB)
包含基本信息类,存取控制信息类和使用信息类。
-
目录结构
一级目录,二级目录,多级目录。
5.4 存取方法和存储空间的管理
-
存取方法:顺序存储法,直接存储法,按键存储法(是直接存储法的一种)
-
存储空间管理:空闲区表,位视图,空闲链表,成组链接法
5.5 文件的使用
创建,撤销,打开,关闭,读,写
5.6 文件的共享和保护
-
文件的共享:文件的链接有硬链接和符号链接两种。
-
文件的保护:存储控制矩阵,存储控制表,用户权限表,密码
5.7 系统的安全和可靠性
5.7.1 系统的安全
-
系统级安全管理,主要措施有:注册与登录
-
用户级安全管理,不同用户对不同文件设置不同的存取权限。
-
目录级安全管理,规定只有系统核心才具有写目录的权力。
-
文件级安全管理,设置文件属性
5.7.2 文件系统的可靠性
-
转储和恢复
-
日志文件
-
文件系统的一致性
6.作业与作业管理
6.1 作业管理
6.1.1 作业控制:脱机和联机
作业由程序、数据和作业说明书3部分组成。
6.1.2 作业状态及转换
作业的状态分为4种:提交,后备,执行,完成。
6.1.3 作业控制块和作业后备队列
作业控制块JCB是记录与该作业相关的各种信息的登记表,是作业存在的惟一标志,包括用户名、作业名、状态标志等信息。
作业后备队列由若干JCB组成。
6.2 作业调度
6.2.1 作业调度算法
-
先来先服务算法
-
短作业优先算法
-
响应比高优先算法
-
优先级调度算法
-
均衡调度算法
6.2.2 作业调度算法性能的衡量指标
通常用平均周转时间或者平均带权周转时间来衡量调度性能的优劣。
6.3 用户界面
控制面板式,字符界面式,图形用户界面,新一代用户界面
网络操作系统和嵌入式操作系统基础知识
7.1 网络操作系统
7.1.1 典型操作系统的特征
-
硬件独立性
-
多用户支持
-
支持网络实用程序及其管理功能
-
提供目录服务
-
支持多重增值服务
7.1.2 网络操作系统分类
-
集中模式
-
客户/服务器模式
-
对等模式
7.2 嵌入式操作系统
7.2.1 嵌入式操作系统的特点
微型化;可定制;实时性;可靠性;易移植性。
7.2.2 嵌入式操作系统的开发环境
Windows CE、VxWorks、pSOS、Palm OS、μC/OS-II
操作系统实例
8.1 UNIX操作系统
8.1.1 UNIX系统结构
8.1.2 文件系统
UNIX文件系统的结构:
引导块 超级块 索引节点区 数据存储区
调用命令:Open,Close,Write,Read,Stat(查询文件属性),Chmod(改变文件的许可权),Chown(改变文件所有者),Create(创建一个文件),Mkdir(创建一个目录),cd(改变当前目录),Link(建立连接),Unlink(删除文件连接)
8.1.3 进程与存储管理
-
进程的组成
UNIX进程由控制块PCB、正文段和数据段组成。
-
进程控制
进程控制子系统负责进程同步,进程间通信,存储管理及进程调度。
-
Fork:创建一个子进程;
-
exec:改变执行程序的映象;
-
exit:结束一个进程的执行;
-
wait:暂停进程的执行,用于进程间的同步。
-
signal:控制进程对特别事件的响应;
-
kill:发送软中断信号;
-
msgsnd:发送消息;
-
msgrcv:接受消息。
-
-
进程调度
UNIX系统对进程的调度采用动态优先数调度算法
-
存储管理
采用分页式虚拟存储机制,采用二次机会页面替换算法。
8.1.4 设备管理
在UNIX系统中,文件等于系统中可用的任何资源。
UNIX系统包括两类设备:块设备和字符设备。
设备处理程序分成设备驱动程序和设备中断处理程序。
8.1.5 输入输出转向
- 输入输出转向
cat命令用来将输入文件的数据显示在屏幕上。>、>>表示输出转向,<表示输入转向。
cat input.txt
cat input.txt > output.txt input.txt输入到output.txt
cat input.txt >> output.txt input.txt添加到output.txt末尾
cat < input.txt
-
管道
在UNIX中“|”表示管道。一个管道总是连接两个命令,将左边命令的标准输出与右边命令的标准输入连接,于是左边命令的输出结果就直接成了右边命令的输入。eg:ls-a | wc-1 > output.txt
8.1.6 Shell程序
-
正则表达式
-
. 能与除换行之外的行内任何字符匹配
-
* 匹配前一个字符的零次或多次出现
-
^ 如果方括号中的第一个字符是^,则匹配不属于[ ]中的字符
-
前面的正则表达式所匹配的字符串仅出现在行尾才匹配
-
\ 转义符,用于改变特殊符号的含义,也可后跟一字符的八进制表示
-
“” 双引号内的字符在匹配时忽略其特殊含义
-
< 字首匹配
-
> 自尾匹配
-
-
shell变量
用户定义变量、系统定义变量和shell定义变量
-
shell程序
8.2 Windows操作系统
8.2.1 Windows操作系统操作系统结构
用户进程有4种类型:
-
系统支持的进程,如登录进程WINLOGO和会话管理器SMSS。
-
环境进程,如事件日志服务
-
环境子进程,它们向应用程序提供运行环境
-
应用程序
Windows核心组件包括:
-
核心,包含了最低级的操作系统,例如线程调度、中断和异常、多处理器同步等,也提供了执行体来实现高级结构的一组例程和基本对象。
-
执行体,包含了基本的操作系统服务,例如主存管理、进程和线程管理、安全控制、I/O以及进程间的通信。
-
硬件抽象层,将内核。设备驱动程序以及执行体和硬件分隔开来。
-
设备驱动程序,包括文件系统和硬件设备驱动程序
-
图形引擎,包含了实现图形用户界面的基本函数。
8.2.2 文件系统
FAT,FAT32,NTFS
NTFS的主要特征如下:
-
可恢复性
-
安全性
-
大磁盘和大文件
-
多数据流
-
通用索引功能
8.2.3 进程
进程包括进程标识符、资源访问令牌、进程的基本优先级等。
线程的上下文包括寄存器、线程环境块、核心栈和用户栈。
线程有7种状态:就绪,备用,运行,等待,转换,终止,初始化。
8.2.4 存储管理
默认使用二级页表结构来转换物理地址和虚拟地址。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异