第二章-进程(2)

进程是可并发执行的程序在数据集合上的执行过程,具有顺序性、封闭性和可再现性的特征。程序的并发执行会带来间断性、失去封闭性和可再现性。Bernstein条件用于判断并发执行的可再现性。进程的状态包括运行、就绪和阻塞,通过不同的状态转换来管理进程。PCB(进程控制块)是进程存在的标识,包含进程描述、处理机状态、调度信息和资源占有等重要信息。操作系统通过原语操作进行进程的创建、撤消、阻塞、唤醒等控制。
摘要由CSDN通过智能技术生成

一、进程的引入

(1)程序的顺序执行:
P1:a=x+y
P2:b=a-5
P3:c=b+1
程序总是按照P1→P2→P3的顺序执行。
特点:

  • 顺序性:处理机的操作严格按规定顺序执行。
  • 封闭性:程序执行时,独占系统资源。
  • 可再现性:当初始条件相同时,程序多次执行的结果相同。

(2)程序的并发执行
P1:a=5
P2:b=6
P3:c=a+b
P4:d=c+1
程序按照P1/P2→P3→P4的顺序执行。
特点:

  • 间断性:程序在并发执行时,形成了相互制约关系。相互制约将导致并发程序具有“执行—暂停—执行”这种间断性的活动规律。
  • 失去封闭性:系统中的资源供多个程序共享,致使程序的运行失去了封闭性。
  • 失去可再现性。

(3)程序并发执行的条件Bernstein
Bernstein条件:
读集:R(Pi)={a1,a2,…,am} 程序Pi执行期间参考的变量集合。
写集:W(Pi)={b1,b2,…,bm} 程序Pi执行期间改变的变量集合。
两个进程P1,P2若满足:R(P1)∩W(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)={}则P1,P2并发执行,且具有可再现性。

例如:
P1:a=5
P2:b=6
P3:c=a+b
P4:d=c+1
P1、P2可以并发执行吗?P3、P4可以并发执行呢?
解:
P1:a=5
P2:b=6
R(P1)={}   W(P1)={a}    → R读取右边的变量;W读取左边的变量,没有变量则为空集
R(P2)={}   W(P2)={b}
R(P1) ∩W(P2)={}   R(P2) ∩W(P1)={}  W(P1) ∩W(P2)={}
R(P1)∩W(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)={}
P1、P2可以并发执行。

P3:c=a+b
P4:d=c+1
R(P3)={a,b}   W(P3)={c}
R(P4)={c}    W(P4)={d}
R(P3) ∩W(P4)={}
R(P4) ∩W(P3)={c}
R(P3) ∩W(P4) ∪R(P4) ∩W(P3)∪W(P3)∩W(P4) ={c}
P3、P4不能并发执行。
(4)进程的定义
进程:可并发执行的程序在一个数据集合上的执行过程(实质)。
进程与程序的关系:

进程程序
动态的静态的
并发的顺序的
暂时的永久的

数据结构=程序+数据+PCB
程序与进程不是一一对应关系。

二、进程的状态及组成

(1)三种基本状态

  • 运行态:进程正在处理机上运行的状态。
  • 就绪态:进程已获得了除处理机之外的所有必要资源,只要获得处理机就可以运行的状态。
  • 阻塞状态:进程由于等待输入输出操作或某个同步事件而暂停运行时,就处于阻塞状态。
    在这里插入图片描述
状态转化说明
就绪态→运行态处于就绪态的进程具备了运行条件,但未能获得处理机而没有运行
运行态→就绪态正在运行的进程由于规定的时间片用完而暂停执行
运行态→阻塞态正在运行的进程可能需要等待某些资源(例如进程请求I/O、等待某个事件或请求访问某个临界资源)
阻塞态→就绪态获得所等待的条件和资源,具备了运行条件

注意:没有阻塞态→运行态就绪态→阻塞态

(2)五种状态的状态转换图
在这里插入图片描述
(3)进程的挂起状态
挂起状态的作用:

  • 内外存对换的需要:为了缓解内存的紧张,我们可以将处于阻塞状态的作业调到外存。
  • 用户调试程序的需要:用户需要调试修改自己的程序时,需要把进程调入到挂起状态。
  • 实时系统中调节负载的需要
    在这里插入图片描述
    (4)进程控制块(PCB)
    进程通常有程序段、数据段、栈栈和PCB四部分构成,进程控制块是进程存在的唯一的标识。
    PCB的作用:就是使程序能成为独立运行的单位,并可和其他进程并发执行。
    进程控制块PCB的内容:
进程描述信息说明
进程名创建者提供的名字
进程标识符区分每一个进程(系统通常为进程分配一个唯一的整数)
用户名创建该进程用户的名字
处理机状态信息说明
通用寄存器当进程运行时用于暂存信息的
指令计数器存放要访问的下一条指令
程序状态字(PSW)寄存器包括程序执行的状态信息,如执行方式,中断允许位
栈指针每个程序都有一个或多个与之相关的地址栈
进程调度信息说明
进程状态指明该进程所处的状态
进程优先级表示进程的优先级,优先级高的先获得处理机
运行统计信息这些信息与采用的调度算法有关,包括进程执行的时间,等待的时间
进程阻塞的原因记录进程阻塞的原因
进程控制和资源占有量信息说明
程序入口地址进程对应程序和数据的内存地址
程序的外存地址进程被调出使用的地址
进程同步及通信机制进程在执行中,可能与其他进程有同步关系,进程的信号量都有存放在PCB中
资源占有信息列出了除CPU之外进程所需要的全部资源及已经占用的资源情况
链接指针本进程所在队列的下一个进程的PCB的地址

三、进程控制

操作系统的内核:
核心态:具有较高的特权,能执行一切命令,访问所有寄存器和存储区。
用户态:具有较低特权,只能执行规定的命令,访问指定的寄存器和存储区。
内核:

  • 硬件的第一次延伸。
  • 系统将一些与硬件紧密相关的模块放在内核,中断处理,时钟管理
  • 内核在执行某些基本操作时,往往是利用原语操作实现的。

原语:

  • 原语由若干条指令构成、用于完成一定功能的过程。
  • 原语是“原子操作”。即一个操作中的所有动作,要么全做,要么全不做。换言之,原子操作是一个不可分割的操作。

进程创建:
进程创建的事件:用户登录;新作业进入系统;提供服务;应用请求。
创建原语要做的工作:申请空白PCB;为进程分配资源;初始化PCB(初始化进程描述信息,初始化处理机状态信息初,始化进程控制信息);将新进程插入就绪队列。
进程的撤消:
引起进程撤消的事件:进程正常结束;进程异常结束;外界干预。
撤消原语要做的工作:查找撤消进程的PCB若;处于执行状态,终止之,并进行进程调度;若有子孙,予以终止;归还资源;从所在队列移出。
进程的阻塞与唤醒:
引起进程阻塞的事件:请求系统服务;启动某种操作;数据尚未到达;无新工作可做。
阻塞原语要做的工作:停止进程的执行;将进程插入阻塞队列,改变进程在PCB中的状态;重新调度。
唤醒原语要做的工作:将进程从阻塞队列解下;将进程插入就绪队列;改变进程在PCB中的状态。
进程的挂起与激活:
挂起原语要做的工作:检查被挂起进程的状态;如进程处于就绪状态,将进程从就绪状态变为就绪挂起状态;如进程处于阻塞状态,将进程从阻塞状态变为阻塞挂起状态;如进程正在运行,将进程变为就绪挂起状态,并重新调度。
激活原语要做的工作:检查被激活进程的状态;如进程处于就绪挂起状态,将进程从就绪挂起状态变为就绪状态;如进程处于阻塞挂起状态,将进程从阻塞挂起状态变为阻塞状态;若系统为抢占式系统,则进行进程调度。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值