软件过程模型

软件生命周期

定义:软件产品或软件系统从设计、投入使用到被淘汰 的全过程。

image-20241213113132794

软件过程

定义: 软件过程定义了软件生产的一些列活动,这些活动贯穿于软件开发的全过程

  • 沟通:包括软件设计者和客户,客户提出需求,软件设计者收集材料或其他活动
  • 计划:讨论使用什么方法实现需求
  • 建模:设计模型满足需求
  • 构造:编码和测试
  • 部署:软件交付给客户

三个流派:

  • 能力成熟度模型CMM:

    • CMU-SEI的CMM是公认的有关软件工程和管理实践的最好的软件过程。

    • 为评估软件组织的生产能力提供了标准,为提高软件组织的生产过程指明了方向。

    • CMM1初始级:有能力的核心成员发挥;

      CMM2可重复级:基本的项目管理;

      CMM3已定义级:过程标准化,开发过程实现标准化和文档化;

      CMM4量化管理级:产品和过程已建立了定量的质量目标;

      CMM5优化级:持续的过程改进,可集中精力改进过程,采用新技术、新方法;

    • image-20241213170937302

  • ISO 9000质量标准

  • 软件计数软件过程评估:SPICE

CMM的关键过程域:

CMM 过程
CMM2:可重复阶段 1.
需求管理: requirement management
2.
软件项目计划: software project planning
3.
软件项目跟踪和监督: software project tracking oversight
4.
软件子合同管理: software subcontract management
5.
软件质量保证: software quality assurance
6.
软件配置管理: software configuratione management
CMM3:已定义阶段 1.
组织过程焦点: organization process focus
2.
组织过程定义: organization process definition
3.
培训大纲: training program
4.
集成软件管理: intergrated software management
5.
软件产品工程: software product engineering
6.
组间协调: intergroup coordination
7.同行评审: peer review
CMM4:已管理阶段 1.
定量管理过程: quantitative process management
2.
软件质量管理: software quality management
CMM5:优化阶段 1.
缺陷预防: defect prevention
2.
技术改革管理: technology change management
3.
过程更改管理: process change management

软件过程模型

软件过程模型是软件开发全部过程、活动和任务的 结构框架;
它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。软件过程模型也常称为: 软件开发模型,软件生存周期模型,软件工程范型;

常见过程模型:

  • 瀑布模型
  • 增量模型
  • 演化过程模型
  • 喷泉模型

瀑布模型

软件开发过程与软件生命周期一致,也是经典的生命周期模型[Winston, 1970];

经典的瀑布模型

image-20240911015012657

特点:

  1. 阶段间具有顺序性和依赖性;
  2. 推迟实现的观点;
  3. 每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误。

带反馈的瀑布模型

image-20240911015036829

主要问题:线性过程太理想化

  • 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;
  • 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;
  • 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。

瀑布模型适用于系统需求明确,技术成熟,工程管理较为严格的场合;

增量过程模型

增量过程模型是一种非整体开发的模型,是一种进化式的开发过程。
它允许从部分需求定义出发,先建立一个不完整的系统,通过测试运行这个系统取得经验和反馈,进一步使系统扩充和完善。如此反复进行,直至软件人员和用户对所设计的软件系统满意为止。

image-20241213164245145

特点:

  1. 增量适用于小而可用的软件,在前面增量的基础上开发后面的增量
  2. 每个增量的开发可用瀑布或快速原型模型
  3. 快速迭代

优点:

  1. 增量包概念的引入,以及它不需要提供完整的需求。只要有一个增量包出现,开发就可以进行。
  2. 在项目的初始阶段不需要投入太多的人力资源。
  3. 增量可以有效地管理技术风险。

缺点:每个增量必须提供一些系统功能,这使得开发者很难根据客户需求给出大小适合的增量。

快速应用开发模型(RAD)

作为增量过程模型的一种,是一个增量过程模型,强调短暂的开发周期。
RAD 模型是瀑布模型的“高速”变体,通过基于组件的构建方法实现快速开发。如果需求以及项目范围得到明确界定, RAD 能使开发团队在很短的时间内(如 60 到 90 天)建立一个“全功能系统”。

image-20241213164316059

缺点:

  1. 对大型项目而言 RAD 需要足够的人力资源。
  2. 开发者和客户都要实现承诺,否则将导致失败。
  3. 并非所有系统都适合(不能合理模块化的系统、高性能需求并且要调整构件接口的、技术风险很高的系统均不适合)。

演化模型

演化模型包括原型模型和螺旋模型,思想是首先实现软件最核心的最重要的功能;

  • 原型模型:客户定义一个总体目标集,但是他们并不清楚系统的具体输入输出;或开发者不确定算法的效率、软件与操作系统是否兼容以及客户与计算机交互的方式。

    • image-20240911020349722
    • 缺点:设计者在质量和原型间有所折衷,客户意识不到一些质量问题;
  • 螺旋模型:结合了瀑布模型和原型模型的特点,强调风险管理,适用于大型系统的开发;

    • image-20240911020451111

    • 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件。
      风险分析:分析所选方案,考虑如何识别和消除风险。
      实施工程:实施软件开发。
      客户评估:评价开发工作,提出修正建议。

    • 优点:

      • 支持用户需求的动态变化。
      • 原型可看作形式的可执行的需求规格说明,易于为用户和开发人员共同理解,还可作为继续开发的基础,并为用户参与所有关键决策提供了方便。
      • 螺旋模型特别强调原型的可扩充性和可修改性,原型的进化贯穿整个软件生存周期,这将有助于目标软件的适应能力。
      • 螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。
    • 缺点:

      • 如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间;
      • 使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高。
    • 适用场合:支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模 型。

喷泉模型

喷泉模型是一种以 用户需求 为动力,以 对象 为驱动的模型,主要用于描述 面向对象 的软件开发过程。

img

优点:该模型的各个阶段没有明显的界限,开发人员可以同步进行开发,可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
缺点:由于喷泉模型在各个开发阶段是重叠的,在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

基于构件的模型

四阶段:

  • 需求
  • 组件分析:根据需求规格搜索可满足该需求的组件。通常情况下,没有完全匹配的情况,因而组件通常需要加以修改。
  • 系统设计:与其它模型的系统设计有所不同,因为该模型是基于重用的。设计者必须考虑到重用的概念,但遗憾的是,如果没有可重用的组件,还要设计新的软件。
  • 开发和集成:在这个阶段,组件集成到系统中。

优点:

  • 组件的重用,降低了成本和风险,节约了时间;

缺点:

  • 模型复杂
  • 导致需求的折衷,进而导致系统不能完全符合需求
  • 无法完全控制所开发系统的演化
  • 项目划分的好坏直接影响项目结果的好坏

敏捷开发模型

是一种从 90 年代开始逐渐引起广泛关注的一些新型软件开发方法。

  1. 迭代与增量开发:敏捷开发将整个软件项目分成多个小的迭代(通常是2到4周),每个迭代都是一个完整的开发周期,包括需求分析、设计、编码、测试和交付。在每个迭代结束时,都会交付一个可以运行的产品版本,这个版本可能是部分功能的实现,但能够为用户或利益相关者提供价值。

  2. 重视客户和用户的反馈:敏捷开发模型注重与客户和用户的频繁沟通和合作。在每个迭代结束时,团队会向客户展示当前的成果,并根据他们的反馈调整下一步的开发方向。这种方式使得项目可以快速适应需求的变化,确保最终交付的产品更符合用户期望。

  3. 跨职能团队:敏捷团队通常是小型的、跨职能的团队,包含开发人员、测试人员、产品经理和用户代表等。这种团队结构使得每个人都能为产品的不同方面贡献力量,并能快速响应问题和需求。

  4. 自组织和自管理:敏捷强调团队的自组织能力,团队成员可以根据需求自行安排工作,决定如何实现目标。管理者不会详细指挥每个步骤,而是让团队在一定框架下自行运作,这有助于提升团队的灵活性和响应速度。

  5. 持续改进:敏捷开发鼓励持续的反思和改进。团队在每次迭代结束后通常会进行一个回顾会议(Retrospective),讨论在过去的迭代中哪些方面做得好,哪些方面可以改进,以便在下一次迭代中做得更好。

  6. 早期和持续的交付:敏捷模型的目标是尽可能早地向用户提供有价值的软件。团队会在项目的早期阶段就交付一个可工作的系统,并在后续的迭代中不断增加新功能。

  7. 适应性:敏捷方法强调对变化的接受,认为变化是不可避免的。无论是需求变化还是市场变化,敏捷团队都能快速调整计划和优先级,以适应新的形势。

  8. 常见框架:敏捷开发模型下有多种实施框架,其中最常见的包括Scrum、Kanban和Extreme Programming(XP)。这些框架提供了具体的流程和实践,帮助团队有效地进行敏捷开发。

  9. 工作方式透明:敏捷团队通过每日站会(Daily Stand-up Meeting)等方式,让所有团队成员了解彼此的工作进展,暴露潜在的问题,并快速做出调整,确保项目的顺利进行。

  10. 文档减少,但非无文档:与传统的瀑布模型相比,敏捷开发减少了过多的文档要求,更注重可交付的软件。然而,敏捷并不排斥文档,而是提倡根据项目实际需求编写足够的文档。

优点:

  • 快速响应变化,适应市场需求
  • 早期交付可用的产品,增加市场竞争力
  • 增强团队协作,减少沟通障碍
  • 持续改进,确保产品质量不断提升

缺点:

  • 需求变化频繁时,可能导致开发团队的工作压力增大
  • 需要高效的沟通和跨职能合作,否则可能影响效率
  • 项目初期规划不够详细,可能增加项目后期的复杂性

如何选择过程模型?

  1. 软件开发模型是不断发展的,各种软件开发模型各有优缺点
  2. 选用时不必拘泥于某种模型,可组合多种模型, 也可根据实际创建新的模型

参考原则

  1. 在前期需求明确的情况下,尽量采用瀑布模型或改进的瀑布模型。
  2. 在用户无系统使用经验,需求分析人员技能不足情况下一定要借助原型。
  3. 在不确定因素很多,很多东西前面无法计划的情况下尽量采用增量迭代和螺旋模型。
  4. 在需求不稳定的情况下尽量采用增量迭代模型。
  5. 在资金和成本无法一次到位的情况下可采用增量模型,软件产品多个版本进行发布。
  6. 对于完成多个独立功能开发可以在需求分析阶段就进行功能并行,但每个功能内部都应该遵循瀑布模型。
  7. 对于全新系统的开发必须在总体设计完成后再开始增量或并行。
  8. 对于编码人员经验较少的情况下建议不要采用敏捷或迭代等生命周期模型。
  9. 增量、迭代和原型可以综合使用,但每一次增量或迭代都必须有明确的交付和出口原则。

参考原则:

image-20240911021919180

绪论

软件

1946年,世界上第一台计算机诞生;

1958年,John Wilder Tukey正式提出软件的概念;

软件是指计算机程序及其相关文档的集合。它是由一系列指令和数据组成,用于实现特定的功能或解决特定的问题

软件可以运行在计算机上,通过执行程序中的指令来完成各种任务。

  • 程序:按事先设计的功能和性能需求执行序列
  • 数据:程序能正常操作信息的数据结构;
  • 文档:与程序开发、维护和使用有关的图文材料

软件的特点

  1. 软件是开发的或者是工程化的,并不是制造的
  2. 软件生产是简单的拷贝
  3. 会多次修改
  4. 软件开发环境影响较大
  5. 开发时间和工作量难以估计
  6. 几乎没有客观衡量标准
  7. 测试困难
  8. 不会磨损和老化
  9. 维护易带来新的问题

软件的双重作用

  1. 提供计算能力的一种产品,产生、管理、获取、修改、显示或传输信息;
  2. 开发其他软件产品的工具

软件的分类

  1. 软件功能分类:系统软件,支撑软件,应用软件;
  2. 服务对象分类:项目软件,产品软件;

软件的发展

软件迅速发展的原因:计算需求, 嵌入需求,业务需求,架构需求;

  1. 个体化:1950s-1960s;
  2. 作坊式:1960s-1970s;
  3. 工程化:1970s-1980s;
  4. 产业化:至今;

软件危机

软件危机是指计算机软件开发和维护过程中所遇到的一系列严重问题

1968年 NATO 会议提出“软件危机;

软件危机具体表现

  1. 项目超出预算
  2. 项目超过计划完成时间
  3. 软件运行效率很低
  4. 软件质量差
  5. 软件通常不符合要求
  6. 项目难以管理并且代码难以维护
  7. 软件不能交付

软件危机发生原因

  1. 客观上:软件本身特点
    • 逻辑部件多
    • 规模庞大
  2. 主观上:不正确的开发方法
    • 忽视需求分析
    • 错误认为软件开发等于程序编写
    • 轻视软件维护

软件工程

消除软件危机的解决方案是采用软件工程的方法:用现代工程的概念原理、技术和方法去指导软件的开发、管理和维护;

IEEE将软件工程定义为

  1. 实践上:应用系统化的 、 学科化的 、 定量的方法 来开发 、 运行和维护软件 ;
  2. 研究上:对上述各种方法的研究 ;

软件工程的目标是在给定的时间和预算内,按照用户的需求,开发易修改、高效、可靠、可维护、适应力强、可移动、可重用的软件 。

软件工程的三要素

  1. 工具:它为软件工程的过程和方法提供自动化或半自动化的工具支持。
  2. 方法:软件工程方法是完成软件工程项目的技术手段。
  3. 过程:过程贯穿软件开发的各个环节,在各环节之间建立里程碑;

软件工程的四个阶段

  1. 传统的软件工程;
  2. 对象工程;
  3. 过程工程;
  4. 构件工程;

软件工程的基本原则

  1. 使用阶段性生命周期计划的管理
  2. 进行连续的验证
  3. 保证严格的产品控制
  4. 使用现代编程工具 工程实践
  5. 保持清晰的责任分配
  6. 用更好更少的人
  7. 保持过程改进

应用随机过程:常见分布的数字特征

退化分布(单点分布)

若随机变量$X$只取常数$c$,即
$$
P{X=c}=1
$$
则$X$并不随机,但我们把它看作随机变量的退化情况更为方便,因此称之为退化分布,又称单点分布.

离散均匀分布

若随机变量$X$的分布律为
$$
P(X=k)=\frac1n,\quad k=1,2,\cdots,n
$$
则称之为离散均匀分布,记作$X\sim U{1,\cdots,n}$​.

Property

  1. 特征函数
    $$
    \psi_X(t)=\frac{e^{ita}-e^{it(b+1)}}{(1-e^{it})(b-a+1)}
    $$

Bernoulli分 布

若 随 机 变 量$X$的分布律为
$$
P(X=k)=p^k(1-p)^{n-k},\quad k=0,1
$$
则称之为离散均匀分布,记作$X\sim$Ber$(p)$.

设事件$A$出现的概率为$p,0<p<1$,则$X$为一次伯努利试验中$A$​出现的次数.

Property

  1. 特征函数
    $$
    \psi_{X}(t)=1-p+pe^{it}
    $$

二项分布

若随机变量$X$​的分布律为
$$
\left.P(X=k)=\left(\begin{array}{c}n\k\end{array}\right.\right)p^k(1-p)^{n-k},\quad k=0,1,\cdots,n
$$
则称之为以$n$和$p$为参数的二项分布,记作$X\sim B(n,p)$.

设事件$A$在每次试验中出现的概率均为$p,0<p<1$,且每次实验相互独立,则$X$为$n$重伯努利试验中事件$A$​出现的次数.

Property

  1. 特征函数
    $$
    \psi_{X}(t)=1-p+pe^{it}
    $$

几何分布

若随机变量$X$的分布律为
$$
P(X=k)=p(1-p)^{k-1},\quad k\geq1
$$
则称之为几何分布,记作$X\sim$Geom$(p)$.

在伯努利试验中, 设事件$A$在每次试验中出现的概率均为$p,0<p<1$,则$X$为事件$A$首次出现时的总试验次数;

Property

  1. 特征函数
    $$
    \psi_X(t)=\frac{p}{e^{-it}-(1-p)}
    $$

Poisson分 布

若 随 机 变 量 $X$的分布律为
$$
P(X=k)=\frac{e^{-\lambda}\lambda^k}{k!},\quad k=0,1,\cdots
$$
其中$\lambda>0$,则称$X$服从Poisson分布,记为$X\sim$Poi$(\lambda).$​

Property

  1. 特征函数
    $$
    \psi_X(t)=e^{\lambda(e^{it}-1)}
    $$

  2. 数学期望
    $$
    E[X]=\lambda
    $$

  3. 方差
    $$
    Var[X]=\lambda
    $$

负二项分布

对于任意实数$r>0$,若随机变量$X$的分布律为
$$
\left.P(X=k)=\left(\begin{array}{c}k+r-1\k\end{array}\right.\right)p^r(1-p)^k,:k=0,1,2,\cdots
$$
则称之为负二项分布,记作$X\sim\mathsf{NB}(r,p)$​。

Property

  1. 特征函数
    $$
    \psi_X(t)=\left(\frac{p}{1-(1-p)e^{it}}\right)^r
    $$

在伯努利试验中,设事件$A$在每次试验中出现的概率均为$p$,则$X$为直到事件$A$成功$r$次时,试验的总失败次数。

负二项分布通常用于替换Poisson分布。同Poisson分布一样,它也在非负整数上取值,但因为它包含两个参数,相比Poisson 分布其变化更灵活。Poisson分布的方差和均值相等,但负二项分布的方差大于均值.

Property

  1. 特征函数
    $$
    \psi_{X}(t)=\left(\frac p{1-(1-p)e^{it}}\right)^{r}
    $$

连续均匀分布

如果$X$的概率密度为
$$
\left.f(x)=\left{\begin{array}{ll}1/(b-a),&\text{若 }a\leq x\leq b\0,&\text{其他}\end{array}\right.\right.
$$
其中$a<b$,则称之为区间$[a,b]$上的(连续)均匀分布,记为$X\sim\mathbf{U}[a,b].$​

Property

  1. 特征函数
    $$
    \psi_X(t)=\frac{e^{itb}-e^{ita}}{t(b-a)}
    $$

正态分布

如果$X$的概率密度为
$$
f(x)=\frac1{\sigma\sqrt{2\pi}}\cdot e^{-\frac{(x-\mu)^2}{2\sigma^2}},x\in\mathbb{R}
$$
则称之为参数为$\mu$和$\sigma^2$的正态分布,也称为高斯分布,记为$X\sim\mathsf{N}(\mu,\sigma^{2}).$​

Property

  1. 若随机变量X服从正态分布$N(0,\sigma^2)$,其中$\sigma>0$,$X$的$k$​阶原点矩
    $$
    E(X^{k})=\left{\begin{array}{ll}0, & \text{当}k\text{为奇数时};\ \sigma^{k}(k-1)!!, & \text{当}k\text{为偶数时}.\end{array}\right.
    $$

    证明 $E(X^k)=(k-1)E(X^{k-2}),E(X)=0$
  2. 特征函数
    $$
    \psi_X(t)=e^{it\mu-\frac12\sigma^2t^2}
    $$

指数分布

如果$X$的概率密度为
$$
\left.f(x)=\left{\begin{array}{ll}\lambda e^{-\lambda x},&x\geq0\0,&x<0\end{array}\right.\right.
$$
则称之为指数分布,记为$X\sim$Exp$(\lambda).$​

Property

  1. 特征函数
    $$
    \psi_X(t)=(1-it\lambda^{-1})^{-1}
    $$

  2. 分布函数
    $$
    F(x)=P(X\le x)=1-e^{-\lambda x}
    $$

  3. 数学期望
    $$
    E[X]=\frac{1}{\lambda}
    $$

  4. 方差
    $$
    Var(X)=\frac{1}{\lambda}
    $$

卡方分布

如果$X$的概率密度为
$$
f(x)=\frac1{2^{\frac n2}\Gamma(\frac n2)}x^{\frac n2-1}e^{-\frac x2},\quad x>0
$$
$n$为正整数,则称之为自由度为$n$的卡方分布,记为$X\sim\chi^2(n).$​

Property

  1. 特征函数
    $$
    \psi_X(t)=(1-2it)^{-\frac n 2}
    $$

  2. 数学期望
    $$
    E[X]=n
    $$
    方差
    $$
    Var[X]=2n
    $$

$\Gamma$分 布

若$X$的概率密度为
$$
\left.f(x)=\left{\begin{array}{ll}\frac{\beta^\alpha}{\Gamma(\alpha)}x^{\alpha-1}e^{-\beta x},&x\geq0\0,&x<0\end{array}\right.\right.
$$
$\alpha > 0$, $\beta > 0$, 则称$X$服从形状参数$\alpha$,反尺度参数$\beta$的$\Gamma$分布,记为$X\sim \Gamma(\alpha,\beta)$.

image-20240602162822256

  1. $E(X)=\alpha/\beta,D(X)=\alpha/\beta^2.$

  2. 如果$X\sim\Gamma(\alpha,\beta)$,对任意的$c>0,cX\sim\Gamma(\alpha,\frac\beta c)$

  3. 如果$X\sim$Exp$(\lambda)$,则$X\sim\Gamma(1,\lambda)$

  4. 如果$X\sim\chi^2(n)$,则 $X\sim \mathsf{Exp}(\frac n2,\frac12).$

  5. 如果$X_1,X_2,\ldots,X_n$相互独立同分布且服从参数为$\lambda$的指数分布,则$\sum_{i=1}^nX_i\sim \Gamma(n,\lambda)$

  6. 分布函数
    $$
    F(x)=\int_0^xf(x)dx=1-\sum_{i=0}^{\alpha-1}\frac{(\beta x)^i}{i!}e^{-\beta x}.
    $$

  7. 特征函数
    $$
    \psi_X(t)=(1-it\beta^{-1})^{-\alpha}
    $$

多维正态分布

设$\boldsymbol{\mu}=(\mu_1,\cdots,\mu_d)^T$,$\boldsymbol{\Sigma}$是$d$阶正定对称矩阵,并且其行列式为$|\Sigma|$.如果$\mathbf{X}=(X_1,X_2,\ldots,X_d)^T$的联合概率密度为
$$
f(x_1,\cdots,x_d)=(2\pi)^{-d/2}|\Sigma|^{-1/2}\exp{-\frac12(\mathbf{x}-\boldsymbol{\mu})^{\prime}\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu})}
$$
则称之为$d$维正态分布,记为$\mathbf{X}\sim\mathsf{N}_d(\boldsymbol{\mu},\boldsymbol{\Sigma}). $

Property

  1. 特征函数
    $$
    \psi_\boldsymbol{X}(\boldsymbol{t})=\exp{i\boldsymbol{t}^T\boldsymbol{\mu}-\frac12\boldsymbol{t}^T\boldsymbol{\Sigma}\boldsymbol{t}}
    $$

  2. 若$\mathbf{X}\sim N_d(\mathbf{0},\mathbf{I}_d)$,则X的任一线性函数$\mathbf{Y}=\mathbf{A}_n\times d\mathbf{X}+\boldsymbol{\mu}$ 服从$n$维正态分布$N_n(\boldsymbol{\mu},\mathbf{A}\mathbf{A}^T)$

  3. 若$\mathbf{Y}\sim N(\boldsymbol{\mu},\boldsymbol{\Sigma})$,则 $\mathbf{A}\mathbf{Y}+\mathbf{b}\sim N(\mathbf{A}\boldsymbol{\mu}+\mathbf{b},\mathbf{A}\boldsymbol{\Sigma}\mathbf{A}^T)$

  4. 设$\mathbf{X}\sim N(\mu_1,\sigma_1^2),Y\sim N(\mu_2,\sigma_2^2)$,并且$X$与$Y$相互独立,则

    $$
    (X,X+Y)^T\sim N(\boldsymbol{\mu},\boldsymbol{\Sigma}).
    $$
    其中均值$\boldsymbol{\mu}=(\mu_1,\mu_1+\mu_2)^T$,协方差矩阵$\boldsymbol\Sigma=\left(\begin{array}{cc}\sigma_1^2&\sigma_1^2\\sigma_1^2&\sigma_1^2+\sigma_2^2\end{array}\right)$

  5. $(X_1,X_2,\cdots,X_n)^T$服从$n$维正态分布当且仅当其任意非零线性组合
    $$
    l_1X_1+l_2X_2+\cdots+l_nX_n
    $$
    服从正态分布,其中$l_1,l_2,\cdots,l_n$不全为零.

  6. 特别的,对二位联合正态分布,其联合概率密度为
    $$
    \mathrm{f(x,y)}=\frac{1}{2\pi\sigma_{1}\sigma_{2}\sqrt{1-\rho^{2}}}e^{\left{-\frac{1}{2(1-\rho^{2})}\left[\frac{(x-\mu_{1})^{2}}{\sigma_{1}^{2}}-2\rho\frac{(x-\mu_{1})(x-\mu_{2})}{\sigma_{1}\sigma_{2}}+\frac{(y-\mu_{2})^{2}}{\sigma_{2}^{2}}\right]\right}}
    $$
    其中相关系数$\rho = \frac{Cov(X,Y)}{\sqrt{Var(X)Var(Y)}}$

应用随机过程:测度论预备知识

$\sigma$代数,可测空间,随机事件

设$\Omega$是一个样本空间(或任意一个集合),$\mathcal{F}$是$\Omega$的某些子集组成的集簇.如果满足:

  • $\Omega \in \mathcal{F} ;$

  • 若$A\in\mathcal{F}$,则$A^c=\Omega\setminus A\in\mathcal{F};$

  • 若$A_n\in \mathcal{F} , n= 1, 2, \cdots \textbf{, 则 }\bigcup _{n= 1}^\infty A_n\in \mathcal{F} ;$

则称$\mathcal{F}$为$\sigma$代 数 。$(\Omega , \mathcal{F} )$称为可测空间,$\mathcal{F}$​中的元素称为随机事件;

Mark

一个事件应该理解成一个集合,它可以用若干样本点表示;

Property

  1. $\Omega,\varnothing \in \mathcal F$​.
  2. $\mathcal F$对集合的可数交,可数并,差,补运算封闭;

生成$\sigma$代数, Borel $\sigma$代数

以$\Omega$的某些子集为元素的集合称为$(\Omega$上的)集类。对于$\Omega$上的任一非空集类$\mathcal{C}$,存在包含$\mathcal{C}$的最小$\sigma$代数,称为由$\mathcal{C}$生成的$\sigma$代数,记为$\sigma(\mathcal{C}).$​
$$
\sigma(\mathcal{C})=\bigcap{\mathcal{H}|\mathcal{H}\text{为包含}\mathcal{C}\text{的}\sigma\text{代数}}.
$$
设$\Omega=\mathbb{R}$。由所有半无限区间$(-\infty,x)$生成的$\sigma$代数称为$\mathbb{R}$上的 Borel $\sigma$代数,记为$\mathcal{B}(\mathbb{R})$, 其中的元素称为 Borel 集合。类似地,可定义$\mathbb{R}^n$上的 Borel $\sigma$代数$\mathcal{B}(\mathbb{R}^n)$。

Mark

如何理解最小?对于$\forall \mathcal C \subset \mathcal X\Rightarrow\sigma(\mathcal C) \subset \mathcal X$.

Example

对样本空间$\Omega$,随机事件$A,B$,写出以下集簇$\mathcal C$的最小$\sigma$代数:

  • $\mathcal C={A}:\sigma(\mathcal C)={\Omega,\varnothing,A,A^{\mathcal C}}$.
  • $\mathcal C={A,B}:\sigma(\mathcal{C})={\emptyset,\Omega,A,A^c,B,B^c,A\cap B,A\cap B^c,A^c\cap B,A^c\cap B^c,A\cup B,A\cup B^c,A^c\cup B,A^c\cup B^c}.$

概率空间,事件,概率

设$(\Omega,\mathcal{F})$是可测空间,$P(\cdot)$ 是定义在$\mathcal{F}$上的实值函数。如果

  1. (非负性)$\forall A\in\mathcal{F},0\leq P(A)\leq1;$
  2. (规范性)$P(\Omega)=1;$
  3. (可列可加性)对两两互不相容事件$A_1,A_2,\cdots$,(即当$i\neq j\textbf{时 , }A_i\cap A_j= \emptyset$)有

$$
P(\bigcup_{i=1}^\infty A_i)=\sum_{i=1}^\infty P(A_i)
$$

则称$P$是$(\Omega,\mathcal{F})$上的概率,$(\Omega,\mathcal{F},P)$称为概率空间,$\mathcal{F}$中的元素称为事件,$P(A)$称为事件$A$的概率.

Property

  • $P( \emptyset ) = 0.$

  • (有限可加性)若$A_i\in\mathcal{F},i=1,\ldots,n;$且$A_i\cap A_j= \emptyset , \forall i\neq j\textbf{, 有 }P( \bigcup _{i= 1}^nA_i) = \sum _{i= 1}^nP( A_i) .$

  • $\forall A\in \mathcal{F} , P( A) = 1- P( A^c) .$

  • (单调性)若$A\subset B, \textbf{则 }P( A) \leq P( B)$,$P(B-A)=P(B)-P(A).$

  • (概率加法定理)$P(A\cup B)=P(A)+P(B)-P(A\cap B).$​

  • Jordan公式:$P\left(\bigcup_{i=1}^nA_i\right)=\sum_{k=1}^n\sum_{i_1<\cdots<i_k}(-1)^{k-1}P(A_{i_1}\cdots A_{i_k})$.

  • 若$A_n\in \mathcal{F} , n\geq 1, \textbf{则 }P( \bigcup _{n\geq 1}A_n) \leq \sum _{n\geq 1}P( A_n) .$​

    证明 不妨设不等式右端小于$+\infty.$构造互斥事件序列$\{E_n\}$,其中 $$E_n=\left\{\begin{matrix}A_1,&n=1,\\A_n-\bigcup_{i=1}^nA_j,&n>1.\end{matrix}\right.$$ 于是有$E_n\subseteq A_{n\text{,并且}\bigcup_{i=1}^nE_i}=\bigcup_{i=1}^nA_i,\bigcup_{i=1}^\infty E_i=\bigcup_{i=1}^\infty A_i$,从而 $$P\left(\bigcup_{i=1}^\infty A_i\right)=P\left(\bigcup_{i=1}^\infty E_i\right)=\sum_{i=1}^\infty P(E_i)\leq\sum_{i=1}^nP(A_i).$$

事件的极限

事件的单调性:若对每个$n$,有$A_n\subset A_n+1($或 $A_n\supset A_n+1)$, 则称事件序列${A_n}_{n>1}$为单调增(或单调降)。

对单调增或单调降序列${A_n}$,我们分别令$A=\bigcup_nA_n$或$A=\bigcap_nA_n$ 称$A$为${A_n}$的极限,通常记为$A_n\uparrow A$或$A_n\downarrow A.$

设${ A_n} {n\geq 1}\textbf{为 一 事 件 序 列 。令 }$
$$
\limsup
{n\to\infty}A_n=\bigcap_{n=1}^\infty\bigcup_{k=n}^\infty A_k\
\liminf_{n\to\infty}A_n=\bigcup_{n=1}^\infty\bigcap_{k=n}^\infty A_k
$$
分别称其为${A_n}$​的上极限和下极限。

若$\lim\sup_{n\to\infty}A_n=\liminf_{n\to\infty}A_n$,则称${A_n}$极限存在,用$\lim_{n\to\infty}A_n$表示

Mark

如何理解上极限,下极限?

  1. 上极限:全体出现在无穷个$A_k$中的元素;
  2. 下极限:全体只在有限个$A_k$中不存在的元素;

$$
\begin{aligned}
\limsup_{n\to\infty}A_n&={w|\forall n\in\mathbb{N},\exists k\geq n,\text{使}w\in A_k}
\&={w|w\text{属于无穷多个}A_n}\
\liminf_{n\to\infty}A_n&={w|\exists n\in\mathbb{N},\forall k\geq n,\text{有}w\in A_k}\&={w|w\text{至多不属于有限多个}A_n}
\end{aligned}\
$$

Property

  1. 若$A_n\in\mathcal{F}$ 且 $A_n\uparrow A\in\mathcal{F}(A_n\downarrow A\in\mathcal{F})$, 则$P(A)=\operatorname*{lim}_{n\to\infty}P(A_n).$​

    证明 设$\{A_n\}$是单调增序列,构造互斥事件序列$\{B_n\}$,其中 $$B_n=\begin{cases}A_1,&n=1,\\A_n-A_{n-1},&n>1.\end{cases}$$ 于是有$\bigcup_{i=1}^nA_i=\bigcup_{i=1}^nB_i$ 及$\bigcup_{i=1}^\infty A_i=\bigcup_{i=1}^\infty B_i$,故 $$\begin{aligned}P\left(\lim_{n\to\infty}A_n\right)&=P\left(\bigcup_{i=1}^\infty A_i\right)=P\left(\bigcup_{i=1}^\infty B_i\right)=\sum_{i=1}^\infty P(B_i)\\&=\lim_{n\to\infty}\sum_{i=1}^nP(B_i)=\lim_{n\to\infty}P\left(\bigcup_{i=1}^nB_i\right)\\&=\lim_{n\to\infty}P\left(\bigcup_{i=1}^nA_i\right)=\lim_{n\to\infty}P(A_n).\end{aligned}$$
  2. (Borel-Cantelli第一引理)设${A_n,n\geq1}$是一列事件,若$\sum_{n= 1}^\infty P( A_n) < \infty $, 则 $P(\operatorname*{lim}\mathop{\mathrm{sup}}_{n\to\infty}A_n)=0$​.​

    证明 易知$\bigcup_{i=n}^\infty A_i$是关于$n$的单调减序列,故 $$\begin{aligned}0\leq P(\lim_{i\to\infty}\sup A_i)&=P\left(\bigcap_{n=1}^\infty\bigcup_{i=n}^\infty A_i\right)=P\left(\lim_{n\to\infty}\bigcup_{i=n}^\infty A_i\right)\\&=\lim_{n\to\infty}P(\bigcup_{i=n}^\infty A_i)\leq\lim_{n\to\infty}\sum_{i=n}^\infty P(A_i)=0.\end{aligned}$$ 从而得证.
  3. (Borel-Cantelli第二引理)设${A_n,n\geq1}$是一列事件,若$\sum_{n= 1}^\infty P( A_n) = \infty $, 则 $P(\operatorname*{lim}\mathop{\mathrm{sup}}_{n\to\infty}A_n)=1$​​.

随机变量,分布函数

设$(\Omega,\mathcal{F},P)$是概率空间,$X$是定义在$\Omega$上取值于实数集$\mathbb{R}$的函数, 如果对任意实数$x\in \mathbb{R}$, ${ \omega : X( \omega ) \leq x} \in \mathcal{F}$,则称$X(\omega)$是$\mathcal{F}$上的随机变量,简称为随机变量.
$$
F(x)=P(\omega:X(\omega)\leq x),\quad-\infty<x<\infty
$$
称为随机变量$X$​的分布函数.

若向量$\mathbf{X}=(X_1,\cdots,X_d)$满足对所有的$k,1\leq k\leq d,X_k$都是随机变量,则称$\mathbf X$为多维随机变量,也称随机向量.

多维随机变量$\mathbf{X}=(X_1,\cdots,X_d)$,的$(d$维联合)分布函数写作
$$
F(x_1,\cdots,x_d)=P(X_1\leq x_1,\cdots,X_d\leq x_d).
$$
这里$d$为正整数,$x_k\in\mathbb{R},k=1,2,\ldots,d.$

Property

  1. $F( x_1, \cdots , x_d)$对每个变量都是单调的;

  2. $F( x_1, \cdots , x_d)$对每个变量都是右连续的;

  3. $\forall i= 1, 2, \cdots , d$,$\lim_{x_i\to-\infty}F(x_1,\cdots,x_i,\cdots,x_d)=0;$

  4. $\lim_{x_1,x_2,\cdots,x_d\to+\infty}F(x_1,x_2,\cdots,x_d)=1.$

边缘分布,联合密度

设$F(x_1,\cdots,x_d)$为$(X_1,\cdots,X_d)$的联合分布函数.对 $\forall 1\leq k_{1}< \cdots < k_{n}\leq d$, $( X_{k_{1}}, \cdots , X_{k_{n}})$的边缘分布为
$$
F_{X_{k_1},\cdots,X_{k_n}}(x_{k_1},\cdots,x_{k_n})=F(\infty,\cdots,\infty,x_{k_1},\infty,\cdots,\infty,x_{k_2},\infty,\cdots,\infty,x_{k_n},\infty,\cdots,\infty).
$$
如果
$$
f(x_1,\cdots,x_d)=\frac{\partial^dF}{\partial x_1\cdots\partial x_d}
$$
对所有的 $(x_1,\cdots,x_d)\in R^d$ 存在,则称函数$f( x_1, \cdots , x_d) \textbf{为 X}= ( X_1, \cdots , X_d)$​的联合密度函数,并且
$$
F(x_1,\cdots,x_d)=\int_{-\infty}^{x_1}\cdots\int_{-\infty}^{x_d}f(t_1,\cdots,t_d)dt_d\cdots dt_1.
$$

Mark

并非所有分布都具有概率密度,比如Cantor分布;

示性函数

任意事件 $A$的示性函数为:$ \mathbb I_A(\omega) = \begin{cases} 0, & A\ 没发生, \1, & A\ 发生了. \end{cases}$

若$A \in \cal F$ , 则$ \mathbb I_A(\omega)$ 是随机变量;

若$A \notin \cal F $, 则$\mathbb I_A(\omega)$ 不是随机变量.

给定$ (\Omega, \cal F)$ 和事件序列$B_n \in \cal F$ , 若 $\forall (k \ne l): B_k\cap B_l = \varnothing$ 且$\bigcup_{k = 1}^\infty B_k =\Omega $, 则称${B_k} $为 $\Omega$ 的一个 划分 .

若 ${B_k}$ 是$\Omega$ 的一个划分, 则 $X(\omega) = \sum_{n = 1}^\infty x_n \mathbb I_{B_n} (\omega) $是随机变量, 其中 $ x_n \in \R $.

Riemann-Stieltjes积分

设$a=x_0<x_1<\cdots<x_n=b$为有限区间$(a,b]$的一个分割,$g(x),F(x)$为$(a,b]$上的实值函数。令
$$
\Delta F(x_i)=F(x_i)-F(x_{i-1}),\xi_i\in[x_{i-1},x_i],1\leq i\leq n,
$$
和$\lambda=\max_1\leq i\leq n(x_i-x_{i-1})$。如果当$\lambda\to0$时,极限
$$
\lim_{\lambda\to0}\sum_{i=1}^ng(\xi_i)\Delta F(x_i)
$$
存在,且与分割的选择以及$\xi_i\in[x_{i-1},x_i]$的取法无关,则称该极限值为函数$g(x)$关于$F(x)$ 在$(a,b]$上的 Riemann-Stieltjes积分,记为
$$
\int_a^bg(x)dF(x)=\lim_{\lambda\to0}\sum_{i=1}^ng(\xi_i)\Delta F(x_i).
$$

Property

  1. (线性性质)$\int_a^b[\alpha g_1(x)\pm\beta g_2(x)]dF(x)=\alpha\int_a^bg_1(x)dF(x)\pm\beta\int_a^bg_2(x)dF(x).$
  2. (区间可加性$)\int_a^bg(x)dF(x)=\int_a^cg(x)dF(x)+\int_c^bg(x)dF(x).$
  3. $\int_a^bdF(x)=F(b)-F(a)$,其中$a,b$均可为有限数或无穷大.
  4. $\int_a^bg(x)d[\alpha F_1(x)+\beta F_2(x)]=\alpha\int_a^bg(x)dF_1(x)+\beta\int_a^bg(x)dF_2(x).$
  5. 若$g(x)\geq0,:F(x)$单调不减,$b>a$,则 $ \int_a^b g(x)d F(x)\geq 0. $

数学期望,方差,原点矩

$F(x)$是随机变量的分布函数,其数学期望定义为
$$
E[X]=\int_{-\infty}^{+\infty} xdF(x)
$$
方差定义为
$$
Var(X)=\int_{-\infty}^{+\infty} [x-E(x)]^2dF(x)
$$
$k$阶原点矩定义为
$$
\gamma_k(X)=E[X^k]
$$
中心矩定义为
$$
\mu_k(X)=E([X-E(X)]^k)
$$
协方差定义为
$$
Cov(X,Y)=E[(X-E[X])(Y-E[Y])]=E(XY)-E[X]E[Y]
$$
$k+l$阶混合矩定义为$E[X^kY^l]$,混合中心矩定义为$E[(X-E[X])^k(Y-E[Y])^l]$​

Mark

  • 期望有可能是不存在的,比如Cauchy分布:
    $$
    f(x)=\frac{1}{2\pi}\frac{1}{x^2+1},x\in \mathbb R
    $$

  • 概率论版本的Jesen不等式如下:

    对于$\varphi’’\ge 0$($\varphi$是凸函数),有
    $$
    \varphi(E[X])\le E[\varphi(x)]
    $$

  • 对于全排列$[n]$的置换$\sigma$ ,满足$\sigma(i)=i$的下标个数为$X$,$E[X]=Var[X]=1$

矩母函数

若随机变量$X$的分布函数为$F_X(x)$,则称
$$
M_X(t)=E[e^{tX}]=\int_{-\infty}^\infty e^{tx}dF_X(x)
$$
为$X$的矩母函数.

Property

  1. $M_X^{(n)}(t)=E[X^ne^{tX}]$
  2. $E[X^n]=M_X^{(n)}(0)$
  3. 矩母函数存在时,将唯一决定分布,也即矩母函数和分布唯一对应
  4. 若概率密度存在,则$M_X(t)$是$f(x)$的Laplace变换

特征函数

若随机变量$X$的分布函数为$F_X(x)$,则称
$$
\psi_X(t)=E[e^{itX}]=\int_{-\infty}^\infty e^{itx}dF_X(x)
$$
为$X$的 特 征 函 数 .

Property

  1. 分布函数由其特征函数唯一决定.如果有概率密度$f( x) \textbf{, 则 }\psi X( t)$就是$f(x)$的Fourier变换
    $$
    \psi_X(t)=\int
    {-\infty}^\infty e^{itx}f_X(x)dx
    $$

  2. (有界性)$|\psi(t)|\leq1=\psi(0);$

  3. (共轭对称性)$\psi(-t)=\overline\psi(t);$

  4. (一致连续性)$|\psi(t+h)-\psi(t)|\leq\int_{-\infty}^\infty|e^{ihx}-1|dF(x);$

  5. (线性变换)设$Y=aX+b$,则$Y$的特征函数是$\psi_Y(t)=e^{ibt}\psi_X(at);$

  6. 两个相互独立的随机变量之和的特征函数等于它们的特征函数之积.

  7. (非负定性)对于任意的正整数$n$,任意实数$t_1,\cdots,t_n$及复数$\lambda_1,\cdots,\lambda_n$​,有
    $$
    \sum_{k=1}^n\sum_{j=1}^n\psi(t_k-t_j)\lambda_k\overline{\lambda_j}=\int_{-\infty}^{+\infty}|\sum_{k=1}^n \lambda_ke^{it_kx}|^2 dx\geq0.
    $$

  8. 设随机变量$X$有$n$阶矩存在,则它的特征函数可微分$n$次,且当$k\leq n$时,有
    $$
    \psi^{(k)}(0)=i^kE[X^k]
    $$

  9. 特征函数可作如下带皮阿诺型余项的Taylor展开:
    $$
    \psi(t)=1+itE[X]+\frac{(it)^2}{2!}E[X^2]+\cdots+\frac{(it)^n}{n!}E[X^n]+o(t)
    $$

收敛性

几乎必然收敛

设${X_n,n\geq1}$是随机变量序列,若存在随机变量$X$使得
$$
P[\omega\in\Omega:\lim_{n\to\infty}X_n(\omega)=X(\omega)]=1,
$$
则称随机变量序列${ X_n, n\geq 1}$ 几 乎 必 然 收 敛 (或以概率1收敛于$X$), 记为 $ X_n \xrightarrow{a. s_{\cdot }}X.$​

等价命题:$X_n\xrightarrow{a.s}X$当且仅当对任意的$\epsilon > 0\textbf{, 有 }$
$$
P(\lim\sup_{n\to\infty}{|X_n-X|\geq\epsilon})=0.
$$

Mark

事件${lim_{n\to \infty}X_n(\omega)=X(\omega)}$发生的概率是1,几乎是一个必然事件,我们认为事件$X_n(\omega)=X(\omega)$几乎处处成立;

  • 考虑喂养一个宠物,并将该宠物每天消耗的食物量记为Xn.虽然Xn是不可预测的,但我们可以非常确定有一天该数字将变为零,并且此后将永远保持为零;
  • 假设一个人每天早上抛七枚硬币。硬币每出现一个正面,当天下午他都会向慈善机构捐赠一块钱。然而,如果某一天硬币的结果全是反面,他就会永远停止捐赠。设$X_1,X_2, . . .$为慈善机构每天从他那里收到的金额。我们几乎可以肯定,有一天这个金额将为零,并在那之后永远保持为零。然而,当我们考虑任何有限的天数时,终止条件不会发生的概率不为零(虽然这个概率极小);

依概率收敛

设${X_n,n\geq1}$是随机变量序列,若存在随机变量$X$,使得$\forall\varepsilon>0$​,有
$$
\lim_{n\to\infty}P{|X_n-X|\geq\varepsilon}=0
$$
则称随机变量序列${ X_n,n\geq1}$依概率收敛于$X$, 记为$X_n\xrightarrow{P}X$​.

Mark

随着事件序列的进展,‘不寻常‘的结果发生的概率越来越小;

假设随机数生成器生成0到1之间的伪随机浮点数.设$X$为生成器输出的数字,由于伪随机数是确定性生成的,因此其下一个值并不是真正随机的。假设当观察一系列随机生成的数字时,可以推断出它的模式并对下一个随机生成的数字是什么做出越来越准确的预测。令$X_n$为在观察前$n − 1$个随机数后对下一个随机数的值做的猜测。随着对生成器的模式越来越了解,猜测也将变得更加准确,$Xn$的结果会收敛到$X$的结果。

Property

  1. 随机变量序列$X_n\xrightarrow PX$的充分必要条件是${X_n}$的任意子序列都包含几乎必然收敛于$X$的子序列;

$p$​​次平均收敛

称随机变量$X\in L^p$ ,如果其满足 $E(|X|^p)<\infty$ ;

设随机变量序列${X_n}\subset L^p,p\geq1$,随机变量$X\in L^p$,若有
$$
\lim_{n\to\infty}E[|X_n-X|^p]=0
$$
则称随机变量序列${ X_n, n\geq 1}$ $ p$次 平均收敛于$ X$.记作$X_n\xrightarrow{L^p}X$

依分布收敛

设${F_n(x)}$是分布函数列,如果存在一个单调不减函数$F(x)$, 使得在$F(x)$的所有连续点$x$上均有
$$
\lim_{n\to\infty}F_n(x)=F(x)
$$
则称${ F_n( x) }$ 弱 收 敛 于 $F( x)$,记 为 $F_n( x) \xrightarrow{W}F( x) .$

设随机变量$X_n,X$的分布函数分别为$F_n(x)$及$F(x)$,$F_n(x)\xrightarrow{W}F(x)$,则称${X_n}$依分布收敛于$X$,记为$X_n\xrightarrow{L}X.$​

Mark

  1. $$
    X_n\xrightarrow{L^p}X \Rightarrow X_n\xrightarrow PX \Rightarrow X_n\xrightarrow{L}X.
    $$

  2. $$
    X_n\xrightarrow{a.s.}X \Rightarrow X_n\xrightarrow PX \Rightarrow X_n\xrightarrow{L}X.
    $$

  3. $$
    \exists {X_n, n\ge 1}, X_n\xrightarrow{P}X ,X_n\xrightarrow{L^p}X , X_n \stackrel{a.s.}\nrightarrow X.
    $$

    定义$\Omega=(0,1],A_n(i)=(\frac{i-1}{n},\frac in],X_n^i(\omega)=\begin{cases}1&,\omega\in A_n(i)\0&,\omega\notin A_n(i)\end{cases}$

    验证序列
    $$
    {Y_i}_{i=1}^\infty = { X_1^1,X_2^1,X_2^2,X_3^1,X_3^2,X_3^3,…}
    $$
    满足构造要求

  4. $$
    \exists {X_n, n\ge 1}, X_n\xrightarrow{a.s.}X , X_n \stackrel{L^p}\nrightarrow X.
    $$

    定义$\Omega=(0,1],A_n(i)=(\frac{i-1}{n},\frac in],X_n^i(\omega)=\begin{cases}e^n&,\omega\in A_n(i)\0&,\omega\notin A_n(i)\end{cases}$

    验证序列
    $$
    {Y_i}_{i=1}^\infty = { X_1^1,X_2^1,X_2^2,X_3^1,X_3^2,X_3^3,…}
    $$
    满足构造要求

独立性

设$A_1,A_2,\cdots,A_n$为$n$个事件,如果对任何$m\leq n$及1$\leq k_1< k_2< \cdots < k_m\leq n$, 有
$$
P\left(\bigcap_{j=1}^mA_{k_j}\right)=\prod_{j=1}^mP(A_{k_j})
$$
则称$ A_1,A_2,\cdots,A_n$ 相互独立.

设$n$维随机变量$(X_1,\cdots,X_n)$的联合分布函数为$F(x_1,\cdots,x_n)$,若对所有实数组$(x_1,\cdots,x_n)$均有
$$
F(x_1,\cdots,x_n)=F_{X_1}(x_1)\cdots F_{X_n}(x_n)
$$
成立,其中 $ F_{X_k}(x_k) $是关于$X_k$的边缘分布,则称$X_1,X_2,\cdots,X_n$相互独立。

Property

  1. $A_1,A_2,\cdots,A_n$​两两独立不一定相互独立.

  2. $$
    E\Big(\prod_{k=1}^nX_k\Big)=\prod_{k=1}^nE(X_k)
    $$

  3. $$
    Var\Big(\sum_{k=1}^nX_k\Big)=\sum_{k=1}^nVar(X_k)
    $$

条件概率,全概率公式,Bayes公式

设$B$是一个事件,且$P( B) > 0$. 则 事 件$B$发生的条件下事件$A$发生的条件概率为
$$
P(A|B)=\frac{P(A\cap B)}{P(B)}
$$

全概率公式:

设${B_n}$是$\Omega$的一个有限划分,且$P(B_n)>0.$则有
$$
P(A)=\sum_nP(B_n)P(A|B_n)
$$

贝叶斯公式:

设 ${ B_n}$是$\Omega$的一个有限划分,且$P(B_n)>0.$如果$P(A)>0$,则
$$
P(B_k|A)=\frac{P(B_k)P(A|B_k)}{\sum_{n}P(B_n)P(A|B_n)},k=1,2,\ldots,n.
$$

条件期望,条件方差,全期望公式

设$(X,Y)$是连续型随机变量,其联合概率密度函数$f(x,y)$。对固定的$y$若满足$f_Y(y)>0$,给定$Y=y$时,$X$的条件概率定义为:
$$
f_{X|Y}(x|y)=\frac{f(x,y)}{f_Y(y)}
$$

称作在$Y=y$的条件下,随机变量$X$的条件概率密度.称
$$
E[X|Y=y]=\int_{-\infty}^{+\infty}xf_{X|Y}(x|y)dx
$$
为在$Y=y$的条件下,随机变量$X$​的 条 件 期 望 .


$$
Var(X|Y=y)=E{[X-E(X|Y=y)]^2|Y=y}
$$
为在 $Y=y$ 的条件下,随机变量$X$的 条 件 方 差.

Property

  1. (全期望公式)$E(X)=E[E(X|Y)], E[g(X)]=E{E[g(X)|Y]}$​.

  2. $E(a|Y)=a$

  3. $E(aX+bZ|Y)=aE(X|Y)+bE(Z|Y)$

  4. 如果$X\geq0$, 则$E(X|Y)\geq0$.

  5. 如果$X$与}$Y$独立,则$E(X|Y)=E(X)$.

  6. $E[Xg(Y)|Y]=g(Y)E[X|Y]$.特别地,$E[g(Y)|Y]=g(Y)$.

  7. $E[X|Y,g(Y)]=E(X|Y).$

  8. $E[X-E(X|Y)]^{2}\leq E[X-g(Y)]^{2}$​

    $E(X|Y)$是所有用$g(Y)$来近似$X$中效果最好的.

  9. $D(X|Y=y)=E(X^{2}|Y=y)-[E(X|Y=y)]^{2}.$

  10. (全方差定理)$Var(X)=E[Var(X|Y)]+Var[E(X|Y)].$​

随机过程

设$( \Omega , \mathcal{F} , P)$是 概 率 空 间 , $T$是一参数集$T\subseteq\mathbb{R}$。若对每一个$t\in T, X( t)$ 是 $( \Omega , \mathcal{F} , P)$上的随机变量,则称随机变量族${ X( t) , t\in T}$​为 随 机 过 程 .

Mark

  1. 观察随机过程的两种视角:对于随机过程${X(t,\omega)|(t,\omega)\in T\times \Omega}$
    • 固定$\omega\in \Omega$,$X$是定义在$T$上的样本函数,称作实现;
    • 固定$t\in T$,$X$是定义在$\Omega$​上的随机变量,称作状态;

有限维分布(簇),Kolmogorov定理,数字特征

对任意有限个$t_1,\cdots,t_n\in T$,定义随机过程的$n$维 分 布 函 数 $F_{t_1,\cdots,t_n}(x_1,\cdots,x_n)\colon$
$$
F_{t_1,\cdots,t_n}(x_1,\cdots,x_n)=P(X(t_1)\leq x_1,\cdots,X(t_n)\leq x_n).
$$
随机过程的所有的一维分布,二维分布,$\cdots,n$维分布等的全体
$$
{F_{t_1,\cdots,t_n}(x_1,\cdots,x_n),t_1,\cdots,t_n\in T,n\geq1}
$$
称为随机过程${ X( t) , t\in T}$​ 的 有 限 维 分 布 簇 .

Property

  1. 对称性:对$( 1, 2, \cdots , n)$的任一排列$( j_1, j_2, \cdots , j_n) $,有
    $$
    \begin{aligned}&F_{t_{j_1},\cdots,t_{j_n}}(x_{j_1},\cdots,x_{j_n})\&=\quad P(X(t_{j_1})\leq x_{j_1},\cdots,X(t_{j_n})\leq x_{j_n})\&=\quad P(X(t_1)\leq x_{t_1},\cdots,X(t_n)\leq x_{t_n})\&=\quad F_{t_1,\cdots,t_n}(x_1,\cdots,x_n).\end{aligned}
    $$

  2. 相容性:对$m<n$,有
    $$
    F_{t_1,\cdots,t_m,t_{m+1},\cdots t_n}(x_1,\cdots,x_m,\infty,\cdots,\infty)=F_{t_1,\cdots,t_m}(x_1,\cdots,x_m).
    $$

Kolmogorov定理描述如下事实:

设分布函数族${F_{t_1,\cdots,t_n}(x_1,\cdots,x_n),t_1,\cdots,t_n\in T,n\geq1 }$ 满足上述的对称性和相容性,则必存在一个随机过程${X(t),t\in T}$使
$$
{F_{t_1,\cdots,t_n}(x_1,\cdots,x_n),t_1,\cdots,t_n\in T,n\geq1}
$$
恰好是${X(t),t\in T}$的有限维分布簇.

有限维分布簇完整地描述了随机过程的概率性质,但是实际过程中几乎无法得到完整的分布簇,因此采用数字特征描述随机过程也许是更好的办法.

  1. 均值函数:$\mu_X(t)=E[X(t)],t\in T$
  2. 方差函数:$Var_X(t)=E[(X-\mu_X(t))^2],t\in T$
  3. 协方差函数:$\gamma_X(s,t)=E[(X(s)-\mu_X(s))(X(t)-\mu_X(t))]$
  4. 自相关函数:$R_X(s,t)=E[X(s)X(t)]=\gamma_X(s,t)+\mu_X(s)\mu_X(t)$

严平稳过程,宽平稳过程

如果随机过程${X(t),t\in T}$对任意的$t_1,\cdots,t_n\in T$和任意的$h\textbf{, }$ 均满足$(X(t_1+h),\cdots,X(t_n+h))$与 $( X( t_1) , \cdots , X( t_n) )$具 有 相 同的联合分布,记为
$$
(X(t_1+h),\cdots,X(t_n+h))\stackrel{d}{=}(X(t_1),\cdots,X(t_n))
$$
则称${ X( t) , t\in T}$​为 严 平 稳 过 程 .

如果随机过程$X(t)$的所有二阶矩都存在,并且均值函数$E[X(t)]=\mu$,协方差函数$\gamma(t,s)$只与时间差$t-s$有关,则
称${ X( t) , t\in T}$为 宽 平 稳 过 程.

Mark

  1. 严平稳过程的有限维分布关于时间平移不变;

  2. 严平稳过程的主要性质和选取的起始点无关而和变量之间的距离有关;

  3. 宽平稳过程的协方差函数可以记为$\gamma(t)$,因为$$\gamma(s,t+s)=\gamma(0,t),s,t\in\mathbb{R}$$;

  4. 宽平稳过程:$\gamma(t)$是偶函数,$\gamma(0)=Var_X(t),|\gamma(\tau)\le\gamma(0)|$​,且具有非负定性,也即对于任意时刻$t_k$和实
    数$a_k, k = 1, 2, … ,N$,有
    $$
    \begin{aligned}\sum_{i=1}^N\sum_{j=1}^Na_ia_j\gamma(t_i-t_j)\geq0.\end{aligned}
    $$

    证明 $\mathbf A=(a_1,a_2,...,a_n),\mathbf Z=(E[t_1]-\mu,E[t_2]-\mu,...,E[t_n]-\mu)$ $0\le Var(\mathbf A^T \mathbf Z)=A^TE[ZZ^T]A=\sum_{i=1}^N\sum_{j=1}^Na_ia_j\gamma(t_i-t_j)$

遍历性

设${X(t),-\infty<t<\infty}$为一平稳过程,若
$$
\overline{X}=\lim_{T\to\infty}\frac1{2T}\int_{-T}^TX(t)dt=\mu
$$

或当参数空间为$T=\mathbb{Z}$时,
$$
\overline{X}=\lim_{N\to\infty}\frac1{2N+1}\sum_{k=-N}^NX(k)=\mu
$$
则称${ X( t) , t\in T}$的 均 值 有 遍 历 性 .


$$
\overline{\gamma}(\tau)=\lim_{T\to\infty}\frac{1}{2T}\int_{-T}^T(X(t)-\mu)(X(t+\tau)-\mu)dt=\gamma(\tau)
$$
或当参数空间为$T=\mathbb{Z}$时,
$$
\overline{\gamma}(\tau)=\lim_{N\to\infty}\frac1{2N+1}\sum_{k=-N}^N(X(k)-\mu)(X(k+\tau)-\mu)=\gamma(\tau)
$$
则称${ X( t) , t\in T}$的 协 方 差 有 遍 历 性.

若随机过程的均值和协方差函数都具有遍历性,则称此随机过程有遍历性.

均值遍历性定理:

  1. 设${X(t),-\infty<t<\infty}$是平稳过程,其协方差函数为$\gamma(\tau)$,则$X(t)$的均值有遍历性的充分必要条件是
    $$
    \lim_{T\to\infty}\frac1T\int_0^{2T}\left(1-\frac\tau{2T}\right)\gamma(\tau)d\tau=0.
    $$

  2. 设${X(t),t=0,\pm1,\pm2,\cdots}$是平稳序列,其协方差函数为$\gamma ( \tau ) \textbf{, 则 }X( t)$的均值有遍历性的充分必要条件是
    $$
    \lim_{N\to\infty}\frac{1}{N}\sum_{\tau=0}^{N-1}\gamma(\tau)=0.
    $$

Proof

首先,计算$\overline{X}$的均值和方差。记
$$
\overline{X}T=\frac{1}{2T}\int{-T}^TX\left(t\right)\mathrm{d}t
$$
则有
$$
E(\overline{X})=E(\lim_{T\to\infty}\overline{X}T)=\lim{T\to\infty}E(\overline{X}T)=\lim{T\to\infty}\frac{1}{2T}\int_{-T}^TE[X(t)]\mathrm{d}t=\mu
$$
进而
$$
\begin{aligned}Var(\overline{X})&=E{[\overline{X}-E(\overline{X})]^2}\&=E_t^|\lim_{t\to\infty}\left[\frac1{2T}\int_{-T}^T(X(t)-\mu)\mathrm{d}t\right]^2\&=\lim_{T\to\infty}\frac1{4T^2}E^|\int_{-T}^T[X(t)-\mu]\mathrm{d}t|^2\&=\lim_{T\to\infty}\frac1{4T^2}\int_{-T}^T\int_{-T}^TE\langle[X(t)-\mu][X(s)-\mu]\rangle\mathrm{d}t\mathrm{d}s\&=\lim_{T\to\infty}\frac1{4T^2}\int_{-T}^T\int_{-T}^T\gamma(t-s)\mathrm{d}t\mathrm{d}s\end{aligned}
$$
在上述积分中,做变换$$\begin{cases}\tau=t-s\v=t+s\end{cases}$$,则变换的 Jacobi 行列式值为:$$J=\left|\begin{array}{cc}1&-1\1&1\end{array}\right|^{-1}=\dfrac{1}{2}$$
积分区域变换为顶点分别在$\tau$轴和$\upsilon$ 轴上的菱形区域
$$
D:-2T\leqslant\tau\pm v\leqslant2T
$$
由于$\gamma(\tau)$是偶函数,故
$$
\begin{aligned}\operatorname*{lim}{T\to\infty}\frac{1}{4T^{2}}\cdot\frac{1}{2}\int\int{D}\gamma(\tau):\mathrm{d}\tau\mathrm{d}v&=\lim_{T\to\infty}\frac{1}{8T^{2}}\int_{-2T}^{2T}\gamma(\tau):\mathrm{d}\tau\int_{-(2T-|\tau|)}^{2T-|\tau|}:\mathrm{d}v\&=\lim_{T\to\infty}\frac{1}{4T^{2}}\int_{-2T}^{2T}\gamma(\tau):(2T-|\tau|):\mathrm{d}\tau\&=\lim_{T\to\infty}\frac{1}{2T^{2}}\int_{0}^{2T}\gamma(\tau):(2T-\tau):\mathrm{d}\tau\&=\lim_{T\to\infty}\frac{1}{T}\int_{0}^{2T}\gamma(\tau)\Big|:1-\frac{\tau}{2T}\Big|:\mathrm{d}\tau\end{aligned}
$$

推论

  1. 若$\int_{-\infty}^{\infty}|\gamma(\tau)|d\tau<\infty$,则均值遍历性定理成立.
  2. 对于平稳序列而言,若$\gamma(\tau)\to0(\tau\to\infty)$​,则均值遍历性定理成立.

平稳增量,独立增量

如果对任何$t_1,t_2,\cdots t_n\in T,t_1<t_2<\cdots<t_n$随机变量$X(t_2)-X(t_1),\cdots,X(t_n)-X(t_{n-1})$是相互独立的,则称${ X( t) , t\in T}$ 为 独 立 增 量 过 程 .
如 果 对 任 何 $t_1, t_2$,有 $X( t_1+ h) - X( t_1) \overset {d}{\operatorname* { \operatorname* { = } } }X( t_2+ h) - X( t_2) $,则称${X(t),t\in T}$为是平稳增量过程.

有独立增量和平稳增量的过程称为平稳独立增量过程.

Property

  1. 假设${X(t),t\geq0}$是一个独立增量过程,$X(0)=0.$则$X(t)$具有平稳增量的充分必要条件是:其特征函数具有可乘性,即
    $$
    \psi_{X(t+s)}(a)=\psi_{X(t)}(a)\psi_{X(s)}(a)
    $$

  2. 设${ X( t) , t\geq 0}$是 一 个 平 稳 独 立 增 量 过 程 , $X( 0) = 0.$

    • $\mu(t)=mt.$​
    • $Var(t)=\sigma^2 t$
    • $\gamma ( s, t) = \sigma ^2\min ( s, t) .$其中$m,\sigma^2$​均是常数。

    proof:注意到
    $$
    \mu(s+t)=E[X(s+t)-X(s)]+E[X(s)]=\mu(t)+\mu(s)\
    Var(s+t)=Var[X(s+t)-X(s)]+Var[X(s)]=Var(s)+Var(t)
    $$
    这是Cauchy方程,简单验证连续性即可;

    其次,假设$s<t$,
    $$
    \begin{aligned}
    \gamma(s,t)&=E[X(s)X(t)]-E[X(s)]E[X(t)]\
    &=E[X(s)]E[X(t-s)]+E[X^2(s)]-E[X(s)]E[X(t)]\
    &=\sigma^2 s
    \end{aligned}
    $$

Remark

  • Borel-Cantelli第二引理证明?

平稳白噪声序列

设${X_n,n=0,1,\cdots}$为一列两两互不相关的随机变量序列,满足$E(X_n)=0,n=0,1,2\cdots$,且
$$
\left.E(X_mX_n)=\left{\begin{array}{ll}0\quad,&\text{当}m\neq n\\sigma^2,&\text{当}m=n\end{array}\right.\right.
$$

  • 白噪声序列${X_n,n=0,1,\cdots}$为平稳的.

    这是因为协方差函数 $cov( X_n, X_m) = E( X_nX_m)$只与$m- n\textbf{有 关 }.$

滑动平均序列

设$\left { \varepsilon _n, :n= 0, \pm 1, \pm 2, \cdots \right }$为 一 列 互 不 相 关 的 且 有 相 同 均 值 $m$和方差$\sigma^2$的平稳白噪声序列。

设$a_1,a_2,\cdots,a_k$为任意$k$个实数。如下滑动平均序列具有平稳性:
$$
X_n=a_1\varepsilon_n+a_2\varepsilon_{n-1}+\cdots+a_k\varepsilon_{n-k+1}=\sum_{i=1}^k a_i\varepsilon_{n+1-i},\quad n=0,\pm1,\pm2,\cdots
$$
对于均值,保持不变:
$$
E[X_n]=E[\sum_{i=1}^k a_i\varepsilon_{n+1-i}]=\mu\sum_{i=1}^k a_i
$$
协方差
$$
\gamma(\tau)=\gamma(n,n+\tau)=\sigma^2\sum_{i=1}^k a_i a_{i+\tau}(0\le \tau \le k-1)
$$
滑动平均序列均值具有遍历性,这是因为$k$是固定的数,
$$
\tau\to \infty,\gamma(\tau)\to 0
$$

Fix-Neyman(1951)疾病、死亡模型

考虑一个包含两个健康状态$S_1,S_2$以及两个死亡状态$S_3,S_4$
(即由不同原因引起的死亡)的模型。若个体病愈,则认为它处于状态$S_1$,若它患病,则它处于$S_2$,个体可以从$S_1,S_2$进入$S_3$和$S_4$, 易见这是一个马氏链的模型,转移矩阵为
$$\left.\mathbf{P}=\left(\begin{array}{cccc}p_{11}&p_{12}&p_{13}&p_{14}\p_{21}&p_{22}&p_{23}&p_{24}\0&0&1&0\0&0&0&1\end{array}\right.\right)$$

离散排队系统

考虑顾客到达一服务台排队等待服务的情况。若服务台前至少有一顾客等待,则在一单位时间周期内,服务员完成一个顾客的服务后,该顾客立即离去;若服务台前没有顾客,则服务员空闲。在一个服务周期内,顾客可以到达,设第$n$个周期到达的顾客数$\xi_n$是一个取值为非负整数的随机变量,且${\xi_1,\xi_2,\cdots}$相互独立
同分布。

设$X_n$为第$n$个周期开始时服务台前的等待服务的顾客数,验
证${ X_n, n= 0, 1, 2, \cdots } \textbf{是 Markov链 , 并 写 出 转 移 概 率 。 }$

M/G/1排队系统

在$M/G/1$排队系统中,$M$表示顾客到达服务台的时间间隔,假设为独立同分布,概率密度为$g(t).$ 若服务员空闲,则顾客立刻就能得到服务,否则就需要等待排队。$G$表示每位顾客的服务时间,假设为独立同指数分布(参数为λ),且与顾客到达过程相互独立。数字1表示只有1名服务员。
设$X_n$表示第$n$位顾客到达服务台时系统内的顾客数(包括该顾
客)、验证${ X_n, n= 1, 2, \cdots } \textbf{是 Markov链 , 并 写 出 转 移 概 率 。 }$

(s, S)备货策略

设某商店使用$(s,S)$备货策略,每天早上检查某商品的剩余量,
设为$x$,定购额为
$$\left.\left{\begin{array}{ll}0,&\text{若}x\geq s\S-x,&\text{若}x<s\end{array}\right.\right.$$
设定货和进货不需要时间,每天的需求量$Y_n$独立同分布
且$P{Y_n=j}=a_j,j=0,1,2,\cdots$.设$X_n$为第$n$天结束时的存货量,
验证${ X_n, n= 1, 2, \cdots } \textbf{是 Markov链 , 并 写 出 转 移 概 率 。 }$

分支过程

考虑一个能产生同类后代的个体组成的群体.每一个体生命结束时以概率$p_j(j=0,1,2,3,\cdots)$产生了$j$个新的后代,与别的个体产生的后代个数相互独立.

初始的个体数以$X_0$表示,称为第零代的总数;第零代的后代构成第一代,其总数记为$X_1$,第一代的每个个体以同样的分布产生第二代,$\cdots$.一般地,以$X_n$记第$n$代的总数.

此Markov链${ X_n, n= 0, 1, 2, \cdots }$ 称 为 分 支 过 程 .

现在假设群体是从单个祖先开始的,即$X_0= 1$,则 有
$$
X_n=\sum_{i=1}^{X_{n-1}}Z_{n-1,i}
$$
其中$Z_{n-1,i}$表示第$n-1$代的第$i$个成员的后代的个数。

  1. 第$n$代的平均个体数
    $$
    \begin{aligned}
    E[X_n]&=E[E(X_n|X_{n-1})]\
    &=\mu E[X_{n-1}]\
    &=\mu^n\
    \end{aligned}
    $$
    其中$\mu =\sum_{i=0}^\infty ip_i$表示每个个体的后代个数的均值,从而可以看出,若$μ < 1$,则平均个体数单调下降趋于0.若$μ = 1$时,各代平均个体数相同.当$μ > 1$​时,平均个体数按指数阶上升至无穷.

    直觉上看家族消亡和$\mu$有关.

  2. 考虑群体最终会消亡的概率$π_0$, 设$0< p_0< 1$, 则$\pi _0= 1 \Longleftrightarrow \mu \leq 1$

    由$\pi_0$的表达式$\pi_0=\sum_{j=0}^\infty \pi_0^jp_j:=F(\pi_0)$ 知它是直线$y=x$和曲线$y=F(x)$交点的横坐标,显然(1,1)是一个交点.

    • 当$p_0+p_1=1$时,$y= F( x)$是 一 条 直 线 ,方程只有唯一解$\pi_0=1$,家族必定消亡,此时
      $$
      \mu=\sum_{i=0}^\infty jp_j=p_1<1
      $$

    • 当$p_0+p_1<1$时,由于
      $$
      \begin{aligned}&F’(x)\quad=\quad\sum_{j=1}^\infty jx^{j-1}p_j>0,\quad0<x<1\&F’’(x)\quad=\quad\sum_{j=2}^\infty j(j-1)x^{j-2}p_j>0,\quad0<x<1\end{aligned}
      $$
      可见$F( x) $是 单 调 增 加 的 凸 函 数 .

      • $\forall s\in(0,1), F( s) > s, F( 1) = 1$, 方 程 $\pi _0= F( \pi _0)$只 有 唯 一 的解$\pi_0=1;$​

        此时$F^\prime(1)\leq1$而 $F^\prime(1)=\sum_{j=0}^\infty jp_j=\mu$,从而$\mu\leq1.$

      • 存在一个$0<s<1$使得 $F(s)=s$,断言,$\pi_0$必定取值为$s$,为 此 只 需 证 明 $\pi _0$是方程的最小解.

        数学归纳法,$$\pi=\sum_{j=0}^\infty\pi^jp_j\geq\pi^0p_0=p_0=P{X_1=0}$$

        假设$\pi \geq P{ X_n= 0}$ ,则
        $$
        \begin{aligned}P{X_{n+1}=0}&=\quad\sum_{j=0}^\infty P{X_{n+1}=0|X_1=j}\cdot p_j\&=\quad\sum_{j=0}^\infty P{X_n=0}^j\cdot p_j\&\leq\quad\sum_{j=0}^\infty\pi^jp_j=\pi\end{aligned}
        $$
        从而对一切$n$,$\pi\geq P{X_n=0}.$
        $\lim_{n\to\infty}P{X_n=0}=P{\text{群体最终灭绝}}=\pi_0$,故$\pi\geq\pi_0.$这就证明了在这种情况下$\pi_0$取值应为$s.$

        容易看出$F’(1) = μ > 1$.此时$\pi<1$,因此等价关系成立

  3. 在实际应用中,考虑一个群体的真实增长时,分支过程的假定在群体达到无限之前就不成立了(比如独立同分布性).但另一方面,利用分支过程研究消亡现象是有意义的,因为一般灭绝常常发生在过程的早期.

人口结构变化的Markov链模型

考虑社会的教育水平与文化程度的发展变化,可以建立如下模型:

将全国所有16岁以上的人口分为文盲、初中、高中(含中专)、大学(含大专)、中级技术人才、高级技术人才、特级专家等7类,结构的变化为升级、退化(如,初中文化者会重新变为文盲)、进入 (年龄达到16岁或移民进入)迁出(死亡或移民国外).

用$(n_1(t),n_2(t),\cdots,n_7(t))$表示在$t$年各等级的人数;

$N( t) = \sum _{i= 1}^7n_i( t)$为 全 社 会 16岁 以 上 人 口 总 数 (简 称 为 总 人 数 );

以$q_{ij}$记每年从$i$级转为$j$级的人数在$i$级人数中的百分比,则
$$
\mathbf{Q}=(q_{ij})_{7\times7}
$$
是一个准转移矩阵(每行所有元素之和$\leq1).$

再考虑进入与迁出,记$w_i$为每年从$i$级迁出占$i$级总人数的比例,$r_i$为每年进入$i$级的人数占总进入人数的比例,则
$$
\sum_{j=1}^7q_{ij}+w_i=1,\quad r_i\geq0,\quad\sum_{i=1}^7r_i=1
$$
记$R(t)$为总进入人数,$W(t)$为总迁出人数,则
$$
\begin{aligned} N(t+1) &= N(t)+R(t)-W(t)\ n_j(t+1) &= \sum_{i=1}^7n_i(t)q_{ij}+r_jR(t)-n_j(t)w_j\end{aligned}
$$
令$$M(t)=N(t+1)-N(t)=R(t)-W(t)$$.

设总人数以常数百分比$\alpha$增长(可以为负增长),即
$$
M(t)=\alpha N(t)\ \alpha=\frac{N(t+1)}{N(t)}-1
$$
于是
$$
\begin{aligned}\frac{n_j(t+1)}{N(t+1)}&=\quad\frac{N(t)}{N(t+1)}[\sum_{i=1}^7\frac{n_i(t)}{N(t)}q_{ij}+r_j\frac{R(t)}{N(t)}-\frac{n_j(t)}{N(t)}w_j]\&=\quad(\frac1{1+\alpha})[\sum_{i=1}^7\frac{n_i(t)}{N(t)}q_{ij}+r_j\frac{R(t)}{N(t)}-\frac{n_j(t)}{N(t)}w_j]\end{aligned}
$$
记$a_j(t)=\frac{n_j(t)}{N(t)}$,上式可改写为
$$
\begin{aligned}a_j(t+1)&=\frac{1}{1+\alpha}[\sum_{i=1}^{7}a_i(t)q_{ij}+r_j\frac{R(t)}{N(t)}-w_ja_j(t)] \end{aligned}
$$
由$R(t)=W(t)+M(t)$,可故写为
$$
a_j(t+1)=\frac{1}{1+\alpha}[\sum_{i=1}^7a_i(t)(q_{ij}+r_jw_i)-w_ja_j(t)+\alpha r_j]
$$
这是由于
$$
\frac{W(t)}{N(t)}=\frac{\sum_{i=1}^7n_i(t)w_i}{N(t)}=\sum_{i=1}^7a_i(t)w_i
$$
特别地,当$\alpha=0 , a_j(t+1)=\sum_{i=1}^7a_j(t)(q_j+r_jw_i)-w_ja_j(t)$;

记$\mathbf{a}(t)=(a_1(t),\cdots,a_7(t)), \mathbf{P}=(\widetilde p_{ij})$

其中
$$
\widetilde{p}{ij}=
\begin{cases}
q
{ij}+r_jw_i&,i\neq j\
q_{jj}+r_jw_j-w_j&,i=j
\end{cases}
$$
则上式变为
$$
a(t+1)=\mathbf{a}(t)\widetilde{\mathbf{P}}
$$
这是一个以$\widetilde{\mathbf{P}}$为转移阵的Markov链,在$t$时刻分布满足的方程.

我们希望人口维持在比较合理的稳定水平$a^*$,文盲不太多,专家也不太多,并且从现在的$a(0)$出发,通过控制人口进入各级的比例$r=(r_1,\cdots,r_7)$来尽快地达到这个稳定水平.为此我们讨论一下在不同的r下全部可能的稳定结构.由于

$$
\mathbf{a}= \mathbf a\cdot \widetilde P
$$

$$
\mathbf{a}=\mathbf{a}(\mathbf{Q}+(w_ir_j)-(w_j\delta_{ij}))=\mathbf{a}\mathbf{Q}+(\mathbf{a}\mathbf{w}^T)\mathbf{r}-(a_1w_1,\cdots,a_7w_7)
$$
其 中
$$
\mathbf{w} = ( w_1, \cdots , w_7) , \textbf{r}= ( r_1, \cdots , r_7) .
$$
当数$\mathbf{aw^T}\neq0$时$$\mathbf{r=aI-Q+(w_j\delta_{ij})^{-1}}$$即$\mathbf{a=(aw^{T})\cdot r(I-Q+(w_j\delta_{ij}))^{-1}.}$

因 为 要 求 $r_i\geq 0$. 从而$a_j\geq \sum {i= 1}^7a_iq{ij}- a_jw_j( \forall j)$,这 样 对 于
$$
\forall\mathbf{a}\in\mathcal{A}\doteq{\mathbf{a}:a_j\geq\sum_{i=1}^7a_iq_{ij}-a_jw_j,\forall j},
$$
找出$r$使其满足
$$
\mathrm{a=aQ+aw^{T}r-a(w_i\delta_{ij})=a\cdot\widetilde{P}}
$$
从而对于此$r,a$是一个稳定的结构.

Yule 过程

设群体中各个生物体的繁殖是相互独立,强度为$\lambda$的Poisson过程,并且群体中没有死亡,此过程称为Yule过程,也叫纯生过程;

设在时刻0群体中有1个个体,则群体将有的个体数是${1,2,3\cdots}$ ;

以$T_i(i\geq1)$记群体数目从$i$增加到$i+1$所需的时间,由Yule过程定义,当群体数目为$i$时,这$i$个个体是以相互独立的Poisson过程来产生后代的;

由Poisson过程的可加性知,这相当于一个强度为$\lambda i$的Poisson过程;由Poisson过程的平稳独立增量性,易知$T_i$与状态的转移是独立的 $(i\geq1)$,并且${T_i}$是相互独立且服从参数为$\lambda i$的指数分布;

这就说明了Yule过程是一个连续时间Markov链。

生灭过程

设马尔可夫链${X(t),t\geq0}$,状态空间$\mathcal{S}={0,1,2,\cdots}$,若转移概率矩阵$\mathbf P(t)=(p_{ij}(t))$满足:当$h$充分小时,
$$
\begin{aligned}&\begin{cases}p_{i,i+1}(h)=\lambda_ih+o(h),&\lambda_i\geq0,i\geq0,\p_{i,i-1}(h)=\mu_ih+o(h),&\mu_i\geq0,i\geq1,\p_{ii}(h)=1-(\lambda_i+\mu_i)h+o(h),&\mu_0=0,i\geq0,\\sum_{|j-i|\geq2}p_{ij}(h)=o(h),&i\geq0.\end{cases}\end{aligned}
$$
则称该过程为生灭过程.

根据生灭过程的定义,当$h$充分小时,状态的转移只有三种可能: $i\to i+1,i\to i-1,i\to i$这个特性是许多生物群体,例子裂变,信号计数等的共同特点,因而可以作为这一类为物理自然现象的数学模型。

生灭过程的$\mathbf Q$矩阵是保守的:
$$
\left.\mathbf{Q}=\left(\begin{array}{ccccccc}-\lambda_0&\lambda_0&0&0&0&0&\cdots\\mu_1&-(\lambda_1+\mu_1)&\lambda_1&0&0&0&\cdots\0&\mu_2&-(\lambda_2+\mu_2)&\lambda_2&0&0&\cdots\0&0&\mu_3&-(\lambda_3+\mu_3)&\lambda_3&0&\cdots\\vdots&\vdots&\vdots&\cdots&\vdots&\vdots&\ddots\end{array}\right.\right)
$$
若${X(t),t\geq0}$为生灭过程,则$\mathbf{P}(t),\mathbf{Q}$满足Kolmogorov微分方程

  1. 向后方程
    $$
    p_{ij}’(t)=\begin{cases}-\lambda_0p_{0j}(t)+\lambda_0p_{1j}(t),&i=0\-(\lambda_i+\mu_i)p_{ij}(t)+\lambda_ip_{i+1,j}(t)+\mu_ip_{i-1,j}(t),&i>0\end{cases}
    $$

  2. 向前方程
    $$
    p_{ij}’(t)=\begin{cases}-p_{i0}(t)\lambda_0+p_{i,1}(t)\mu_1,&j=0\-p_{ij}(t)(\lambda_j+\mu_j)+p_{i,j-1}(t)\lambda_{j-1}+p_{i,j+1}(t)\mu_{j+1},&j>0\end{cases}
    $$

设$\tau_i$是Markov链到达状态$i$后,离开该状态前的停留时间.

对于生灭过程,$\tau_i$服从参数为$\lambda_i+\mu_i$的指数分布,并且其在### 各个状态的停留时间相互独立. 定义$T_0=0$,
$$
T_n=\inf{t>T_{n-1}|X(t)\neq X(T_{n-1})},n\geq1.
$$
$T_n$是Markov链${X(t),t\geq0}$的第$n$次转移时刻.

设$Y_n= X( T_n)$ , 则${ Y_n, n= 0, 1, 2, \cdots }$​是 离 散 时 间 Markov链,其一步转移概率矩阵K:
$$
\left.\mathbf{K}=\left(\begin{array}{ccccccc}q_0&p_0&0&0&0&0&\cdots\q_1&0&p_1&0&0&0&\cdots\0&q_2&0&p_2&0&0&\cdots\0&0&q_3&0&p_3&0&\cdots\\vdots&\vdots&\vdots&\cdots&\vdots&\vdots&\ddots\end{array}\right.\right)
$$
其中$p_0=1-q_0$
$$
q_0=\begin{cases}1,&\lambda_0=0,\0,&\lambda_0>0,\end{cases}\p_i=\frac{\lambda_i}{\lambda_i+\mu_i},q_i=\frac{\mu_i}{\lambda_i+\mu_i},\quad i\geq1.
$$
生灭过程描述的情况如下:已知时刻$t$时有$i$个生物时,再等待$\tau_i$后,以概率$p_i$增加一个生物,或者以概率$q_i$减少一个生物. 这里$\tau_i\sim$Ехр$(\lambda_i+\mu_i).$

M/M/S排队系统

顾客的来到是参数为λ的Poisson过程。服务员数为$s$个,每个顾客接受服务的时间服从参数为$\mu$的指数分布。遵循先来先服务、 服务员没有|空闲就排队的原则,以$X(t)$记$t$时刻系统中的总人数, 则${X(t),t\geq0}$是一个生灭过程(来到看作出生,离去看作死亡)。若以$\lambda_n,\mu_n$分别记系统中有$n$个顾客时的来到率和离去率。则来到率是恒定参数为$\lambda$的Poisson过程$(\lambda_n=\lambda)$;离去过程的参数会发生变化:
$$
\left.\mu_n=\left{\begin{array}{ll}n\mu,&1\leq n\leq s\s\mu:,&n>s\end{array}\right.\right.
$$

Markov链

Markov过程

对于${X(t),t\in T}$为一随机过程,$S$为其状态空间,若对参数集中的任意$n$个时刻$t_1<t_2<\cdots<t_n\in T$,任意的$x_1,x_2,\ldots,x_n\in\mathcal{S}$ 有
$$
\begin{aligned}&P{X(t_n)\leq x_n|X(t_1)=x_1,X(t_2)=x_2,\cdots,X(t_{n-1})=x_{n-1}}\=&P{X(t_n)\leq x_n|X(t_{n-1})=x_{n-1}},\end{aligned}
$$
即随机变量$X(t_n)$在已知${X(t_1)=x_1,\cdots,X(t_{n-1})=x_{n-1}}$ 情况下,条件分布函数只与${X(t_{n-1})=x_{n-1}}$有关,则称随机过程${ X( t) , t\in T}$为Markov过程.

这条性质也就是著名的Markov性,也就是无记忆性或无后效性;

若对于离散的状态集的随机过程也具有Markov性,那么就变成Markov链:

随机过程${X_n,n=0,1,2,\cdots}$称为Markov链,若它只取有限或可列个值(若不另外说明,以非负整数集${0,1,2,\cdots}$来表示),并且对任意的$n\geq 0$及 任 意 状 态 $i_0, i_1\cdots , i_n, i_{n+ 1}\in \mathcal{S}$ 有

$$
\begin{aligned}P{X_{n+1}=i_{n+1}|X_0=i_0,X_1=i_1,\cdots,X_n=i_n}&=P{X_{n+1}=i_{n+1}|X_n=i_n}.\end{aligned}
$$
其中$X_n=i$表示过程在时刻$n$处于状态$i.$

转移概率(矩阵)

称Markov链${X_n,n=0,1,2,\cdots}$中的条件概率$P{X_{n+1}=j|X_n=i}$为一步转移概率,简称转移概率,记为$p_{ij}$.它代表处于状态$i$的过程下一步转移到状态$j$的概率.

当Markov链的状态为有限时,称为有限链,否则称为无限链。但无论状态有限还是无限,我们都可以将$p_{ij}(i,j\in\mathcal{S})$排成一个矩阵的形式,令
$$
\left.\mathbf{P}=(p_{ij})=\left(\begin{array}{cccc}p_{00}&p_{01}&p_{02}&\cdots\p_{10}&p_{11}&p_{12}&\cdots\p_{20}&p_{21}&p_{22}&\cdots\\vdots&\vdots&\vdots&\ddots\end{array}\right.\right)
$$
称P为转移概率矩阵,简称转移矩阵.这显然是个随机矩阵,满足下面性质:

  • $p_{ij}\ge 0$;
  • $\sum_{j\in S}p_{ij}=1, \forall i \in S$​

Mark

关于判定Markov链有一个小定理十分实用:

设随机过程${X_n,n=0,1,2\cdots}$ 满足

  1. $X_n= f( X_{n- 1}, \xi _n) , ( n\geq 1)$, 其 中 $f: \mathcal{S} \times \mathcal{S} \to \mathcal{S}$,且 $\xi _n$取 值
    在$\mathcal{S}$上。
  2. ${\xi_n,n=1,2,\cdots}$为独立同分布随机变量,且$X_0$与${\xi_n,n=1,2,\cdots}$也相互独立;

则${X_n,n=0,1,2\cdots}$是Markov链,且一步转移概率为$$p_{ij}=P(f(i,\xi_1)=j)$$

Chapman-Kolmogorov方程,n步转移概率

称条件概率
$$
p_{ij}^{(n)}=P{X_{m+n}=j|X_m=i},:i,j\in S,m\geq0,n\geq1\quad(1
$$
为Markov链的$n$步 转 移 概 率 , 相 应 地 称$P^{(n)} = ( p_{ij}^{( n) })$ 为 $n$步 转 移矩阵

为求n步转移概率,有如下C-K方程,表述如下:

$\begin{aligned}\text{对一切}n,m\geq0,i,j\in\mathcal{S}\text{有}\end{aligned}$

  1. $$p_{ij}^{(m+n)}=\sum_{k\in\mathcal{S}}p_{ik}^{(m)}p_{kj}^{(n)}$$
  2. $\mathbf{P}^{(n)}=\mathbf{P}\cdot\mathbf{P}^{(n-1)}=\mathbf{P}\cdot\mathbf{P}\cdot\mathbf{P}^{(n-2)}=\cdots=\mathbf{P}^n$

概率分布向量

记$\boldsymbol{\pi }^{( n) }= ( \pi _1^{( n) }, \pi _2^{( n) }, \cdots , \pi _i^{( n) }, \cdots )$为$n$时刻$X_n$的 概 率 分 布 向 量 ,其中$\pi_i^{(n)}=P(X_n=i).$

称$\boldsymbol{\pi}^{(0)}=(\pi_1^{(0)},\pi_2^{(0)},\cdots,\pi_i^{(0)},\cdots)$为Markov链的初始分布.

Property

  1. $\sum_i\pi_i^{(n)}=1$ 对任意的$n$均成立。
  2. 一个Markov链的特性完全由一步转移矩阵P和初始分布向量$\pi^{(0)}$决定;
  3. $\boldsymbol{\pi}^{(n+1)}=\boldsymbol{\pi}^{(n)}\mathbf{P},\boldsymbol{\pi}^{(n)}=\boldsymbol{\pi}^{(0)}\mathbf{P}^n.$

吸收态,可达性和互通性,可约性

称状态$i\in \mathcal{S}$ 为 吸收态 , 如果 $p_{ii}= 1.$

若$p_{ii}<1$,则称状态$i\in \mathcal S$为过渡态;

称状态$i$可 达 状 态 $j, ( i, j\in \mathcal{S} )$,若存在$n\geq0$使得$p_{ij}^{(n)}>0$,记为$i\to j$.

若 同 时 有$j\to i$, 则 称 $i$与$j$互 通 , 记 为 $i\leftrightarrow j$​;

任何两个互通的状态归为一类,若markov链只存在一类,那么称这是不可约的,否则是可约的;

Mark

互通是一种等价关系,满足自反性,对称性和传递性;

互通的状态形成等价类;

常返性

对于任何状态$i,j$,以$f_{ij}^{(n)}$记从$i$出发经$n$步后首次到达$j$的概率:
$$
f_{ij}^{(n)}=P{X_n=j,X_k\neq j,k=1,2,\cdots,n-1|X_0=i},:n\geq1
$$
则$f_{ij}=\sum_{n=1}^\infty f_{ij}^{(n)}$为由$i$出发,经有限步首次到达$j$的概率。

定义平均回返时间
$$
\mu_i=\sum^\infty nf_{ii}^{(n)}
$$

  • 若$f_{ii}=1\Leftrightarrow \sum_{i=1}^n p_{ii}^n=\infty $,称为常返状态;
    • $\mu_i<\infty$,则称$i$​为正常返状态;
    • $\mu_i=\infty$,则称$i$为零常返状态;
  • 若$f_{ii}<1$,则称$i$为瞬过状态,$\Leftrightarrow \sum_{i=1}^n p_{ii}^n=\frac{1}{1-f_{ii}}<\infty $

Property

  1. 若$i\leftrightarrow j$,则$i,j$同为常返或非常返状态.因此常返性是一个类性质。.
  2. 若$i\leftrightarrow j$且$i$为常返状态,则$j$必为常返状态,且$f_{ji}=1$.

Mark

证明上述等价命题需要用到小引理:

对任意状态$i,j$及1$\leq n< + \infty$ 有
$$
p_{ij}^{(n)}=\sum_{l=1}^nf_{ij}^{(l)}p_{jj}^{(n-l)}
$$

周期性

若集合${n:n\geq1,p_{ii}^{(n)}>0}$非空,则称该数集的最大公约数
$$
d=d(i)
$$
为状态$i$的周期 .

若$d> 1$,称$i$为 周 期 的 ;

若$d= 1$,称$i$为非周期的;

规定上述集合为空集时,称$i$的周期为无穷大;

基本极限定理表述如下:

若状态$i$是周期为$d$的常返状态,则
$$
\lim_{n\to\infty}p_{ii}^{(nd)}=\frac d{\mu_i}
$$
当$\mu _i= \infty$时,$\frac d{\mu_i}=0.$​

当$i$是瞬过状态,$\sum_{n=1}^\infty p_{ii}^{(n)}<\infty$,必有$\lim_{n\to \infty}p_{ii}^{(n)}=0$​;

若$j$为瞬过(非常返)状态或零常返状态,则$\forall i\to j,i\in\mathcal{S}$
$$
\lim_{n\to\infty}p_{ij}^{(n)}=0
$$

Mark

若状态$i$的周期为$d$并不意味着$p_{ii}^{(d)}>0$​;

设$i$为常返状态,则$i$为零常返状态 $\Longleftrightarrow \lim_{n\to\infty} p_{ii}^{(n)}=0$​;

设$i\leftrightarrow j$为常返状态,则$i,j$​同为正常返状态或零常返状态.

遍历性

若$i$为正常返状态,且是非周期的,则称$i$为 遍 历 状 态.吸收态是遍历状态的一种特殊情况。
如果一个Markov链的所有状态都是遍历状态,则称其为遍历Markov链,简称遍历链。

Property

  1. 类性质:若状态$i,j$属于同一类,则$d(i)=d(j)$;

  2. 若Markov链为不可约,正常返,且非周期,则对任意$i, j\in S\textbf{, 有 }$
    $$
    \lim_{n\to\infty}p_{ij}^{(n)}=\frac1{\mu_j}
    $$

  3. 有限状态的Markov链没有零常返状态;

  4. 有限状态的Markov链不可能全为瞬过状态;

  5. 不可约的有限Markov链状态都是正常返的;

  6. 若Markov链有一个零常返状态,那么必然有无限个零常返状态;

平稳分布,极限分布

一个定义在状态空间$S$上的概率分布 $\pi=(\pi_1,\pi_2,\cdots,\pi_i,\cdots)$称为Markov链的平稳分布,如有
$$
\pi=\pi\mathrm{P}
$$
即$\forall j\in\mathcal{S}$,有
$$
\pi_j=\sum_{i\in S}\pi_ip_{ij}
$$
若$\lim_{n\to\infty}\pi_j^{(n)}=\pi_j^$存在,$j\in\mathcal{S}$,则称$\pi^=(\pi_1^,\pi_2^,\cdots,\pi_j^*,\cdots)$为Markov链的极限分布.

Property

  1. 对于不可约的遍历Markov链,极限分布存在:
    $$
    \pi_j^*=\lim_{n\to\infty}p_{ij}^{(n)}=\frac{1}{\mu_j},\quad j\in\mathcal{S}
    $$

  2. 对于不可约、非周期的Markov链,

    • 若 它 是 遍 历 的 , 则 平 稳 分 布 为$\pi _j= \pi _j^* = \lim {n\to \infty }p{ij}^{( n) }> 0$, $j\in\mathcal{S}$,并且是唯一的平稳分布;
    • 若状态都是瞬过的或全为零常返的,则平稳分布不存在.

Mark

对于不可约的遍历Markov链,其极限分布等于平稳分布,而后者的求解只是一个线性齐次方程问题,因此这个定理给我们一个通过先求解平稳分布(极限分布)得到平均回返时间的一个办法.

连续时间的Markov链

随机过程${X(t),t\geq0}$的状态空间$S$为离散空间,为方便书写设$\mathcal{S}$为${0,1,2,\cdots}.$ 若对任意$0\leq t_0\leq t_1<\cdots<t_n<t_n+1$,以及任意的$i_0,i_1,\ldots,i_n,i_{n+1}\in\mathcal{S}$,有
$$
\begin{aligned} &\quad P{X(t_{n+1})=i_{n+1}|X(t_0)=i_0,X(t_1)=i_1,\cdots,X(t_n)=i_n}\&=P{X(t_{n+1})=i_{n+1}|X(t_n)=i_n},\end{aligned}
$$
则称${ X( t) , t\geq 0}$为 连 续 时 间 Markov链 , 又 称 连 续 参 数Markov链.

我们默认我们讨论的Markov链是时齐的,也即 $p_{ij}(s,t)$与$s$无关。简记为$p_{ij}(s, t) = p_{ij}( t) $称 $P( t) = ( p_{ij}( t) )$​​为相应的转移概率矩阵.

我们熟知的Poisson过程是连续时间Markov链.它的初始分布为$\boldsymbol\pi(0)=(1,0,0,\cdots)$.对$i,j\in\mathcal{S}$,它的转移概率为
$$
p_{ij}(t)=\begin{cases}\frac{(\lambda t)^{j-i}}{(j-i)!}e^{-\lambda t}&,j\geq i\0&,j<i\end{cases}
$$
和离散版本的Markov链作对比不难得到如下性质:

Property

  1. $p_{ij}( 0)$ 是$\delta$函数:

$$
p_{ij}(0)=\delta_{ij}=\begin{cases}1,&i=j\0,&i\neq j.\end{cases}
$$

  1. 对于$t>0$,在已知$X(t)=i$的条件下,“将来”${X(u),u>t}$与“过去”${ X( v) , 0\leq v< t} $​独 立.

  2. $$
    p_{ij}(t)\geq0;\sum_{j\in S}p_{ij}(t)=1;
    $$

  3. $\forall s, t\geq 0,$ 有 C-K方程:
    $$
    p_{ij}(t+s)=\sum_{k\in\mathcal{S}}p_{ik}(t)p_{kj}(s)\
    \Longleftrightarrow \mathbf{P}(t+s)=\mathbf{P}(t)\mathbf{P}(s)
    $$

  4. 设$\pi_i(t)=P(X(t)=i),i\in\mathcal{S}.$$t$时 刻 的 概 率 分 布 向 量 $\boldsymbol{\pi }( t) = ( \pi _0( t) , \pi _1( t) , \cdots , \pi _i( t) , \cdots ) .$

    则$X(t)$的概率分布为$\boldsymbol\pi(t)=\boldsymbol{\pi}(0)\mathbf{P}(t).$

  5. 连续时间Markov链的有限维分布由转移概率矩阵$\mathbf{P}(t)$和初始分布$\boldsymbol\pi(0)$完全决定:对$0=t_0<t_1<t_1<\cdots<t_n$,
    $$
    \begin{aligned}&P(X(t_0)=i_0,X(t_1)=i_1,\cdots,X(t_n)=i_n)\=&\pi_{i_0}(0)p_{i_0,i_1}(t_1)p_{i_1,i_2}(t_2-t_1)\cdots p_{i_{n-1},i_n}(t_n-t_{n-1})\end{aligned}
    $$

  6. 对于$s,t\geq0$,有
    $$
    p_{jj}(s+t)\geq p_{jj}(s)p_{jj}(t),\quad p_{jj}(t)\geq[p_{jj}(\frac tn)]^n
    $$

  7. 假定在时刻0过程刚刚到达$i(i\in\mathcal{S}).$ 以$\tau_i$记过程在离开$i$之前在$i$停留的时间,即在条件$X(0)=i$的条件下$\tau_i$服从指数分布$Exp(\lambda_i)$.

    • 当$\lambda_i=\infty$时,它在状态$i$停留的平均时间为0,即一旦进入马上离开,称这样的状态为瞬过状态.

    • 当$\lambda_i=0$时,则称$i$为 吸 收 态 , 即 一 旦 进 入 , 将 停 留 的 平 均时间为无限长。

    • 当$0<\lambda_i<\infty$,称$i$为 逗 留 态 , 这 时 过 程 停 留 在 状 态 $i$,若干时间后跳到别的状态,停留时间服从指数分布.

正则Markov链,转移速率(矩阵)

称一个连续时间Markov链是正则的,若以概率1在任意有限长的时间内转移的次数是有限的.从而可得连续性条件
$$
\left.\lim\limits_{t\to0}p_{ij}(t)=\delta_{ij}=\left{\begin{array}{cc}1,&i=j\0,&i\neq j\end{array}\right.\right.
$$
以下我们总假定所考虑的Markov链都满足正则性条件.

定义状态转移速率:
$$
q_{ij}=\lim_{t\to 0}\frac{p_{ij}(t)-p_{ij}(0)}{t}
$$

  • 对$i\in\mathcal{S}$,极限$$q_i:=-q_{ii}=\lim_{t\to0}\frac{1-p_{ii}(t)}{t}\leq+\infty $$存在,但可能是无限.
  • 对$i,j\in\mathcal{S},i\neq j$,极限$$q_{ij}=\lim_{t\to0}\frac{p_{ij}(t)}{t}<\infty $$存在且有限.

设状态空间为$\mathcal{S}={1,2,\cdots,n,\cdots}$,此时记
$$
\left.\mathbf{Q}=\left(\begin{array}{cccccc}q_{11}&q_{12}&q_{13}&\cdots&q_{1n}&\cdots\q_{21}&q_{22}&q_{23}&\cdots&q_{2n}&\cdots\\vdots&\vdots&\vdots&\cdots&\vdots&\cdots\q_{n1}&q_{n2}&q_{n3}&\cdots&q_{nn}&\cdots\\vdots&\vdots&\vdots&\cdots&\vdots&\ddots\end{array}\right.\right)
$$
称为连续时间Markov链的Q-矩阵(转移速率矩阵).

当矩阵元素满足 $\forall i\in\mathcal{S},q_i=-q_{ii}=\sum_{j\neq i}q_{ij}<\infty$时,称该矩阵为保守的.

类比Poisson过程,我们能得到如下性质:

Property

对于Markov链$X(t),t\geq0$,$q_i=-q_{ii}=|q_{ii}|$. 用$\tau$表示过程在状态$i$的停留时间,则有:

  1. $P(\tau>t|X(0)=i)=e^{-q_it},t\geq0$
  2. $E(\tau|X(0)=i)=\frac{1}{q_i}$.
  3. 当$j\neq i$时,$P(X(\tau)=j|X(0)=i)=\frac{q_{ij}}{q_i}$
  4. 在条件$X(0)=i$下,$\tau$和$X(\tau)$独立.
  5. 当$j\neq i$时,$P(X(\tau)=j,\tau\leq t|X(0)=i)=\frac{q_{ij}}{q_i}(1-e^{-q_it})$​.

Kolmogorov微分方程

对一切$i,j\in\mathcal{S},t\geq0$且$\mathbf Q$为保守矩阵时,有

  1. Kolmogorov向后方程:
    $$
    \mathbf{P^{\prime}}(t)=\mathbf{QP}(t)\p_{ij}’(t)=\sum_{k\in S}q_{ik}p_{kj}(t)=-q_ip_{ij}(t)+\sum_{k\neq i}q_{ik}p_{kj}(t)
    $$

  2. Kolmogorov向前方程:
    $$
    \mathbf{P^{\prime}}(t)=\mathbf{P}(t)\mathbf{Q}\p_{ij}’(t)=\sum_{k\in S}p_{ik}(t)q_{kj}=-p_{ij}(t)q_j+\sum_{k\neq j}p_{ik}(t)q_{kj}
    $$

Remark

  • 正则Markov链Property3

Brown 运动

Brown运动

随机过程${B(t),t\geq0}$如果满足:

  1. $B( 0) = 0;$

  2. ${ B( t) , t\geq 0}$有平稳独立增量;

  3. 对 每 个$t> 0$, $B( t)$服从正态分布$N( 0, \sigma ^2t)$;

则称${B(t),t\geq0}$​为Brown运动,也称为Wiener过程.

等价定义如下:

  1. (正态增量)$B(t+s)-B(s)\sim N(0,\sigma^2t);$
  2. (独立增量)$B(t+s)-B(s)$独立于过程的过去状态$B(u)$,$0\leq u\leq s.$
  3. (路径的连续性)$B( t) , t\geq 0$是$t$​的连续函数.

image-20240607022911230

Property

  1. Brown运动是Gauss过程,$\mu_B(t)=0,\gamma(s,t)=\min(s,t)$
  2. Brown运动具有Markov性;

Mark

如果$\sigma=1$,我们称之为标准Brown运动。如果$\sigma\neq1$,则可考虑${X(t)/\sigma,t\geq0}$​,它是标准Brown运动. 故不失一般性,可以只考虑标准Brown运动的情形。

等价定义并没有假定$B(0)=0$,因此我们称之为始于$x$的Brown运动,所以有时为了强调起始点,也记为$B^x(t)$ ;

有限维分布

对于Brown运动$B^x(t),t\geq0$,以及$0\leq t_1<t_2<\cdots<t_n$,有如下联合分布函数
$$
P_x{B(t_1)\leq x_1,\cdots,B(t_n)\leq x_n}=\int_{-\infty}^{x_1}p_{t_1}(x,y_1)dy_1\cdot\\int_{-\infty}^{x_2}p_{t_2-t_1}(y_1,y_2)dy_2\cdots\int_{-\infty}^{x_n}p_{t_n-t_{n-1}}(y_{n-1},y_n)dy_n
$$
即$(B(t_1),B(t_2),\cdots,B(t_n))$ 的联合概率密度为
$$
p_{t_1,t_2,\ldots,t_n}(y_1,y_2,\ldots,y_n)=p_{t_1}(x,y_1)p_{t_2-t_1}(y_1,y_2)\cdots p_{t_n-t_{n-1}}(y_{n-1},y_n)
$$

路径性质

对于Brown运动的一条样本路径$B(t),0<t<T$, 几乎有如下性质:对区间$[0,t]$遍取分割${t_i^n}i=0^n$,且其模$\delta_n=\max_0\leq i\leq n-1(t{i+1}^n-t_i^n)$, 满足当$n\to\infty,\delta_n\to0.$极限的意义是依均方收敛;

  1. 是$t$的连续函数;

  2. 在任意区间(无论区间多么小)上都不是单调的;

  3. 在任意点都不是可微的;

  4. 在任意区间(无论区间多么小)上都是无限变差的
    $$
    \begin{aligned}&\lim_{\delta_n\to0}\sum_{i=0}^{n-1}|B(t_{i+1}^n)-B(t_i^n)|=\infty\end{aligned}
    $$

  5. 对任意$t\textbf{, 在 }[ 0, t]$上的二次变差等于$t.$
    $$
    \begin{aligned}&\lim_{\delta_n\to0}\sum_{i=0}^{n-1}|B(t_{i+1}^n)-B(t_i^n)|^2=t \end{aligned}
    $$

首中时刻$T_x$

以$T_x$记Brown运动首次击中$x$的时刻,即
$$
T_x=\inf{t>0,B(t)=x}
$$
对$x>0$, 由 全 概 率公式
$$
\begin{aligned}P{B(t)\geq x}&=P{B(t)\geq x|T_x\leq t}P{T_x\leq t}\&+P{B(t)\geq x|T_x>t}P{T_x>t}\end{aligned}
$$
若$T_x\leq t$,则$B(t)$在$[0,t]$中的某个时刻击中$x$,由对称性得
$$
P{B(t)\geq x|T_x\leq t}=\frac12
$$
d15655a26aba7bf052fd31a4499bc41

再由连续性可知,$B(t)$不可能还未击中$x$就大于$x$,
$$
\begin{aligned}P{T_x\leq t}=2P{B(t)\geq x}&=\frac{2}{\sqrt{2\pi t}}\int_x^\infty e^{-u^2/2t}du\&=\frac{2}{\sqrt{2\pi}}\int_{x/\sqrt{t}}^\infty e^{-y^2/2}dy \end{aligned}
$$
由此可见
$$
P{T_x<\infty}=\lim_{t\to\infty}P{T_x\leq t}=\frac{2}{\sqrt{2\pi}}\int_0^\infty e^{-y^2/2}dy=1
$$
性质$P{T_x<\infty}=1$称为Brown运动的常返性。

根据式(3),$T_x$的分布函数和概率密度函数如下:
$$
F_{T_x}(t)=\begin{cases}\frac{2}{\sqrt{2\pi}}\int_{|x|/\sqrt{t}}^\infty e^{-y^2/2}dy&,t>0\0&,t\le 0\end{cases}\
\left.f_{T_x}(t)=\left{\begin{array}{l}\frac{|x|}{\sqrt{2\pi}}t^{-\frac{3}{2}}e^{-\frac{x^2}{2t}}&,t>0\0,t\le 0\end{array}\right.\right.
$$
期望如下:
$$
\begin{aligned}
\begin{aligned}E[T_x]=\int_0^\infty P{T_x>t}dt\end{aligned}& \begin{aligned}&=&\int_0^\infty\Big(1-\frac{2}{\sqrt{2\pi}}\int_{x/\sqrt{t}}^\infty e^{-y^2/2}dy\Big)dt\end{aligned} \
&=\quad\frac2{\sqrt{2\pi}}\int_0^\infty\int_0^{x/\sqrt{t}}e^{-y^2/2}dydt \
&=\quad\frac2{\sqrt{2\pi}}\int_0^\infty e^{-y^2/2}dy\int_0^{x^2/y^2}dt \
&\begin{aligned}&=&\frac{2x^2}{\sqrt{2\pi}}\int_0^\infty\frac{1}{y^2}e^{-y^2/2}dy\end{aligned} \
&\begin{aligned}&\geq&\frac{2x^2e^{-1/2}}{\sqrt{2\pi}}\int_0^1\frac{1}{y^2}dy=\infty\end{aligned}
\end{aligned}
$$
$T_x$虽然几乎必然是有限的,但有无穷的期望.直观地看,就是Brown运动以概率1会击中$x$,但它的平均时间是无穷的。

Brown运动的最大值变量

对Brown运动中在$[0,t]$达到的最大值
$$
\begin{aligned} M(t)=\max_{0\leq s\leq t}B(s).\end{aligned}
$$
其分布对$x>0$有
$$
\begin{aligned}P{M(t)\geq x}& = P{T_x\leq t} \
&= 2P{B(t)\geq x} \
&=\frac{2}{\sqrt{2\pi}}\int_{x/\sqrt{t}}^{\infty}e^{-y^2/2}dy\end{aligned}
$$

而对于Brown运动在$[0,t]$中达到的最小值$m(t)=\min_0\leq s\leq tB(s)$,
当$x< 0$时 , 有
$$
\begin{aligned}P{m(t)>x}&=\quad P{T_x>t}\&=\quad1-P{T_x\leq t}\&=\quad1-P{T_{-x}\leq t}\&=\quad1-\frac{2}{\sqrt{2\pi}}\int_{|x|/\sqrt{t}}^{\infty}e^{-y^2/2}dy.\end{aligned}
$$

Brown 运动的反正弦律

设${B^x(t),t\geq0}$ 为始于$x$的Brown运动,则$B^x(t)$在$(0,t)$中至少有一个零点的概率为
$$
\frac{|x|}{\sqrt{2\pi}}\int_0^tu^{-\frac32}e^{-\frac{x^2}{2u}}du.
$$
只需要知道Brown运动的最小值分布即可;

$B^y(t)$在区间$(a,b)$中至少有一个零点的概率为
$$
\frac2\pi\arccos\sqrt{\frac ab}
$$
那么没有零点的概率为$\frac2\pi \arcsin\sqrt{\frac ab}$

证明:
$$
\begin{aligned}
&P{B^y\text{在}(a,b)\text{中至少有一个零点}}\
=&\int_{-\infty}^\infty P{B^x\text{在}(0,b-a)\text{中至少有一个零点}}\cdot f_{B(a)}(x)dx\
=&\frac{1}{2\pi\sqrt{a}}\int_{-\infty}^{\infty}\int_{0}^{b-a}|x|u^{-\frac{3}{2}}e^{-x^{2}(\frac{1}{2u}+\frac{1}{2a})} du dx \
=&\frac{1}{\pi\sqrt{a}}\int_0^{b-a}\int_0^\infty xu^{-\frac{3}{2}}e^{-x^2(\frac{1}{2u}+\frac{1}{2a})} dx du \
=&\frac{1}{\pi\sqrt{a}}\int_0^{b-a}u^{-\frac{3}{2}}\frac{au}{a+u}du\stackrel{y=\sqrt{u}}{=}\frac{2\sqrt{a}}{\pi}\int_0^{\sqrt{b-a}}\frac{1}{a+y^2} dy \
=&\frac{2}{\pi}\arctan\frac{\sqrt{b-a}}{\sqrt{a}}=\frac{2}{\pi}\arccos\sqrt{\frac{a}{b}}.
\end{aligned}
$$
取时刻$t$之前的最后一个零点$$ \zeta_{t} = \sup{s\leq t,B(s)=0}$$
时刻$t$之后的第一个零点$$\beta_{t} = \inf{s\geq t,B(s)=0} $$

由反正弦律有
$$
P{\zeta_t\leq x}=P{B\text{在}(x,t)\text{中没有零点}}=\frac2\pi\arcsin\sqrt{\frac xt}\P{\beta_t\geq y}=P{B\text{在}(t,y)\text{中没有零点}}=\frac2\pi\arcsin\sqrt{\frac ty}\P{\zeta_t\leq x,\beta_t\geq y}=P{B\text{在}(x,y)\text{中没有零点}}=\frac2\pi\arcsin\sqrt{\frac xy}
$$

Brown桥

设${B(t),t\geq0}$是Brown运动.令
$$
B^(t)=B(t)-tB(1),\quad0\leq t\leq1
$$
则称随机过程${B^
(t),0\leq t\leq1}$为Brown桥。

Property

对$\forall 0\le s\le t\le 1$

  1. $E[B^*(t)] = 0,$
  2. $E[B^(s)B^(t)] =s(1-t)$
  3. $D[B^(t)] = E[B^(t)B^*(t)]=t(1-t) $​
  4. $B^(0)=B^(1)=0$​
  5. Brown桥也是Gauss过程

有吸收值的Brown运动

设$T_x$为Brown运动${B(t)}$首次击中$x$的时刻,$x> 0. \textbf{令 }$
$$
\left.Z(t)=\left{
\begin{array}
{ll}B(t),&\text{若}t<T_x\
x,&\text{若}t\geq T_x\end{array}\right.\right.
$$
则${Z(t), t ≥ 0}$是击中$x$后,永远停留在那里的Brown运动。

离散部分的分布为
$$
\begin{array}{rcl}P{Z(t)=x}&=&P{T_x\leq t}\&=&\frac{2}{\sqrt{2\pi t}}\int_x^\infty e^{-\frac{y^2}{2t}}dy\end{array}
$$
连续部分的分布:对$\forall y\le x$
$$
\begin{aligned}P{Z(t)\leq y}
&=P\big{B(t)\leq y,\max_{0\leq s\leq t}B(s)\leq x\big}\
&=P{B(t)\leq y}-P\big{B(t)\leq y,\max_{0\leq s\leq t}B(s)>x\big}\
&=P{B(t)\leq y}-P{B(t)\geq2x-y}\
&=P{B(t)\leq y}-P{B(t)\leq y-2x}\
&=\frac{1}{\sqrt{2\pi t}}\int_{y-2x}^ye^{-\frac{u^2}{2t}}
\end{aligned}
$$

在原点反射的Brown运动

$Y(t)=|B(t)|$,则称随机过程${Y(t),t\geq0}$为在原点反射的Brown运动.它的概率分布为
$$
\begin{aligned}P{Y(t)\leq y}&=\quad P{B(t)\leq y}-P{B(t)\leq-y}\&=\quad2P{B(t)\leq y}-1\&=\quad\frac2{\sqrt{2\pi t}}\int_{-\infty}^ye^{-\frac{u^2}{2t}}du-1,\quad y>0\end{aligned}
$$

几何Brown运动

由 $X( t) = e^{B( t) }$定 义 的 随 机 过 程 ${ X( t) , t\geq 0}$称 为 几 何 Brown运动。

由于Brown运动的矩母函数为$E[e^{sB(t)}]=e^{ts^2/2}$,所以几何Brown运动的均值函数与方差函数分别为
$$
\begin{aligned}E[X(t)]&=\quad E[e^{B(t)}]=e^{t/2}\D[X(t)]&=\quad E[X^2(t)]-(E[X(t)])^2\&=\quad E[e^{2B(t)}]-e^t\&=\quad e^{2t}-e^t\end{aligned}
$$
在金融市场中,人们经常假定股票的价格按照几何Brown运动变化。

有漂移的Brown运动

设 $B( t)$是 标 准 Brown运 动 , 我 们 称 $X( t) = \mu t+ B( t) t$为 有 漂 移的Brown运动;

其中常数$\mu$称为漂移系数。容易看出,有漂移的 Brown运 动 是 一 个 以 速 率$\mu$漂移开去的过程;

对任意常数$A,B>0,-B<x<A$,记 $p(x)$ 为过程在击中$-B$之前击中$A$的概率,有
$$
p(x)=P{X(t)\text{在击中}-B之前击中 A|X(0)=x}=\frac e{2\mu B}-e^{-2\mu x}
$$

文件系统

概述

文件

文件中常保存的信息:

  • 基本信息:文件名、文件类型、文件组织
  • 地址信息:卷、起始地址、使用大小、分配大小
  • 访问控制信息:所有者、访问信息、许可的行为
  • 使用信息:数据创建、创建者身份、最后一次读 访问的日期、最后一次读用户的身份、最后一次 修改的日期、最后一次修改者的身份、最后一次 备份的日期、当前使用

文件(file)的属性

  • 长期存在:文件存储在硬盘或其他辅存中,用户退出 系统时文件不会丢失
  • 进程间共享:文件有名字,具有允许受控共享的 相关访问权限
  • 结构化:取决于具体的文件系统,一个文件具有针对某 个特定应用的内部结构

文件系统

文件系统(file system)是操作系统的重要组成部分 ,允许用户创建成为文件的数据集;

文件类型

  • 按用途分类:系统文件/用户文件/库文件
  • 按数据形式分类:源文件/目标文件/可执行文件
  • 按存取控制属性分类:只执行文件/只读文件/读写文件
  • 按组织和处理方式分类:普通文件/目录文件/特殊文件

文件系统模型

  • 管理对象:文件,目录,磁盘存储空间
  • 对象操作和管理的软件集合:实现文件系统的功能
  • 文件系统接口:命令接口/程序接口

文件操作

文件系统不但提供存储数据(组织为文件)的手段,而且 提供一系列对文件进行操作的功能接口。

  • 创建文件
  • 删除文件
  • 打开文件
  • 关闭文件
  • 读文件,写文件
  • 截断文件
  • 设置文件读写位置…

组织结构

文件结构

文件:具有文件名的一组相似记录的集合

  1. 域:基本的数据单元,一个域包含一个值,定长或变长
  2. 记录:一组相关域的集合,定长或变长,通常包含长度域

逻辑结构:从用户观点出发所观察到的文件组织形式,是用户可 以直接处理的数据及其结构,它独立于文件的物理特 性,又称为文件组织。

物理结构:指文件在外存上的存储组织形式。

文件系统架构

  • 设备驱动:程序直接和外围设备或其通道通信,驱动负责启动设备上的IO操作,处理IO请求的完成
  • 基本文件系统:物理IO层,处理磁盘间交换的数据块,操作系统关注这些块在辅存和缓冲区的位置
  • 逻辑IO:使得用户程序能访问记录,记录必须组成块进行IO操作
  • 文件组织:用户访问文件的方法

文件组织

堆是最简单的文件组织形式

  • 数据按它们到达的顺序被收集。
  • 堆的目的仅仅是积累大量的数据并 保存
  • 堆文件没有结构,堆对记录的访问是通过穷举查找方式进行的。

顺序文件

  • 每条记录都使用一种固定的格式
  • 所有记录都具有相同的长度 由相同 ,并且 数量、长度固定的域按特定 顺序组成
  • 每个域的域名和长度是该文件结构 的属性。
  • 关键域是记录的唯一标识,记录按关键域来存储

在顺序文件中,逻辑记录的顺序:

  • 串结构:按照记录录入的时间排序
  • 按关键字排序:有利于提高查询速度

对顺序文件的读写:

  • 定长记录:易于定位,可随机读取
  • 变长记录:不易定位,只能顺序读取
  • 维护一个日志文件log:用于存放将更新到主文件的记录 。

优点:

  • 批处理时效率是所有逻辑文件中最高的
  • 可存在于磁带上

缺点:

  • 交互应用时“效率低”(如要查找单个记录),尤其 是对变长记录的顺序文件。
  • 增加、删除记录涉及到排序问题,开销大。

索引顺序文件

索引顺序文件是克服顺序文件缺点的常用办法

  • 保留顺序文件的关键特征:记录按照关键域的顺序组织
  • 用于支持随机访问的文件索引:提供了快速接近目标 记录的查找能力
  • 溢出文件:类似于顺序文件中使用的日志文件,但溢 出文件中的记录可根据它前面记录的指针进行定位

image-20241208215304798

检索文件:

  1. 利用用户(程序)所提供的关键字以及某种查找 算法去检索索引表
  2. 找到该记录所在记录组中第一个 记录的表项,从中得到该记录组第一个记录在主文件 中的位置。
  3. 再利用顺序查找法去查找主文件,从中找到所要求的 记录。

对于有N条记录的顺序文件中,设定一个M项的索引文件,索引的关键域均匀分布在主文件中,找到某条记录平均需要在索引文件中访问O(M/2)次,在主文件平均访问O(N/2M)次,索引顺序文件组织的开销为O(M/2+N/2M), 顺序文件组织查找某条记录平均开销为O(N/2);

索引文件

顺序文件和索引顺序文件都只允许按记录的唯一关键字检索记 录,这不符合某些应用需要按多个字段检索记录的要求;

采用多索引的结构,成为查找条件的每个域都可能有一个索引;

  • 完全索引:包含主文件中每条记录的索引项
  • 部分索引:只包含那些有感兴趣域的记录的索引项

特点:

  • 建立有序的索引表,查找很快,提高了速度,增加了存储开销(索引文件);
  • 增、删记录时,对索引表作相应的修改

note:有时删除文件可能只是删除了其索引,这也是利用某些软件可以找回删除文件的原因;

image-20241208222417285

直接或散列文件

而对于直接文件,则可根据给定的记录键值,直接获 得指定记录的物理地址。换言之,记录键值本身就决 定了记录的物理地址。

这是目前应用最为广泛的一种直接文件,它利用Hash 函数(或称散列函数),可将记录键值转换为相应记录的 地址。

存储空间管理

文件分配方法

连续分配: 连续分配是指在创建文件时,给文件分配一组连续的块。 以该方式管理的文件称为连续文件,可采用紧缩技术整理;

  • 优点:简单、容易实现,对于顺序文件,能很快检索文件中的数据块,连续读/写 多个数据块内容时,性能较好。
  • 缺点:它不利于文件尺寸的动态增长,该分配方案可能会导致磁盘碎片,严重降低外存空间的 利用率。

链式分配:为文件分配非连续的若干数据块,数据块之间用指针相连,,以该方式管理的文件称为链接 文件,包含隐式链接和显式链接;

  • 隐式链接:在文件目录的每个目录项中都须含有指向链接文件第一 个盘块和最后一个盘块的指针,文件目录表中有start块号,每块中有下一块号;只适合于顺序访问,对随机访问效率低,可靠性差
  • 显式链接:把用于链接文件各物理块的指针,显式地存放在内存 的一张链接表中(整个磁盘仅设置一张)。查找在内存中进行,由于分配给文件的所有盘块号都放在该表中,故把该 表称为文件分配表FAT(File Allocation Table);
  • 优点:链接分配技术不要求文件存储到彼此相邻的数据块中, 消除连续分配引起的碎片,提高了外存空间的利用率。能适应文件尺寸的动态增长
  • 缺点:对于随机存取却相当低效,局部性原理不再适用;

索引分配:每个文件在文件分配表中存在一个一级索引,文件每个分区在索引上都有一个表项

空闲空间管理方法

  1. 位示图法:

    • 每一位对应一个磁盘 块。位的值为0或1,分别表示磁盘块空闲,或磁盘块已分配;

    • 利用位表容易找到一个或一组空闲盘块  位表适合于以上各种文件分配方法 ;

    • 位表很小,可以装入内存;

  2. 链接空闲区

    • 每个空闲分区包含一个指向下一个分区的指针,并 记载分区大小
    • 无空闲分区表空间开销
    • 适合于各种文件分配方法
    • 若每次分配一个磁盘块,则可取空闲分区链的第一 个盘块进行分配,并调整空闲分区链首指针和分区 链大小
    • 若采用可变分区法,可用首次适应算法,从链表头 开始查找,找到的第一个适合的分区则可分配,然 后调整空闲分区链首指针和分区链大小
  3. 索引

    • 将空闲分区视为文件,按文件存储空间分配法为空 闲分区建立索引
    • 索引表中为每一个空闲分区建立一个索引项
    • 为可变分区建立索引比为磁盘块建立索引效率高
    • 适合于各种文件分配法
  4. 空闲块列表

    • 在这种方法中,每块都指定一个序号,所有空闲 块的序号保存在磁盘的一个保留区中。
    • 两种有效技术把该表一小部分保存到内存中:将表看作堆栈/FIFO队列;

文件目录管理

文件目录

有的 系统将其中部分信息保存在文件头部,只将一些 必要信息如文件名、文件大小、外存中的存储位 置等保存在文件目录中;

典型操作: 查找、创建文件、删除 文件、显示目录、修改目录

管理要求:实现“按名存取”,提高对目录的检索速度,文件共享,允许文件重名

文件控制块和索引结点

文件控制块(file control block, FCB):用于描述和控制文件的数据结构,用于记载文件 在内存中的使用情况;

  • 基本信息类:文件名,文件物理位置,文件逻辑结构,文件的 物理结构
  • 存取控制类信息:权限
  • 使用信息:记录信息,如日期等

索引结点:包含文件描述信息,把文件名与文件描述信息分开,在文件目录中的每个 目录项仅由文件名和指向该文件所对应的 i 结点的指 针所构成。目录结构

  • 磁盘索引结点:包含文件主标识,文件类型,文件存取权限,物理地址,文件长度,连接(共享)计数,存取时间等;
  • 内存索引结点:文件打开后,将磁盘索引结点的内容部分或全部子集 拷贝到内存,并增加以下内容:编号,状态,共享计数,逻辑设备号,链接指针

目录结构

  1. 单级目录结构:所有用户的全部文件目录保存在一张目 录表中,每个文件的目录项占用一个表项,目录项中主要记载的信息有:文件名及扩展名,文件 的物理地址,其它属性,如文件长度、建立日期、文 件类型等

    优点:简单且按名存取

    缺点:查找速度慢,不允许重名,不便于实现文件共享;

  2. 两级目录结构:每一个用户建立一个单独的用户文件目录UFD,再 建立一个主文件目录MFD。在主文件目录中,每个用 户目录文件都占有一个目录项,其目录项中包括用户 名和指向该用户目录文件的指针

    优点:提高了检索目录的速度,在不同的用户目录中,可以使用相同的文件名,不同用户还可使用不同的文件名来访问系统中的同 一个共享文件

  3. 树型目录结构:

    主目录在这里被称为根目录,把数据文件称为树叶, 其它的目录均作为树的结点

    路径名:从树的根(即主目录)开始,把全部目录文件名与数 据文件名,依次地用“/”连接起来,即构成该数据文件 的路径名

    工作目录:即当前目录,进程对各文件的访问都相对于“当前目录”而进行, 通常称为相对路径。

增加目录:在用户要创建一个新文件时,只需查看在自己的 UFD及其子目录中,有无与新建文件相同的文件名。 若无,便可在UFD或其某个子目录中增加一个新目 录项。

删除目录:例如Linux中,不删除非空目录rmdir如果该目录内包含文件或子目录,系统会拒绝执行删除操作,可删除非空目录rm -r在尝试删除一个目录时,即使该目录内包含文件或子目录,系统也会允许执行删除操作

目录查询技术

过程:文件名-目录项(FCB)或索引结点-盘块号-启动磁盘-驱动程序

例如查询:/usr/ast/mbox

  • 根中得usr的索引结点号6
  • 6中得usr目录文件为132#
  • 132#中得/usr/ast的索引结点是26
  • 26中的/usr/ast目录文件中406#
  • 406#中得/usr/ast/mbox的索引结点是60
  • 60中得/usr/ast/mbox的物理地址

FAT文件系统

早期的MS-DOS采用FAT12,后演变为FAT16,在windows95和98中升级成FAT32;

FAT12:以盘块为基本分配单位,每个分区设置两张文件分配表FAT1,FAT2,系统设置文件分配表FAT,在 FAT 的每个表项中存放下一个盘块号;当达到文件尾的时候,存入0xFFF,标志结束

  • 为了适应更大容量的磁盘,因而以簇为单位进行分配, 簇越小磁盘浪费的空间就越小;
  • 簇一般由2n个盘块组成,与扇区的数量、磁盘容量的大小 直接有关
  • 对所允许的磁盘容量存在着严重的限制,虽然可以用继续增加簇的大小来提高所允许的最大磁 盘容量,但随着支持的硬盘容量的增加,相应的簇内 碎片也将随之成倍地增加。

image-20241209140316205

FAT16: FAT 表的宽度增至16 位,最大表项数将增至$2^{16}$个 ,此时便能将一个磁盘分区分为$2^{16}$个 簇。可以管理的最大分区空间为(1<<16 )×64 ×512B = 2048 MB

  • 当磁盘容量迅速增加时,如果再继续使用FAT16, 由此所形成的簇内碎片所造成的浪费也越大。(簇越 大,一般磁盘的碎片就越多

FAT32: FAT32保留扇区的数目默认为32个而不是FAT16的1个

  • FAT32的根目录等同于普通的文件;
  • 根目录储在分区内可 寻址的任意簇内,不过通常根目录是最早建立的
  • 根目录下的所有文件及其子目录在根目录的文件目录表 FDT中都有一个“目录项”,系统以32个字节为单位进 行目录文件所占簇的分配,因此32个扇区的根目录FDT 最多可以记录32*512/32=512个文件或子目录。
  • DATA区是实际的文件和目录数据存储的区域,它占据 了分区的绝大部分。 每个簇只能被一个文件占有,因而常常文件的尾部会出 现不可利用的空间,所以簇越大,文件数目越多时,零 头就越多,造成资源浪费,因此簇的大小不应该太大。FAT32采用4KB的簇的大小。
  • 不能采用太小的单位进行分配。如采用大小为512B的 扇区管理会增加FAT表的项数,对大文件存取增加消耗 ,文件系统效率不高

文件系统格式化

  • 格式化程序并没有把DATA区的数据清除,只是重写了 FAT表而已,至于分区硬盘,也只是修改了MBR和 DBR,绝大部分的DATA区的数据并没有被改变;
  • 因而 进行上述操作后,数据仍然可以得到恢复

image-20241209150412186

NTFS文件系统

  • 使用了64 位磁盘地址;
  • 很好地支持长文件名;
  • 具有系统容错功能;
  • 提供了数据的一致性;

磁盘组织:以簇作为磁盘空间分配和回收的基本单位,卷上簇的大小称为“卷因子”(一个簇包含2n个 盘块),对于簇的定位,采用逻辑簇号LCN和虚拟簇号VCN进行的。

文件组织:在NTFS 中,以卷为单位,将一个卷中的所有文件信 息、目录信息以及可用的未分配空间信息,都以文件 记录的方式记录在一张主控文件表MFT中。卷中的每个文件作为一条记录,在MFT 表中占有一行, 其中还包括MFT 自己的这一行。每行大小固定为1 KB,每行称为该行所对应文件的元数据(metadata), 也称为文件控制字。 NTFS 文件不能被FAT 等文件系统所存取,缺乏兼容性。文件通过主文件表(MFT)来确定其在磁盘上的存储 位置。主文件表是一个对应的数据库,由一系列的文 件记录组成–卷中每一个文件都有一个文件记录(对于 大型文件还可能有多个记录与之相对应)。NTFS卷上的每个文件都有一个64位(bit)称为文件引 用号(File Reference Number,也称文件索引号)的 唯一标识。文件引用号由两部分组成:一是文件号, 二是文件顺序号。NTFS使用逻辑簇号(Logical Cluster Number,LCN)和 虚拟簇号(Virtual Cluster Number,VCN)来进行簇的定 位。LCN是对整个卷中所有的簇从头到尾所进行的简单编 号。VCN则是对属于特定文件的簇从头到尾进行编号,以 便于引用文件中的数据。VCN可以映射成LCN,而不必要 求在物理上连续。

文件系统结构:

  • 启动扇区文件$BOOT位于磁盘头部,$BOOT中包含 MFT的位置数据。
  • 主文件表索引的第一个文件为$MFT。主文件的每一个 表项表示一个文件索引,每个文件索引由一系列的属 性组成。

image-20241209151442406

NTFS元文件: MFT的前16个元数据文件非常重要,为了防止数据的丢失, NTFS系统在该卷文件存储部分的正中央对它们进行了备份。

  • MFT中的第1个记录就是MFT自身;
  • 由于MFT文件本身 的重要性,为了确保文件系统结构的可靠性,系统专门 为它准备了一个镜像文件$MftMirr,也就是MFT中 的第2个记录。
  • 第3个记录是日志文件$LogFile。该文件是NTFS为 实现可恢复性和安全性而设计的。当系统运行时NTFS 就会在日志文件中记录所有影响NTFS卷结构的操作, 包括文件的创建和改变目录结构的命令,例如复制,从 而在系统失败时能够恢复NTFS卷。
  • 第4个记录是卷文件$Volume,它包含了卷名、被 格式化的卷的NTFS版本和一个标明该磁盘是否损坏的 标志位。
  • 第5个记录是属性定义表$AttrDef,其中存放了卷所支持的所有文件属性, 并指出它们是否可以被索引和恢复等;
  • 第6个记录是根目录(\),其中保存了存放于该卷根目 录下所有文件和目录的索引。在访问了一个文件后, NTFS就保留该文件的MFT引用,第二次就能够直接进 行对该文件的访问
  • 第7个记录是位图文件$Bitmap。NTFS卷的分配状 态都存放在位图文件中,其中每一位(bit)代表卷中的 一簇,标识该簇是空闲的还是已被分配了的,由于该文 件可以很容易的被扩大,所以NTFS的卷可以很方便的 动态的扩大,而FAT格式的文件系统由于涉及到FAT表 的变化,所以不能随意的对分区大小进行调整。
  • 第8个记录是引导文件$Boot,它是另一个重要的 系统文件。
  • 第9个记录是坏簇文件$BadClus,它记录了磁盘上 该卷中所有的损坏的簇号,防止系统对其进行分配使用。
  • 第10个记录是安全文件$Secure,它存储了整个卷 的安全描述符数据库。NTFS文件和目录都有各自的安 全描述符,为了节省空间,NTFS将具有相同描述符的 文件和目录存放在一个公共文件中。
  • 第11个记录为大写文件$UpCase, 该文件包含一个大小写字符转换表。
  • 第12个记录是扩展元数据目录$Extended metadata directory
  • 第13个记录是重解析点文件$Extend\$Reparse

image-20241209151929072

Linux文件系统

Linux是一个unix类操作系统,用EXT2文件系统结构,以下是查找文件的过程

  1. 当访问一个文件时,通过文件名在“目录表”中查到 其“索引节点号”。
  2. 通过“索引节点号”查“索引节点表”。
  3. 通过“索引节点表”得到其“索引节点”;
  4. 通过索引节点得到文件数据所在位置

EXT2文件系统的物理结构:整个盘卷由多个数据块组构成。一个数据块代表一个 文件系统

  • 超级块:存储着描述文件系统大小和形状的基本信息;
  • 组描述符:描述它的数据结构。(块位图大小、索引节 点位图大小、索引节点表大小、空闲块数、空闲索引节 点数、已用目录数等重要信息);
  • 块位图:描述了该块组中数据块空间的使用情况,在数 据块分配和数据块撤销时使用;
  • 索引节点位图:描述了该块组索引节点表所占空间的信 息,在索引节点的分配和撤销中使用;
  • 索引节点表:记录了本块组中索引节点集合;
  • 数据块:用于存放文件数据;

image-20241209152202486

EXT2的目录

  • 一个文件对应有一个目录项;
  • 目录项包含该文件对应的索引节点号、文件名、名字 长度等信息;
  • 目录是一些特殊的文件,称为目录文件,其中包含了 该目录下所有文件的目录项集合。

image-20241209152534513

EXT2的索引节点

  • Mode:用户拥有的权限r,w,e
  • Owner Information:文件或目录所有者的用户和组标 识符
  • Size:文件大小
  • Timestamps:索引节点建立的时间和索引节点最后修 改的时间
  • Data blocks:描述文件的数据块

image-20241209152648940

文件控制块

  • 当打开一个EXT2文件时,把要打开文件的管理控制信 息从辅存的目录项和索引节点中读到内存,形成FCB, 并将该FCB的地址以一个文件描述符(FD)的形式返 回给用户进程;
  • 根据FD可获得文件的描述信息,通过这些信息用户可对实际物理文件进行操作

linux的虚拟文件系统VFS: 将实际的文件系统 的数据结构转换成统一的内存VFS的数据结构来兼容多种 文件系统类型

  • 数据缓存:任何一个从块设备中读取的数据块或者往块设备中写 入的数据块都要通过缓存,缓存中的数据块是以拥有此数据块的设备的设备标识 符和缓冲区的块号来唯一标识的;

    1. 空闲的缓冲区链表
    2. 非空闲的缓冲区:由指针数组构成的散列表, 散列表中hash值由设备的标识符和数据块的块号产生 的,表中的指针指向具有相同hash值的缓冲区。

    image-20241209153612426

    缓冲区的状态类型:clean,locked,dirty,shared, unshared

    bdflush守护进程: 使用bdflush内核守护进程来完成缓存管理,在系统启动时作为一个系 统的线程运行,在大部分时间中,此守护进程都处 于睡眠状态,等待系统中被改动的数据块缓冲区的 数量增大到一定的值,bdflush守护进程将被唤醒,任务是当缓存中被改动的缓 冲区数量太多时,提供一个管理功能

  • 索引结点缓存:索引节点缓存可以加快对系统中文件的存取,使用散列表实现,表项的hash值是通 过索引节点号和存储文件系统的物理设备号计算出来的, 各表项指向具有相同hash值的VFS索引节点链表的指针。

    操作:如果系统在索引节点缓存中找到索引节点,那么此索 引节点的计数器将加1,表明又有一个进程在使用该 索引节点。否则,系统必须申请一个空闲的VFS索引 节点,系统读取该索引节点到内存缓存。如果系统已经没有可分配的空闲索引节点时,那么必 须查找一个已用的索引节点,将那些用户计数器为0 的索引节点重新分配(说明系统中没有任何进程正在 使用这些索引节点),一些非常重要的索引节点,如文件系统的根目录索引 节点,它们的索引节点计数器总是大于0,以保证永 远不能被重新分配。不论用什么方法找到一个新的索引节点,系统都必须 调用一个特殊的子程序来把实际文件的信息添加到此 索引节点中。当向新的索引节点中写入信息时,锁定此索引节点, 将索引节点计数器置为1,直到索引节点中的信息写完 后,再解锁。如果它被锁定时,则其他需要访问该索引节点必须等 到解锁后才能进行。

  • 目录缓存:为了加速对常用目录的存取, VFS维护一个两层LRU目录 缓存链表。 目录缓存包括一个散列表, 表的hash值由设备号和目录 名来计算,每个表项指向具 有相同hash值的目录缓存链 表的指针。当读取一个目录时,目录的 详细信息将添加到目录缓存 中

    image-20241209153555479

I/O管理

概述

I/O设备

I/O外设大致分为三类

  • 人可读:比如显示器,键盘,鼠标
  • 机器可读:比如磁盘驱动 器、USB密钥、传感器、控制器和执行器。
  • 通信:比如数字线路驱动 器和调制解调器

这些设备可能的主要差别在数据传输速率,控制复杂度,传输单位,数据表示,错误条件等等各有不同;

或者分成两类

  • 面向块:信息保存在块中,块的大小通常是固定的,传送过程中一次传送一个块,比如磁盘,USB智能卡等
  • 面向流:以字节流的方式输入/输出数据,比如终端,打印机,网卡,鼠标等

由于设备具有差异性,设备被设计为不直接和CPU通信,而是与设备控制器通信,在I/O设备应该包含和设备控制器的接口;

I/O设备发给控制器的信号有三种:

  • 数据信号:双向,有缓存。
  • 控制信号:控制器发给设备;要求其完成相关操作。

状态信号:设备发给控制器,后者“显示”。

设备控制器

Device Controller的组成

  • 设备控制器与CPU的接口:数据线,地址线,控制线
  • 设备控制器与I/O设备的接口:每个接口包含数据、命令、状态三类信号的交换
  • I/O逻辑:接受I/O命令并译码

image-20241207205713846

Device Controller的基本功能:

  • 接受和识别命令:应该有相应的寄存器存放命令;
  • 数据交换:实现CPU与设备控制器,设备控制器和I/O设备之间的数据交换;
  • 标识和报告设备的状态:通过状态寄存器记录
  • 地址识别
  • 数据缓冲
  • 差错控制

I/O控制方式

常见的I/O控制包含四种技术:程序控制I/O、中断驱动控制I/O,直接存储器访问(DMA),包括I/O通道控制

程序控制I/O

程序控制I/O(Programmed I/O)典型的方式是 轮询(Polling);

处理器代表一个进程给I/O模块发送一个I/O命令, 该进程进入忙等待,直到操作完成才能继续执行。

  • CPU需要花费代价不断查询I/O状态,CPU花费极大

流程图如下所示

image-20241207210407264

中断控制I/O

中断: 一个进程占有处理器运行时,由于自身或外界的原因 (出现了某事件)使运行被打断。让操作系统处理所出 现的事件,处理完中断事件之后,再让被打断的进程继续运行;

  • 外部中断事件:比如计算机故障中断,输入输出中断
  • 内部中断:比如由地址越界,除数为0等造成的程序性中断事件,系统调用中断(访管中断);

中断源:引起中断的事件;

中断处理程序:对出现的事件进行处理的程序;以下是一个可能的流程图

image-20241207211901074

中断响应:处理器每执行完一条指令后,硬件的中断装置立即检查有无 中断事件发生,若有中断事件发生,则暂停现行进程的执行, 而让操作系统的中断处理程序占用处理器;

  • 首先检查是否有中断事件发生,并确定中断的原因。
  • 若有中断事件发生,则保护好被中断进程的断点以及其他 一些信息(上下文),以便进程在适当时候能继续执行。
  • 根据中断原因找到中断处理程序并启动中断处理程序工作。

中断寄存器:如果有外部中断事件出现,而外部中断源又各不相同,需要用寄存器记录原因。例如以下8259A寄存器图示

image-20241207211443395

中断向量表:在微机中将中断源统一编号,不同的中断源有不同的中 断类型编号;每一个中断类型号对应一个中断处理程序。 中断向量表中存放各个中断处理程序的入口地址。 在计算机系统初始化时,根据设备处理程序在内存中的位置,由引导程序完成中断向量表的建立。

中断优先级:中断优先级是按中断事件的重 要性和紧迫程度来确定的。中断装置是按预定的顺序响应同时出现的中断事件,这个顺序可以由编程实现。下图是一个可能系统实现

image-20241207211810925

中断控制I/O: 处理器代表进程向I/O模块发送I/O命令

  • 该指令是非阻塞的:处理器继续执行该指令的后续命令
  • 该指令是阻塞的:处理器下个指令来自操作系统,将当前进程阻塞并调度其他进程(当前进程发生了中断);

直接内存访问控制

直接内存访问(Direct Memory Access, DMA)用于实现控制内存和I/O模块之间的数据交换。

  • 处理器向DMA发送请求
  • 整个数据块传送结束后请求中断

设计目的:进一步减少CPU对I/O的干预;

特点:

  • 数据传输的基本单位是数据块,即CPU与I/O设备之间, 每次传送至少是一个数据块;
  • 所传送的数据是从设备直接送入内存的,或者从内存送 到设备输出;
  • 仅在传送一个或多个数据块的开始和结束时,才需CPU 干预,整块数据的传送是在通道控制器的控制下完成的;

组成:

  • 主机和DMA控制器接口
  • DMA控制器和块设备接口
  • I/O控制逻辑

实现:在DMA控制器中设置四类寄存器,即命令/状态寄存器(CR), 内存地址寄存器(MAR), 数据寄存器(DR),数据计数器(DC);

一个典型的DMA框图如下:

image-20241207213049339

DMA工作流程如下:DMA可以模拟处理器,实际上也能像处理器一样获得系统总线的控制权

image-20241207213136042

I/O通道

I/O 通道方式(I/O channel) 是DMA 方式的发展,实际上属于DMA的一种;

  • 它可进一步减少 CPU 的干预,即把对一个数据块的读(或写)为单位的干预减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。

  • 可实现CPU、通道和I/O 设备三者的并行操作,从而 更有效地提高整个系统的资源利用率。

通道: 一种特殊的执行I/O指令的处理机,与CPU共享内存, 可以有自己的总线。

  • 字节多路通道 :这是一种按字节交叉方式工作的通道。每一个子通 道连接一台I/O设备,并控制该设备的I/O操作。 这些子通道按时间片轮转方式共享主通道。只要字节多路通道扫描每个子通道的速率足够快, 而连接到子通道上的设备的速率不是太高时,便不致丢失信息,适用于低、中速设备。

    image-20241207214755583

  • 数组选择通道:数组选择通道可以连接多台高速设备,但是只有一 个分配型子通道,一段时间内只能执行一道通道程序。某台设备占用该通道后,即使无数据传送,通道被闲置,也不允许其他设备使用该通道,直至设备传送完毕释放该通道。 缺点是利用率低。

  • 数组多路通道:数组多路通道将数组选择通道传输速率高和字节多路通道能使各子通道分时并行操作的优点相结合。 数组多路通道含有多个非分配型子通道,既具有很高的数据传输速率,又有较高的通道利用率。广泛应用于连接多台高、中速外围设备,数据传送 方式按数组方式进行。

通道程序:通道是通过执行通道程序,并与设备控制器共同实现 对I/O设备的控制的。 通道程序是由一系列通道指令(或称为通道命令)所 构成的

通道的设计可以解脱CPU对I/O的组织管理,更好地处理终端命令;CPU只需发送I/O命令给通道,通道通过调用内存中的相 应通道程序完成任务。

在I/O通道设计中,可能存在瓶颈问题:

  • 原因:通道不足
  • 解决的最有效办法不是增加通道,而是增加设备到主机间的通路

image-20241207215137643

设别的硬件层次

I/O子系统分类

  • 用户层I/O软件:实现与用户交互的接口,用户可直接调用在用户层提供的、 与I/O操作有关的库函数,对设备进行操作;
  • 设备独立性软件:用于实现用户程序与设备驱动器的统一接口、设备命令、 设备保护,以及设备分配与释放等,同时也为设备管理和数据传送提供必 要的存储空间。
  • 设备驱动程序:硬件相关,具体实现OS对设备发出的操作指令,驱动I/O设备工作。每一类设备有一个设备驱动程序。比如我们插入U盘时,系统会弹 出安装驱动,安装完成后,这个驱动程序不会消失,而是运行在后台进程。 无论你用的是正版金士顿还是盗版,用的是东芝还是闪迪,驱动程序都是 一类,系统中驱动U盘的都是相同的驱动程序。
  • 中断服务程序
  • 硬件:这里的硬件也需要单独说明,是因为这里是指代I/O设备,有不同之 处。分为两个部分:机械部件和电子部件。

image-20241207220957297

设备管理软件

设计目标

  • 与具体设备无关
  • 统一命名
  • 对错误的处理
  • 缓冲技术
  • 设备的分配和释放
  • I/O 控制方式

软件层次结构

  • 要使设备按用户的要求工 作,必须对与设备接口的 通道和控制器等进行程序 编制,通过程序实现对设 备的控制。
  • 为了方便用户使用还必须 给出调用接口或命令接口。
  • 为了更有效的利用设备还 必须研究管理技术和算法。

设备驱动程序

功能

  • 接收由设备独立性软件发来的命令和参数,并将命令中的 抽象要求转换为具体要求。
  • 检查用户I/O 请求的合法性。
  • 发出I/O 命令。
  • 及时响应由控制器或通道发来的中断请求,并根据其中断 类型调用相应的中断处理程序进行处理。 根据用户的I/O 请求,自动地构成通道程序。

处理过程:

  1. 对指定的设备进行初始化:在执行输入或输出之前完成必要的准备工作
  2. 将抽象要求转换为具体要求:用户及上层软件对设备控制器的具体情况毫无了解,因 而只能向它们发出抽象的要求,但又无法传送给设备控制器。因此,就需要能将这些抽象要求转换为具体要求。 在OS中只有设备驱动程序才同时了解抽象要求和设备控制器中的寄存器情况;也只有它才知道数据和参数应分别送到哪个寄存器。例如,将抽象要求中的盘块号转换为磁盘的盘面、磁道 号及扇区。这一转换工作只能由设备驱动程序来完成。
  3. 检查I/O请求的合法性:对于任何输入设备都只能完成一组特定的功能,如该设备 不支持这次I/O请求,则认为这次I/O请求非法。
  4. 读出和检查设备的状态:要启动某个设备进行I/O操作,其前提条件应是该设备正处 于空闲状态。
  5. 传送必要的参数 :有许多设备,特别是块设备,除必须向其控制器发出启 动命令外,还需传送必要的参数。
  6. 启动I/O设备:在完成上述各项准备工作后,设备驱动程序可以向控制 器中的命令寄存器传送相应的控制命令。设备驱动程序发出I/O命令后,基本的I/O操作是在设备 控制器的控制下进行的。

提高设备管理性能的相关技术

I/O缓冲概述

操作系统设计I/O机制时,有两个主要目标:

  • 效率:I/O操作是计算机系统的瓶颈,
  • 通用性:处理器能用统一的方式看待I/O设备,操作系统能统一管理I/O设备和操作的方式;

一个简单的层次结构是设置逻辑I/O,设备I/O,调度和控制,实现用户进程和硬件的交互;

设计缓冲区是操作系统提高I/O效率的机制;

设计缓冲区的主要原因:

  • 缓和CPU与I/O设备间速度不匹配的矛盾。
  • 减少对CPU的中断频率,放宽对CPU中断响应时间的 限制。
  • 提高CPU和I/O设备之间的并行性。

单缓冲

在单缓冲情况下,每当用户进程发出一I/O请求时,操 作系统便在主存中为之分配一缓冲区。

假设输入时间为$T$,计算时间为$C$,数据传送时间(数据从缓冲区复制到用户内存)为$M$,输入和计算并行,系统对于每一块的处理时间为$\max{C,T}+M$;

image-20241207232454172

双缓冲

在设备输入时,先将数据送入第一缓冲区,装满后便转向 第二缓冲区。此时操作系统可以从第一缓冲区中移出数 据,并送入用户进程。

在双缓冲时,如果假设缓冲区的数据传送到用户区时间 $M$远小于输入时间$T$或计算时间$C$,系统处理一块数据的 最大时间可粗略地认为$\max(C,T)$。如果$C<T$,可使磁 盘数据连续输入;如果$C>T$,可使CPU不必等待数据输 入。

假设一个两台机器的通信场景,单缓冲无法实现双方同时向对方发送数据,若为每个机器设置发送缓冲区和接受缓冲区,就能实现双向的数据传输;

image-20241207232614910

循环缓冲

循环缓冲可以解决输入输出速度差异很大的问题,遵循生产者-消费者模型实现对资源的互斥共享;

组成:

  • 多个缓冲区:每个缓冲区的大小相同;
  • 多个指针:指示计算进程下一个可用缓冲区G 的指针Nextg, 指示输入进程下次可用的空缓冲区R 的指针Nexti, 指示计算进程正在使用的缓冲区C 的指针Current

image-20241207233227636

缓冲池

缓冲池是各种系统的流行技术,在池中设 置了多个可供若干个进程共享的缓冲区。

组成:

  • 空缓冲队列emq:由空缓冲区所链成的队列。
  • 输入队列inq:由装满输入数据的缓冲区所链成的队列。
  • 输出队列outq:由装满输出数据的缓冲区所链成的队列。
  • 四种工作缓冲区:收容输入数据,提取输入数据,收容输出数据,提取输出数据

image-20241207233607097

设备分配及算法

表结构

在进行设备分配时,通常都需要借助于一些表格的帮助。 在表格中记录了相应设备或控制器的状态及对设备或控制 器进行控制所需的信息。

  • 设备控制表DCT: 系统为每一个设备都配置了一张设备控制表,用于记 录本设备的情况;
  • 控制器控制表COCT
  • 通道控制表 CHCT
  • 系统设备表SDT

image-20241207233819445

image-20241207233834714

设计原则

设备的固有属性:共享+虚拟+独享

设备分配时应考虑的因素: 设备的固有属性、分配算法、安全性、独立性

  • 同步是安全的分配方式:当进程发出一个I/O后,即blocked,直 到其I/O完成,打破了请求并保持条件,缺点是CPU、I/O串行工作,进程进展缓慢

    异步是不安全的分配方式,进程执行效率高,但是要进行安全性检查;

分配算法:FIFO, 优先权

SPOOLing技术

假脱机操作(Simultaneaus Periphernal Operating On-Line, SPOOLing)技术:是用于将 I/O 设备进行虚拟化的技术。在主机的直接控制下,实现脱机输入、输出功能。此时的外围操作与CPU对数据的处理同时进行.可以实现将一台物理I/O设备虚拟为多台逻 辑I/O设备,同样允许多个用户共享一台物理I/O设备;

SPOOLing技术是实现Linux中’一切皆文件’和虚拟设备的基础,欺骗进程使进程认为自己都拥有设备资源;

组成:

  • 输入井和输出井:在磁盘上开辟的2个大存储空间,模拟输入和输出设备;
  • 输入缓冲区和输出缓冲区:内存中,输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据, 以后再传送给输出设备。
  • 输出进程SPi:模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井,当 CPU 需要输入数据时,直接从输入井读入内存。
  • 输出进程SPo:模拟脱机输出时的外围控制机,把用户要求 输出的数据先从内存送到输出井,待输出设备空闲, 再将输出井的数据经过输出缓冲区送到输出设备上。

image-20241208193220526

比如共享打印机场景中,利用SPOOLing技术可以将打印机改造成多个用户共享的设备,比如某一打印word的进程,调用了统一的接口,然后进入内核。内核例程负责将 word 想要打印的内容做成一个打印申请表,将这个申请表放入打印输出队列中(这个队列在输出井中)。然后由输出进程从打印队列中取打印申请表,根据表格内容将用户数据从磁盘中取出放入内存输出缓冲区,然后再输出到 I/O 设备中。输出进程会不断的查看打印输出队列,直到队列为空,则输出进程被阻塞。

特点:

  • 提高了I/O的速度:缓和了CPU与低速I/O设备之间速度不匹配的矛盾
  • 将独占设备改造为共享设备
  • 实现了虚拟设备功能 SPOOLing系统实现了将独占设备变换为若干台对应的逻 辑设备的功能

I/O设备调用

磁盘

原理

磁盘(disk) 的组成

  • 包括一或多个物理盘片,每个磁盘片分一个或两个存储面(Cylinder)
  • 每个磁头(Head)负责读写一条磁道,一般每条磁道又被逻辑上划分成8个扇区(Sector)
  • 扇区是磁盘存储数据的最小单位,一般用逻辑块号(LBN)标识,每次读写至少一个扇区的数据;
  • 块(block)是文件系统逻辑上的一段存储空间,通常具有整数个扇区;

下图是一个柱面和一面盘面的组成

image-20241208195410727

块号=柱面号×柱面扇区数+磁头号×盘面扇区数+盘扇号;

柱面扇区数=盘面数×盘面扇区数;

柱面号=块号/柱面扇区数;

磁头号=块号MOD柱面扇区数 / 盘面扇区数;

扇区号=块号MOD柱面扇区数MOD盘面扇区数;

类型:读写前磁头必须位于磁道的开始处

  • 固定头磁盘: 每个磁道上有一个磁头,快。
  • 移动头磁盘: 每个盘面仅有一个磁头,慢。

磁盘性能参数

寻道时间Ts:磁头定位到磁道的时间,记磁盘启动时间为S,磁道数为n,则满足Ts=O(n)+S;

旋转延迟Tr:指定扇区旋转到磁头下的时间,若转速为r,则均值Tr=r/2;

存取时间:达到读写正确位置的时间,Ts+Tr;

传输时间Tt:磁头定位完成后,数据传输所用时间,读写字节数为b,每道上的字节数为N,Tt=b/rN;

访问时间:Ta=Ts+Tr+Tt,对于特定磁盘,只有集中存放数据,集中读写才能提高传输效率;

磁盘的I/O很慢,往往成为瓶颈,有如下方式提高磁盘I/O速度

  • 提前读/延迟写:访问频率高的磁盘块放在替换队列的尾部,减少回写 次数。
  • 优化物理块分布:减少磁头移动距离,如簇分配就是将一个簇分为多个连续块
  • 虚拟盘(RAM): 由用户控制;

磁盘高速缓存

磁盘高速缓存(disk cache):形式上是磁盘,物理上是驻留在内存的盘块,大小可固定也可以设计为可变;

  • 数据交付:磁盘高速缓存中的数据传送给请求者进程,先查缓存、后查磁盘并更新缓存,一般可分为数据交付和指针交付;
  • 置换算法:应考虑局部性原理,访问频率,可预见性,数据一致性等原则,如最近最久未使用LRU,最近未使用NRU,最少未使用LFU等
  • 周期性写回磁盘:比如以windows为例的ms-dos操作系统采用写穿透方式;

磁盘调度

为减小寻道时间,对于磁盘的请求队列来说,I/O请求可能来自多个进程,若随机从队列中选择项目,性能很差;

可设计如下算法:以请求序列为为190,97, 90,45,150,32,162, 108,112,80,磁盘共200个柱面,磁头现在在98号柱面上为例

  • 先来先服务FCFS:根据进程请求访问磁盘的先后次序进行调度

    公平、简单,且每个进程的请求都能依次地得到处理, 不会出现某一进程的请求长期得不到满足的情况,但是平均寻道时间可能较长;

    image-20241208204905617

  • 最短服务时间优先SSTF:总是从等待访问者中挑选寻 找时间最短的那个请求先执行, 而不管访问者到来的先后次序,可能由磁臂黏着现象;

    image-20241208204917594

  • 电梯调度扫描SCAN

    总是从移动 臂当前位置开始沿着臂的移动 方向去选择离当前移动臂最近 的那个柱面的访问者,如果沿 臂的移动方向无请求访问时, 就改变臂的移动方向再选择。

    image-20241208204929222

  • 循环扫描CSACAN

    该算法不考虑等待访问者的先 后次序,总是从0号柱面开始向 里扫描,按照各访问者所要访 问的柱面位置的次序去选择访 问者。移动臂到达最后一个柱 面后,立即带动读写磁头快速 返回到0号柱面。

    image-20241208204950918

  • N步扫描NStepSCAN

    将磁盘请求队列分成若干个长度为N 的 子队列,磁盘调度将按FCFS 算法依次处理这些子队列。 而每处理一个队列时又是按SCAN 算法,对一个队列处理 完后,再处理其他队列。

  • FSCAN

    FSCAN 只将磁盘请求队列分成两个子队列。一个是由当前所有请求 磁盘I/O 的进程形成的队列,由磁盘调度按SCAN 算法进 行处理。在扫描期间,将新出现的所有请求磁盘I/O 的进程 ,放入另一个等待处理的请求队列。这样,所有的新请求都 将被推迟到下一次扫描时处理

设备管理接口

操作系统为设备管理定义两种接口:

  • 驱动程序接口:介于驱动程序与操作系统内核之间的接口驱动程序模块及优 化的管理模块接口,这些模块构成操作系统中的输入和输出 内核,实现了对设备操作和控制,提高了对设备的利用率;
  • 设备管理器:应用编程接口(API),即提供了一组函数,这组函数是用 于为进程服务,实现用户输入输出意图;
    • I/O设备的操作通过一组固定的入口点进行,这组入口点是 指向每个设备驱动程序提供的一些子程序。服务于I/O请求 的子程序,又称为I/O系统调用。
    • 在不同的系统给出的调用的形式不一样
    • 设备管理器包含有打开函数和关 闭函数:打开函数能分配设备和初始化设备,以便做好对该设备 使用的准备工作。关闭函数用于释放设备,则应由描述子反映出该设备不 能被使用的状态。设备管理器提供读设备函数和写设备函数。

磁盘冗余阵列

它是利用一台磁盘阵列控制器,来统一管理和控制一 组(几台到几十台)磁盘驱动器,组成一个高度可靠的、 快速的大容量磁盘系统。

并行交叉存取(条化存取)

  • 系统将每一盘块中的数据分为若干个子盘块数据,再把每一个子盘块的数据分别存储到各个不同磁盘中的相同位置上;
  • 当要将一个盘块的数据传送到内存时, 采取并行传输方式,将各个盘块中的子盘块数据同时 向内存中传输,从而使传输时间大大减少。

RAID0级:

  • 无冗余,无校验,分布式存储,低可靠性,低价格
  • 仅提供了并行交叉存取,它虽能有效地提高磁盘I/O 速度,但并无冗余校验功能,致使磁盘 系统的可靠性不好。只要阵列中有一个磁盘损坏,便会 造成不可弥补的数据丢失

RAID1级:

  • 分布存放,镜像冗余,不校验
  • 读性能比 RAID 0好 (选择寻道时间小的磁盘访问),写性能比 RAID 0差,存储开销大,可靠性高

RAID2级:

  • 采用海明码进行校验,每两块数据盘就有一 块校验盘(海明校验码):当数据损坏时通过校验码可恢复 损坏磁盘上的数字,每次只能传输2路数据,因数据盘就 两块。
  • 可进行并存并取。

RAID 3 级

  • 并行传输
  • 存在奇偶校验盘来完成数据校验功能;
  • 常用于科学计算和图像 处理

RAID4级:

  • 使用了独立访问技术,在独立访问阵列中, 每个磁盘独立的运转,因此不同的I/O请求可以并行的得 到满足

RAID 5 级:

  • 这是一种具有独立传送功能的磁盘阵列。每 个驱动器都各有自己独立的数据通路,独立进行读/写, 且无专门的校验盘。
  • 用来进行纠错的校验信息,是以螺 旋(Spiral)方式散布在所有数据盘上。
  • RAID 5 级常用于 I/O 较频繁的事务处理中。

RAID 6 级和RAID 7 级。在 RAID 6 级的阵列中,设置 了一个专用的、可快速访问的异步校验盘。该盘具有独立 的数据访问通路,具有比RAID 3 级及RAID 5 级更好的 性能,但其性能改进得很有限,且价格昂贵。RAID 7 级 是对RAID 6 级的改进,在该阵列中的所有磁盘,都具有 较高的传输速率和优异的性能。

概述

目的

为多道程序的运行提供良好的环境

  • 方便用户使用存储器
  • 提高存储器的利用率
  • 逻辑上扩充存储器容量

基本功能

  • 存储分配和回收
  • 地址变换
  • 存储保护
  • 存储共享
  • 存储器扩充

编译原理基础

源代码转化成进程的三个步骤

  • 编译compile:由编译程序将用户源代码编译成若干个目标模块
  • 链接linking:由链接程序将编译后形成的一组目标模块,以及所需要的苦函数链接在一起
  • 装入loading:由装入程序将装入模块装入到物理内存中

地址和空间

名空间:高级语言常常用符号名来访问某一个单元,将程序中由符号名组成的程序空间称作符号名空间
逻辑空间:源程序经过编译后形成目标程序,这个程序按照0为基址为顺序进行编址,原先用符号名访问的单元用单元号代替,这样目标程序占据一定的地址空间叫做逻辑地址空间
逻辑地址:在逻辑空间中每条指令的地址和指令要访问的操作数地址统称为逻辑地址
内存地址:内存中每个存储单元都有一个编号,称作内存地址
物理空间:所有内存地址构成的集合称为内存空间/物理空间,可进行一维线性地编号
地址映射Mapping:将逻辑地址转换为运行时由机器寻址的物理地址
498f9f12a3a9b94d372446ebe7591dbd

链接

源程序经过编译后得到一组目标模块,再利用链接程序将这组目标模块链接形成装入模块

  • 静态链接:程序运行前,将各个目标模块和他们所需的库函数,链接成一个完整的装配模块之后不再拆开
    • 相对地址的修改:每个其实模块用到相对地址,起始地址为0,链接成一个装入模块时要修改成模块的相对地址
    • 变换外部引用地址:外部调用符号也相应地变换相对地址
    • 缺点:不利于代码共享,不利于模块的独立升级,也可能链接不会执行的模块浪费存储空间和处理机时间
  • 装入时动态链接:装入一个目标模块时,若发生一个外部模块调用时间,将引起装入程序去找出相应的外部模块,装入内存并修改模块的相对地址
    • 优点:利于模块的独立升级和模块的共享
    • 缺点:可能链接不会执行的模块,装入后不能移动位置
  • 运行时动态链接:对某些目标模块的链接,是在程序执行中需要该目标模块时 ,由操作系统去找到该模块并将之装入内存,随后把它链接到调用者模块上
    • 优点:凡在执行过程中未被用到的目标模块,都不会被调入内存和 被链接到装入模块上,这样不仅可加快程序的装入过程,而且可 节省大量的内存空间。

装入

将可装入模块装入内存

地址重定位:将可执行文件的逻辑地址转化为内存物理地址的过程

  • 绝对装入方式
    • 在编译时就知道程序将驻留在内存中的具体位置,编译 程序产生绝对地址的目标代码
    • 优点:实现简单,无须进行逻辑地址到物理地址的变换
    • 缺点:程序每次必须装入同一内存区,程序员必须事先了解内存的使用情况,根据内存情况确定 程序的逻辑地址,不适于多道程序系统
  • 可重定位(静态重定位)方式
    • 编译时采用相对地址,即编译器假设是装入到从零开始的 内存位置
    • 优点:易实现,无需硬件支持
    • 缺点:程序重定位后就不能移动,因而不能重新分配内存,不利于内存的有效利用,程序在存储空间中只能连续分配,不能分布在内存的不同 区域,难于共享
  • 运行时重定位(动态重定位)装入方式
    • 程序的地址转换不是在装入时进行,而是在程序运行时动态 进行,需要硬件支持,即重定位寄存器,用于保存 程序在内存中的起始地址,是实现装入的主流方式
    • 优点:程序不必连续存放在内存中,可分散存储,可移动;便于共享;对于存储器紧缩、解决碎片问题极其有利
    • 缺点:需要硬件支持,实现存储管理的软件算法比较复杂;同一地址,可能多次转换。

需求

在单道程序设计中,内存的使用目的:

  • 供操作系统使用:驻留监控程序,内核
  • 供当前正在执行的程序使用

在多道程序设计中,必须作进一步细分,由于处理器长期空闲,因此必须有效分配内存来保证适当数量的就绪进程可以占用这些可用的处理器时间;

内存管理的功能需求

  • 重定位:进程在内存中进出,放置于不同位置的能力
  • 保护:保护进程的程序和数据不被未授权的进程访问和修改
  • 共享:不损害基本保护的前提下,必须对内存的共享区域进行受控访问
  • 逻辑组织:利于系统和硬件能有效地处理某种某块形式组织的用户程序和数据
  • 物理组织:计算机存储器的两级划分(内存和外存)的移动信息应该由系统负责;

内存分配(内存分区)

内存分配包括以下:

  • 连续分配:单一连续分配,涉及分区管理,内存扩充(覆盖和对换)
  • 离散分配:涉及对分页式,段式和段页式存储管理
  • 虚拟存储器:涉及请求分页存储,请求分段和段页式虚拟存储

连续分配方式

连续分配

原理:内存划分为系统区和用户区,整个用户区分配一个进程

适用场合:最简单,适合当用户和单任务OS

优点:易于管理

缺点:造成空间的浪费

分区管理

原理:将内存分为一些大小相等或不等的分区,每个应用进程个占用若干个分区,操作系统占用一个分区

特点:适用于多道程序系统和分时系统

内部碎片:占用分区之内未被利用的空间

外部碎片:占用分区之间难以利用的空闲分区

固定分区

原理:将内存划分为大小相等或不等的分区,在每个分区只装入一道程序,分区的划分有OS决定,一旦划分结束,总分区个数保持不变

特点

  • 适用于多道程序系统和分时系统
  • 支持多个进程并发执行

问题

  • 程序可能太大装不到一个分区
  • 内存利用率可能很低,程序小可能也要占用一个分区,形成内部碎片现象;

划分方法:分区大小相同/分区多种大小

分区描述表:通常将分区按大小排队,标明起始地址和分配状态,建立分区描述表

分配算法

  • 对于分区大小相同:使用哪个分区都没关系
  • 对于分区大小不同:最佳匹配(为空闲分区选择最佳任务/根据任务选择最佳空闲分区),或者最坏匹配

存储保护:防止某个作业破坏系统或者其他作业,通常采用界限寄存器实现,每个寄存器都对应两个代表上下限的寄存器用于越界保护;

优点

  • 比单一连续分配方法,提高内存的利用率
  • 可以支持多道程序,无外部碎片
  • 实现简单

缺点

  • 分区数目在系统生成时确定,限制系统中活跃进程的数目;
  • 小作业的内部碎片可能比较大;
  • 作业必须要预先估计自己要占用多大空间;
动态分区

根据进程的实际需要,动态地分配内存空间,因此动态分区的长度和数量是可变的;

使用动态分区的方式,需要维护:

  • 空闲分区表:记录每个空闲分区的情况;
  • 空闲分区链:通过指针的迭代拼接称双向链;

分配算法

  • 首次匹配算法First Fit
    • 要求空闲分区链以地址地震的次序链接,在分配内存时,从链首开始顺序查找,知道一个大小满足要求的空闲分区为止;
    • 为大作业分配大的内存空间创造了条件
    • 低地址空间不断被划分,留下难以利用的小空闲分区,增加查找查找开销
  • 循环匹配算法Next Fit
    • 为空闲分区构成循环链表,采用循环查找方式,设置一个开始查寻指针,用于指示下一次起始查询的空闲分区
    • 使得内存空闲分布更均匀,减小查找开销
    • 缺乏大的空闲分区
    • 空闲分区应该按照地址顺序排列
  • 最佳匹配算法Best Fit
    • 每次分配内存时,总是能把满足要求又是最小的空闲分区分配给作业
    • 产生的外部碎片小
    • 碎片太小往往难以利用,造成浪费
    • 按容量从小到大排列
  • 最坏适应算法Worst Fit
    • 每次满足要求又是最大的空闲分区给作业
    • 留下的空闲分区很大方便下一次利用
    • 不利于大作业
    • 按容量从大到小排列

分区管理

  • 分配:按照算法选择空闲分区,并在空闲分区表删除,添加新产生的空闲分区
  • 回收:当进程运行完毕释放内存时,需合并相邻的空闲分区,形成大的分区
  • 紧凑和动态重定位:将内存中的所有作业进行移动,使它们全都 相邻接,这样,可把原来分散的多个小分区合成一个大分区

存储保护:上、下界寄存器方法/基址、限长寄存器方法2

优点

  • 支持多道程序
  • 管理方案简单,不需要更多的软硬件开销
  • 实现存储保护的手段比较简单

缺点

  • 主存利用不够充分
  • 无法实现多进程共享存储器的信息(不是分段内存分配都无法实现)
  • 无法实现主村的逻辑扩充,进程的地址空间受物理内存的限制
伙伴系统

伙伴系统是固定分区和动态分区的折中方案;

设计可用的内存块大小为$2^k(L\le k\le U)$字节,整个分配空间被视为$2^U$的块;

对于进程申请$2^{i-1}< p\le 2^i$的空间,可以用以下的递归算法找到大小为$2^i$的块;

  1. 查找大小为$2^i$的空闲分区,若找到则分配;
  2. 若未找到大小为2i的空闲分区,则查找大小为$2^{i+1}$的空闲分区 ;
    • 若找到,则将该空闲分区划分为相等的两个分区(一对伙伴),其 中的一个用于分配,另一个分区加入大小为$2^i$的空闲分区链中;
  3. 以此类推

内存扩充

内存扩充:借助大容量辅存在逻辑上实现内存扩充,来解决内存容量不足的问题;
覆盖和交换:需要在较小可用内存运行较大的程序,在任何时候,只在内存中保留所需的指令和数据,当需要时,在从外存中写回内存

覆盖overlay

基本思想:一个程序的几个代码段或数据段,按照时间先后来占用公共的内存空间。

实现:

  • 将程序的必要部分代码和数据常驻内存;
  • 可选部分在其他程序模块中实现,平时存放在外存中(覆盖文件),需要用到时才装入到内存;
  • 不存在调用关系的模块不必同时装入到内存,可相互覆盖
交换swapping

基本思想:把内存中展示不能运行的进程或者暂时不使用的程序和数据换出到外存上,以腾出足够的内存空间
粒度:

  • 进程交换:解决内存紧张问题,进一步提高内存利用率
  • 页面交换,分段交换:可以支持虚拟存储系统

管理:

  • 外存:对换区比文件区侧重于对换速度
  • 对换区一般采用连续分配

优点:

  • 换入和换出操作由内存管理模块,与程序结构无关

离散分配方式

解决问题

一个进程的分配的内存由多个离散的空间组成

  • 固定分区存在内存碎片
  • 动态分区存在外部碎片
  • 可重定位动态分区的系统开销大

基本单位

分页式存储管理

  • 页面:程序地址空间被划分为若干固定大小的片段
  • 页框:物理内存被划分成相同大小的块

分段存储管理

  • 以段为基本分配单位的存储管理方式

段页式存储管理

  • 段内分页

分页式存储管理

存储管理系统负责用户空间,物理空间的划分编号;
以下是程序空间到物理空间的映射,程序的每一个页分散到物理空间的页;而从每一页看地址都是连续的;
image-20241029195523122
逻辑地址结构转换物理地址
假设对于32位的机器,页面大小为$L=2^{12}$,给定逻辑地址空间的地址为$A$

  • 页号$P=\lfloor \frac{A}{L} \rfloor$:12-31位
  • 页内偏移量$d\in [0,L)$:0-11位

对于16位的机器而言,页号占6位,页内偏移量占10位;

页表则维护每个页面对应的页框信息,即页号和段号的映射

  • 存储在内存
  • PCB保存页表的起始地址
  • 快表:对页表的使用频度高表项用高速缓存器存储

优点:

  • 存在页内碎片,但是碎片小,内存利用率高
  • 实现了离散分配
  • 无外部碎片

缺点:

  • 需要专门的硬件支持,尤其是快表
  • 不支持动态链接,不易共享

分段存储管理

引入原因:

  • 更自然组织信息:通过段名访问程序段和数据段
  • 信息共享和共享:段是信息的逻辑单位,页只是存放信息的物理单位
  • 动态增长:数据段事先无法知道大小
  • 支持运行时动态链接

组织方式

  • 段:定义一组逻辑信息,段+段内偏移量

对于32位的机器,段号:24-31位,段内偏移量:0-23位

  • 从0开始编址
  • 长度:由段定义的逻辑信息决定
  • 每个逻辑段庄在到一段动态内存区域

段表:记录逻辑段和物理段的对应情况
段号+段长+段首址+控制信息

  • 段表寄存器中存放段表的起始地址和段表长度
  • 检查段号和段内偏移量越界:非法产生越界错误
  • 检查访问控制字段:确定是否合法

image-20241029195650804

优点:

  • 便于模块化设计
  • 便于动态链接
  • 便于共享与保护
  • 无内部碎片

缺点:

  • 地址转换需要硬件支持(段表寄存器)
  • 分段最大尺寸受主存可用空间的限制
  • 有外部碎片

段页式存储管理

分段和分页的比较

方面 分页 分段
从设计目的来看 页是信息的物理单位,分页的目的是实现离散分配,减少内存的外部碎片,提高内存的利用率。或者说,分页仅仅是由于系统管理的需要而不是用户的需要。 段则是信息的逻辑单位,它含有一组意义相对完整的信息。分段的目的是为了能更好地满足用户的需要。
从系统实现上看 页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面; 而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
从功能实现上看 不易共享和运行时动态链接 易于共享和运行时动态链接
从编址方式来看 分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址; 分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。

段页式存储管理

  • 采用分段方法组织用户程序,用户程序采用模块化设计,用若干段划分
  • 采用分页方法分配和管理内存,内存分成若干页框,程序每个段风格成若干页后装入内存

逻辑地址:段号s+段内页号p+页内偏移量w

  • 检查段号,段表访问控制字段,页号是否越界
  • 页内偏移量送入物理地址的低端

image-20241029195722276

优点

  • 离散存储
  • 内存利用率高
  • 便于保护和共享,支持动态链接
  • 无外部碎片

缺点

  • 地址转换复杂
  • 有内部碎片

虚拟存储方式

虚拟存储方式由虚拟内存机制实现

虚拟内存

硬件和控制结构

理论依据

常规的存储管理技术:

  • 一次性:需要作业全部装入内存运行
  • 驻留性:作业装入内存后,一直驻留内存直到作业结束
  • 难以满足大作业运行需求和大量作业并发,对于已装入内存的代码利用率低

程序的局部性原理:在一段较短时间内,程序的执行仅局限于某个部分,相应地访问的存储空间也局限于某个区域

  • 时间局限性:下一次指令执行,数据访问集中在较短时间内;
  • 空间局限性:下一次执行指令,数据访问集中在较小的区域;

程序运行特点:

  • 大部分时间顺序执行
  • 即使有跳转,也仍局限在某些函数下
  • 许多循环结构下,少量指令多次执行
  • 对数据结构的操作往往局限于小范围

虚拟内存方案:

  • 将当前要执行的部分页/段读入内存,就可以运行程序
  • 缺页/段时,处理器临时通知;
  • 暂不使用的页/段换出内存;

这表明虚拟内存方案是可行的;

虚拟存储器

功能:

  • 请求调入和置换:从逻辑上对内存容量加以扩充
  • 总容量由内存容量和外存容量之和决定
  • 运行速度接近内存,位成本接近外存

特征

  • 离散性:程序在内存中离散存放
  • 局部性:进程无需全部驻留内存,只需载入必要的进程空间
  • 对换性:允许进程在运行过程中换入、换出
  • 虚拟性:能够从逻辑上扩充内存容量,使用户所看到的内存远大于内存容量

硬件支持:

  • 相当数量的外存
  • 一定容量的内存
  • 请求分页或分段的页表或段表机制
  • 缺页或缺段机构
  • 地址变换机构

常见技术

  • 请求分页存储管理
  • 请求分段存储管理
  • 请求段页式存储管理

较小的页面有利于减少页内零头,但是可能导致页表过大,降低命中率;
较大的页面,内外存交换效率高,但是带来额外开销;
需要一种tradeoff机制;

二级页表

快表TLB

原理:基于局部性原理,提高地址变换速度,为进程页表设置一个专用的高速缓冲存储器(Translation Lookaside Buffer);

地址转换:

  1. 分离提取页面号+页内偏移
  2. 检查页面号是否合法,非法报越界错误
  3. 根据页面号检索快表
    • 若命中, 提取页框号,进入5;
    • 若未命中,重新检索页表,结果载入快表,替换许久不用的表项
  4. 检查访问控制字段,非法则报错
  5. 计算物理地址:页框$\times$页面大小+页内

页表存放在虚存中,则要实现一次页面访问需两次访问 物理内存 存

  • 第一次是访问页表,确定所存取页面的物理地址;
  • 第二次根据该地址存取页面数据。

操作系统软件

原理:

  • 建立在分页机制上:页面,页框和页表
  • 请求调页和页面置换功能:部分页面载入内存,对换机制和将页面作为换入换出的基本单位

页表机制

1
<页号><页框号><状态位P><访问字段A><修改位M><外存地址>
  • 状态位:指示该页是否调入内存
  • 访问字段:记录指定时间段的访问次数;
  • 修改位:该页调入内存后是否被修改
  • 外存地址:用于指出该页在外存上的地址

缺页中断机制

每当要访问的页面不在内存中,产生缺页中断,请求OS调入;

  • 在指令执行期间产生和处理中断信号;
  • 一次指令执行期间,可能产生多次缺页中断;
  • 带快表的基本分页地址:
  • 缺页中断处理
  • 页面换出
    image-20241107111808996
    image-20241107111829317

置换策略

概念

置换策略包括分配页面,调入页面和置换页面的内容

  • 分配页面:如何为每个进程分配页面
  • 调入页面:何时调入页面,从哪调入页面和调入哪些页面
  • 置换页面:交换区如何组织,换出页面的选择和换出实现

分类

页面分配策略

  • 固定分配:进程分配到的物理块在进程运行期间不再改变
  • 可变分配:进程运行期间根据情况增加或减少物理块

置换策略

  • 局部置换:发生缺页时选择进程自己的物理块置换
  • 全局置换:可以将os的空闲物理块分配给缺页进程,也可以别的进程持有的物理块置换到外存后分配给缺页进程

可组合出以下三种适用的策略

  • 固定分配局部置换
  • 可变分配局部置换
  • 可变分配全局置换
页面调入

何时调入页面:

  • 预调页策略:准确度不高
  • 请求调页策略:发现缺页再调入,系统开销较大

调入哪些页面:

  • 请求调页策略:调入发生缺页的页面
  • 预调页策略:调入临近页面

调页的位置:

  • 对换区:修改过的页被换出时入对换区,比较快
  • 文件区:比较慢
  • UNIX方式
页面换出
  • 通常为全局置换
  • 调页且发现无空闲页框时,交换进程周期性检测
页面置换
  • 查找所需页在磁盘上的位置
  • 查找一个空闲页框,如果有空闲页框,就使用它;如果没有空闲页框,就选择一个页面并淘汰之;
  • 将淘汰页面的内容写到磁盘上,改变页表
  • 将所需页读入(新)空闲页框,改变页表
  • 重启用户进程

image-20241107111933204

置换算法

概念:选择换出页面的算法
评价标准:页面交换的频率
设计目标:优先换出不再访问的页面和最久不访问的页面
设计原则:基于过于页面访问行为预测将来的页面访问

最优置换算法OPT

基本思想:换出不再访问的页面,换出下次访问距离当前时间最长的页面
评价:

  • 属于理想算法,通过未来页面走向选择被淘汰的页面,可以保证最少的缺页中断次数
  • 需要知道未来访问的顺序,不可能实现,是其他算法的baseline

例子
发生缺页中断次数:9
页面置换次数:6
image-20241107111957416

先进先出算法FIFO

基本思想:换出最早调入内存的页面
实现:采取链表结构
评价:

  • 简单易于实现
  • 未考虑程序的时间局部性原理
  • 存在Belady现象:随着分配的页框数增加,缺页中断次数反而增加

例子
发生缺页中断次数:14
页面置换的次数:11
image-20241107112012243

最近最久未使用算法LRU

基本思想:时间局部性原理
算法:选择最近一段时间最长时间没有被访问过的页面淘汰
实现:寄存器表+双向链表
评价:

  • 性能较好,因为基于时间的局部性原理
  • 开销过大,需要统计页面的访问时间信息,获取最久未使用页面,又是页面数过大,寄存器表不现实;

例子:
发生缺页中断的次数:12
页面置换的次数:9

image-20241107112101674

时钟置换算法CLOCK Not Recently Used

基本思想:对LRU算法的近似,换出最近未访问的页面的NRU算法;
实现:

  • 每个页面设置访问位R,访问时置1
  • 页框内所有页面保存在环形链表中
  • 发生缺页中断时,优先检查表指针指向页面,若R=0,淘汰页面;R=1,清除R位,前向移动指针,找到访问位为0的页面后换出;

评价:

  • 算法简单
  • 性能和置换间的间隔密切相关,过大过小可调整随机选择换出页面
  • 未考虑页面修改情况

image-20241107111259611

对页面修改进行改进:页面分类

  1. 最近未被访问,未被修改:最佳淘汰页
  2. 最近未被访问,但已被修改
  3. 最近被访问,未被修改
  4. 最近被访问且被修改

改进实现:

  1. 选择1类页面
  2. 若失败,寻找第2类页面,并把扫描过的页面访问位置0
  3. 若步骤2失败,回到步骤1

缺页率

发生缺页的次数/总访问次数

  • 页面置换算法
  • 页面大小
  • 进程所占的页框数
  • 程序本身

矩阵int a[100][100]以行优先进行存储。有一请求分页存储管理系统,物理内存共有3页,其中1页用来存放程序,其余2页用于存放数据。假设程序已在内存中占1页,其余2页空闲;数组中的元素按行编址存放。

1
2
3
4
5
6
7
for (i=0; i<=99; i++)
for (j=0; j<=99; j++)
a[i][j]=0;

for (j=0; j<=99; j++)
for (i=0; i<=99; i++)
b[i][j]=0;

假定两个内存页,每页200个数据;

程序A对数组的访问顺序与存储顺序一致,每访问2行数组元素就会产生一次缺页中断, 故缺页中断次数为50

程序B对数组的访问顺序与存储顺序不一致,每访问 数组元素就会产生一次缺页中断,故缺页中断次数为5000

平均访问时间:$(1-p)m_a+pd_a$

  • 缺页率为$p$
  • 内存访问时间为$m_a$
  • 发生缺页时访问时间为$d_a$

有效访问时间构成:

  • 缺页服务时间
  • 进程重新执行时间
  • 页面调入时间(主要):寻道时间+旋转时间+数据传送时间

工作集

进程对地址空间的访问不均匀,在确定的时间内,进程往往只访问固定的几个页面;
工作集:在某段时间间隔内,进程实际要访问的页面的集合

  • 进程分配的页框数不能少于工作集大小
  • 不同时刻,进程的工作集大小可能不同,系统根据缺页率动态调整进程的分配页框数

缺页率和物理块数关系

image-20241107113845398

抖动/颠簸thrashing

抖动是虚拟存储的典型问题

  • 页面被频繁地换入换出,缺页率增加
  • 内存有效存取时间加长
  • 系统吞吐量骤减,系统难以完成任务

原因:

  • CPU利用率低,调度程序增加并发,导致内存不足,缺页,I/O忙碌,CPU空闲
  • 多道程序并发度高,每个进程分配的页框数数目少

image-20241107113904932

抖动的预防

  • 采取局部置换策略:某进程发生缺页时,仅在自己内存空间范围内置换页面,创建新进程不会几张其他进程的内存空间
  • CPU调度程序采取工作集算法:防止调入过多的新任务,每个进程应具有超过其工作集大小的页框数
  • L=S准则:发生缺页的平均时间L等于处理缺页故障的平均时间S,此时系统具有最好的并发度
  • 挂起若干进程

请求分页存储管理

优点

  • 存在页内碎片,但碎片相对较小,内存利用率较高
  • 实现了离散分配
  • 无外部碎片
  • 提供了虚拟存储器,使大作业可以在较小的实际内存中运行
  • 并发度高

缺点

  • 必须有相应的硬件支持
  • 不支持动态链接,不易实现共享
  • 可能发生系统抖动现象

原理

  • 建立在基本分段机制上:
    • 程序的逻辑地址空间被划分为若干个大小不同的段
    • 每个逻辑段装载到一段连续的物理内存区域
    • 段表记录逻辑段和物理段的对应情况
  • 引入请求调度和分段置换机制
    • 部分逻辑段载入内存
    • 对换机制
    • 以段作为换入或换出的基本单位

段表机制

段表寄存器地址组成如下:

1
<段号><段长><段首址><存取方式><访问位A><修改位M><状态位P><增补位><外存地址>
  • 访问字段A:用于记录本段在一段时间内被访问的次数
  • 修改位M:表示该段在调入内存是否被修改
  • 状态位P:用于指示本段是否调入内存
  • 增补位:特殊字段,用于表示本段在运行时是否动态增长
  • 外存地址:指示本段在外存中的地址;

缺段中断

每当所要访问的段不在内存时,便产生缺段中断,请求OS 将所缺之段调入内存。

段中断不会发生一条指令被分割在两个段的情况;

image-20241107105501061

地址转换

访问一个段地址[s][w]时,检查三种条件是否发生错误:

  • w超过段长:报越界错误
  • 存取方式位不符合:触发中断保护
  • 检查段s是否在主存:缺段中断处理

image-20241107105956335

动态链接&链接中断

动态链接实现:请求分段存储管理

程序运行时,只讲主程序段装配好,调入内存,其他段在运行时装配完成;

调用新段时,将新段装配好并链接主段;

段页式虚拟存储技术

  • 建立在段页式存储技术之上
    • 程序的逻辑空间划分为若干大小不同的段
    • 每个段划分为若干固定大小的页面
    • 物理内存划分为若干固定大小的页框
    • 页面可以载入任意页框——页表记录载入情况
  • 引入请求调页和页面置换机制
    • 部分页面载入内存
    • 对换机制
    • 以页面作为换入或换出的基本单位
  • 地址变换:先查段表,再查该段的页表

共享和保护

整个系统共享一张共享段表:段本身信息,引用者信息;

共享段表地址组成:

1
<段名><段长><内存地址><状态><外存起始地址><共享进程计数count><状态><进程名><段号><存取控制>

共享段的分配:第一次访问需要分配内存,增加共享段表,修改进程段表,后续访问无需分配内存;

保护:

  • 段号越界检查
  • 段内页号越界检查

其中环保护中,内环可访问外环数据,外环请求内环服务;

image-20241107111028443

0%