操作系统 第二章 进程与PCB--笔记*1

课前问题:

1.允许并发是不是说多道程序可随便交替执行?

答:并发程序执行时具有不确定性(如果结果不确定,那程序将毫无意义),因此所谓并发应是“有控制的并发”,“能控制且合理控制的并发”

2.操作系统怎么管理多道并发程序?

答:用进程管理,进程有三种状态,就绪·执行和阻塞,而这些信息都记录在进程控制块PCB中,因此操作系统首先查看PCB获取状态,然后调度

3.操作系统怎么知道有几个进程可运行?又怎么知道哪个程序运行不下去需要换人了?操作系统怎么知道要运行的程序在哪里?

答:通过查看PCB

笔记

引入概念:
前趋图:是指一个有向无循环图,可记为DAG(Directed Acyclic Graph),它用于描述进程之间的先后顺序(图中每个节点可用来表示一个进程或程序段,乃至一条语句,节点间的有向边则表示两个节点之间存在的偏序或前驱关系)

程序顺序执行时的特征:

  1. 顺序性
  2. 封闭性(程序一旦执行,其结果不受外界因素影响)
  3. 可再现性(程序只要初始条件一样,不论如何停顿,结果保持不变)

并发程序执行时的特征:

  1. 间断性
  2. 失去封闭性(程序会受其他程序影响–需要争抢资源)
  3. 不可再现性
    <–结果不确定,程序执行将毫无意义,因此多道并发是有控制的并发,要能控制并且合理控制–>
    错误并发:

例如两个独立的程序A、B,正好使用了同一内存变量空间:
程序A:每执行一次都做a+1;
程序B:每隔一定时间Print b,b=0。
设两者都要循环10次,则:
A的角度看,执行10次,结果应为10
B的角度看,执行10次,结果都应为0
并发交替执行可能的结果:
– 如果执行2次时被B操作了N,那么结果为8;
– 如果执行7次后才被B影响了N,结果为3;
没有任何干预下,会出现结果不可再现的并发,即错误的并发。

进程
程序:程序段+数据段(按事先设计的功能和性能要求执行的指令序列)。
进程实体:程序段+数据段+PCB
PCB(Process Control Block):进程控制块–存放进程的管理和控制信息的数据结构,

进程:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位

进程的特征

1.结构性特征,进程的根本——PCB
2.动态性
<1>进程实质上是进程实体的一次有生命期的执行过程。程序只是静态的一组有序指令。
<2>进程最基本特征
3.并发性
<1>多个进程实体同存于内存中,在一段时间内同时运行。
<2>有PCB的程序才能并发。
4.独立性
5.异步性

各进程相关的共享资源:cpu·存储器·I/O设备·时间片(这些资源在进程状态变化中对进程运行有影响)

进程的三种基本状态

(1)就绪状态(Ready)
进程获得除CPU之外的所有必需资源,一旦得到CPU控制权,可立即运行。
(2)运行状态(Running)
进程已获得所有运行必需的资源,正在处理机上执行。
(3)阻塞状态(Blocked)
正在执行的进程由于发生某事件(请求I/O、申请缓冲、时间片到)而暂时无法执行时,便放弃CPU后暂停

在这里插入图片描述

注意:
单处理机系统,执行态的进程只有一个
就绪态、阻塞态的进程可有多个。一般讲它们分别排称一个队列,称就绪队列、阻塞队列。
阻塞队列有的会根据不同原因再排成多个队列。

猜你喜欢

转载自blog.csdn.net/qq_40310816/article/details/83050500