操作系统概念大纲

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 存储管理

默认使用二级页表结构来转换物理地址和虚拟地址。

8.2.5 设备管理
posted @   码上领航者  阅读(108)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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的设计差异
点击右上角即可分享
微信分享提示