操作系统(二)进程的描述与控制

本文详细介绍了操作系统的进程描述与控制,包括进程的前趋图、程序的顺序和并发执行、进程状态转换、进程控制块PCB的作用和内容、进程的创建、终止、阻塞、唤醒、挂起与激活。此外,还涵盖了进程同步的机制,如信号量、管程,以及进程通信的不同类型和实现方式。文章最后讨论了线程的基本概念,比较了进程与线程的区别,并分析了线程的实现和管理。

进程的描述与控制

前趋图和程序执行

前趋图

为了更好的描述程序的顺序和并发执行情况,引入了前趋图,前趋图是一个有向无环图(DAG),它用于描述进程之间执行的先后顺序,图中的每个节点可用来表示一个进程或程序段,乃至一条语句,节点间的有向边表示两个节点间存在偏序关系(前趋关系),此外,每个节点还应该具有一个权重,用来表示该节点所罕有的程序量或程序的执行时间,前趋图中不允许出现环

  • 初始节点:没有前趋的节点

  • 终止节点:没有后继的节点

程序顺序执行

通常,一个应用程序由若干个程序段组成,每一个程序段完成特定的功能,它们在运行时,总是按照某种特定的次序先后执行,仅当前一程序执行完后才运行后一段程序段

程序顺序执行的特征:

  • 顺序性

程序按严格的顺序执行

  • 封闭性

程序运行时独占全机资源,程序执行时不受外界因素影响

  • 可再现性

只要程序的初始条件和执行时的环境相同,则结果相同

程序的并发执行

程序的并发执行中,程序间不再有前趋关系,不再是顺序执行

只有没有前趋关系的程序之间才能并发执行

程序并发的特点:

  • 间断性

程序在并发运行时,由于共享系统资源,导致它们之间产生了相互制约的关系,在执行时具有“走走停停”的特征

  • 失去封闭性

由于程序并发执行时,程序之间共享系统资源,导致任一程序在运行时的运行环境都会受到其他程序的影响

  • 不可再现性

由于失去了封闭性,所以也失去了可再现性

进程的描述

由于程序并发执行时的 失去封闭性不可再现性,所以导致程序之间时不能并发执行的。

进程的定义和特征

为了能够使程序并发执行,同时对并发执行的程序加以描述和控制,从而引入了进程

为了使并发执行的每个程序都能独立运行,在操作系统中为之配置了一种专门的数据结构,称为进程控制块(PCB)。系统利用PCB来描述进程基本的情况和活动过程,进而控制和管理进程

进程实体包含:

  • 程序段

  • 数据段

  • PCB

进程的特征:

  • 动态性

进程由创建产生,由调度而运行,由撤回而消亡

  • 并发性

  • 独立性

进程作为独立运行、分配资源的独立单位

  • 异步性

进程是按异步的方式执行的

进程的基本状态及转换

  • 进程的三种状态:

    • 就绪状态

    进程已经分配到除了cpu以外的所有必要资源,只要获得cpu的调度就可以执行

    • 执行状态

    cpu调度后,进程便开始执行

    • 阻塞状态

    当进程执行时发生了某种事件(I/O请求)等暂时无法执行时的状态

    当正在执行的进程处于阻塞状态时,此时会引起进程调度,将处理机分配给其他就绪进程

    根据阻塞原因的不同,设置多个阻塞队列

  • 三种基本状态的转换:

在这里插入图片描述

  • 创建状态和终止状态:

    • 创建状态

    进程的创建过程:首先由进程申请一个空白PCB,向PCB中填写用于控制和管理进程的信息,然后系统为该进程分配运行时所必需的资源,最后将进程转入就绪状态并插入就绪队列中

    进程是由创建产生的,当进程所需的资源尚不能够得到满足时,进程的创建工作失败,进程不能被调度,此时的状态为创建状态

    • 终止状态

    进程的终止过程:当进程完成工作或者遇到异常,会进入终止状态,此时进程不能再执行,但其状态码和一些计时统计数据仍会保存在os中,供其他进程收集,一旦其他进程完成了对这些信息的收集,os立即删除该进程(将pcb清零),同时将pcb还给os

引入创建状态和终止状态的五种状态转换图:

在这里插入图片描述

挂起操作和进程状态的转换

为了方便用户检查自己的程序、方便操作系统进行负荷调节,操作系统引入了挂起操作(内存->外存)

使用挂起原语(suspend)将某个进程挂起,激活原语(active)激活进程

  • 引入挂起原语后进程状态的转换

    • 活动就绪->静止就绪

    当进程处于未被挂起的就绪状态时,称为活动就绪,将处于活动就绪的进程挂起后,称为静止就绪,此时进程不再被调度执行

    • 活动阻塞->静止阻塞

    当进程处于未被挂起的阻塞状态时,称为活动阻塞,阻塞后变成静止阻塞

    • 静止就绪->活动就绪

    active原语激活进程

    • 静止阻塞->活动阻塞

    avtive激活进程

在这里插入图片描述

进程管理中的数据结构

为了使进程能够独立运行,描述和管理进程的执行,引入了专门的数据结构pcb,pcb作为进程实体的一部分,记录了os所需的,用于描述进程当前情况及管理进程运行的全部信息。

进程控制块PCB的作用

  • 作为独立运行的基本单位的标志

系统是通过pcb感知进程的存在的,pcb已经成为进程存在于os的唯一标志

  • 实现间断性运行方式

当进程因阻塞而暂停运行时,它必须保留运行时的cpu现场信息,再次被调度运行时,还需要恢复其cpu现场信息,从而保证了结果的可再现性

  • 提供进程管理需要的信息

os总是通

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值