0%

操作系统第四节课笔记-程序执行分析及前趋图

操作系统第四节课笔记-程序执行分析及前趋图pdf文档下载

程序执行分析及前趋图

前趋图概念及举例说明

1
2
3
4
5
6
7
8
9
graph LR
A[P1]-->B[P2]
A-->C[P3]
A-->D[P4]
B-->E[P5]
C-->E
D-->F[P6]
F-->G[P7]
E-->G
  • 前趋后继关系就是依赖关系
  • 后继依赖前驱
  • P2和P3可以并发
  • Pi->Pj
    • 称Pi是Pj的直接前趋
    • 称Pj是Pi的直接后继

程序的顺序执行

程序的构成结构

  • 顺序
  • 选择
  • 循环

顺序执行的特征

  • 顺序性
    • 处理机的操作,严格按照规定顺序执行
  • 封闭性
    • 封闭环境下运行,对系统资源独占
    • 只有当前程序才能改变资源状态
    • 执行结果不受外界影响(debug除外)
  • 可再现性
    • 只要环境和条件相同,程序的结果相同

程序的顺序性使其变得易于维护

程序的并发执行

一段时间内共享计算机资源

1
2
3
4
graph LR
A[S1]-->C[S3]
B[S2]-->C
C-->D[S4]

S1或S2谁先执行都可以,因为他们没有前趋,没有依赖关系,可以并发执行

只有S1S2执行结束后S3才能执行,S3执行结束后,S4才能执行

并发时的特征

  • 间断性
    • 执行->暂停执行->执行的活动规律
  • 失去封闭性
    • 因为共享系统资源,每个程序都可能对系统资源行程改变,程序一定受其他运行程序影响
  • 不可再现性
    • 程序可能受到其他程序影响,资源都有可能发生变动

要想实现程序间并发执行结果可再现,区别于静态描述程序的动态描述结果

进程的定义及特征

进程的引入

  • 并发、共享及多程序环境
  • 基于程序的概念已不能完整、有效的描述并发在内存中的运行状态
  • 必须建立并发程序的新的描述和控制机制
  • 基于程序段、数据段和进程控制块而引入进程的概念以对应程序的运行过程
  • 进程控制块存放了进程标识符、进程运行的当前状态、程序和数据的地址以及关于该程序运行时的CPU环境信息

进程的定义

  • 进程是可并发执行的程序在一个数据集合上的进行过程,亦即进程实体的运行过程
    • 进程实体由程序段,数据段及进程控制块三部分构成
  • 进程是系统进行资源分配和调度的一个独立单位

进程和程序的区别于联系

  • 结构特征
    • 程序段、数据段及进程控制块
  • 动态性
    • 生命周期及执行本质
  • 并发性
    • 共存于内存、宏观同时运行
  • 独立性
    • 调度、资源分配、运行
  • 异步性
    • 推进相互独立、速度不可知

进程状态及状态转换图

进程的基本状态及状态转换

1
2
3
4
5
graph TD
D[新状态]-->|接纳|A
A[就绪状态]-->|调度|B[运行状态]-->|I/O请求或等某事件|C[阻塞状态]-->|I/O完成或时间发生|A
B-->|超时|A
B-->|结束|E[中止状态]

三种核心状态

  • 检查资源,对进程记账

    其中\(I\) 为传信率,\(S\) 为波特率,\(N\) 为每个码元负载的信息量,而\(\log _{2}{N}\)以比特为单位。

    就绪状态

  • 运行状态

  • 阻塞状态

状态特性

  • 单向
    • 运行->阻塞->就绪
  • 双向
    • 运行->就绪
    • 就绪->运行

进程的父子关系

  • 子进程由父进程fork出来

僵尸进程

  • 一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程

孤儿进程

  • 父进程调用两次fork,杀死子进程。剩下的孙子进程会成为孤儿进程,孤儿进程由init程序进行处理。 因为init是一切进程的父进程。

引入程序挂起状态

  • 终端用户的请求
    • 发现问题
  • 父进程的请求
    • 考察、修改或协调子进程
  • 操作系统的需要
    • 检查资源,对进程记账
  • 负载调节
    • 保证实时系统正常运行

UNIX进程状态转换图

Linux进程状态转换图

课后习题

  1. 程序在独占处理器的情况下运行时。将会体现出顺序性的执行特征,这是指处理机的操作,严格按照规定顺序执行
  2. 现在操作系统中,进程是系统实施内存资源分配和管理的一个独立实体。
  3. 与程序相比,进程是一个动态的概念,具有一定的生命周期,并支持多道程序并发执行。关于并发说法最准确的说法是多道程序同时进入内存,并在宏观上(即一段时间内)同时运行
  4. 关于进程各种基本状态之间的转化,不可能直接发生的状态转化为阻塞状态=>运行状态
  5. 进程在系统采用时间片轮转调度算法且分配给进程的时间片用完的条件下,将会从运行状态转化为就绪状态。
  6. 关于进场的状态转换,引入挂起状态的的原因不包括进程进行I/O操作室应保证处理器的高效利用
  7. 下面对进程的描述中,错误的是
    1. 晋城市动态的概念(√)
    2. 进程的执行需要处理机(√)
    3. 进程具有生命周期(√)
    4. 进程是指令的集合(进程里面还包含栈/堆等数据结构的非指令结构×)
  8. 在进程管理时,当等待的事件出现时,进程从阻塞状态变为就绪状态。
  9. 分配到必要的资源并获得处理机时的进程状态是执行状态
  10. 一个进程用完了分配给它的时间片后,它的状态变为就绪状态
  11. 操作系统通过PCB对进程进行管理。
    1. PCB:进程控制块(Processing Control Block)
  12. 关于进程的状态转换,当进程处于普通阻塞状态的情况下,不可能直接转化为挂起就绪状态。
  13. 多到程序环境下,操作系统分配资源以进程为基本单位。
  14. 进程的动态性和并发性是两个很重要的属性。
  15. 进程被创建后即进入就绪队列排队。
恰饭,恰饭