重点:
进程的含义
理解掌握同步的概念及经典进程同步问题
难点:
进程同步算法
知识点:
进程、线程、进程的特征、PCB、进程控制、进程同步(通信)
前趋图和程序执行
前趋图:
有向无循环图(DAG),描述进程之间执行的前后关系。结点间的有向边用于表示两个节点间存在的偏序、前趋关系“->”。
(Pi,Pj):pi是pj的直接前驱
每个节点还具有一个重量(权值),表示该节点所含有的程序量或节点的执行时间(长短)
起始节点:无进||终止节点:无出
前驱图中不能存在循环
例如: s1->s2,s2->s3,s3->s2 :不符合前驱关系
程序执行两方式:
顺序:单道批处理系统
并发:提高资源利用率
程序顺序执行(单道批处理):
如C语言基础运算程序
i1->c1->p1->i2->c2->p2
特征:
顺序性:按程序结构所指定的次序(按进入内存的先后执行),每一操作都必须在上一个操作结束之后开始。
封闭性:独占全部资源,程序一旦开始,执行结果不受外界因素影响
可再现性:初始条件相同则结果相同 (执行环境和初始条件相同,程序不论连续执行还是走走停停地执行,都将获得相同结果。
程序的并发执行:(内存中多道作业)
第一道的计算和第二道的输入同时进行
i1->c1,i1->i2,c1->p1,c
即i2和c1以及p2是重跌的
例如: s1: a=x+4
s2: b=y+5
s3: c=a+b
s4: d =c+a ===> s1、s2->s3 , s3->s4
特征:
间断(异步)性:“走走停停”,程序可能会走到中途停下来,失去原有的时序关系,因为存在竞争。
失去封闭性:因为存在资源共享,其状态将由多个(其他)程序来改变,失去原有的不变特征。
不可再现性->程序不可并发执行!: 失去封闭性 ->不可再现性:外界环境在程序的两次执行期间发生变化,失去原有的可重复性。实例:
进程的描述:
*进程的定义
程序并发执行可以提高资源利用率、和系统吞吐量,通常程序不能并发执行,我们希望它能并发运行。为使它能并发执行,有可再现性,故引入“进程”。
程序段、相关数据段、进程控制块(PCB)组成,这三部分称为进程实体,简称进程。
打比方:
程序段 :小朋友本体 // 学生
相关数据段:出生时的一些状态 //学习的过程如成绩等
进程控制块:出生证明,户口本、身份证 //校园卡
典型进程定义:
进程是程序的一次执行;(人一辈子:程序,进程:)
进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
特征
动态性:进程最基本特征,进程实质是程序在处理机上的一次执行过程,因此是动态的,因创建而产生,因调度而执行,因撤销而消亡,因无资源而暂停执行
并发性:
独立性:京城是一个能独立运行的进本单位。
异步性:进程各自独立、不可预知的速度向前推进(高速上的不同速度车辆)
进程&程序的区别:
进程是动态的,程序是静态的
进程是暂时的、有生命周期,程序是永久的
进程与程序组成不同:程序-指令的有序集合,进程-程序段、相关数据段、进程控制块(PCB)
而这对性关系:多次执行,一个程序可以对应多个进程;通过调用关系,一个进程可以对应多个程序执行(多对多)
*基本状态、转换:
来源:https://www.cnblogs.com/Dreamer-Jie/p/12408628.html