目录
2.1、前趋图和程序执行
2.1.1前趋图
1、前趋图概念
是一个有向无循环图,记作DAG,用于描述进程执行的向后顺序图中的每个节点表示一个进程或程序段。
2、进程之间的前趋关系使用“—>”表示。
若进程Pi和Pj存在着前趋关系,可以用(Pi,Pj)∈ —>,也可表示为Pi —> Pj,表示在Pj开始执行之前Pj必须完成。
此时称Pi是Pj的直接前趋 ,而Pj是Pi的直接后继。
3、相关概念
初始结点:没有前趋的结点
终止结点:没有后继的结点
2.1.2程序顺序执行
1、特点
1)顺序性
2)封闭性,即程序运行时独占全机资源
3)可在现性。
2.1.3程序并发执行
1、并发执行的条件
只有在不存在前趋关系的程序之间才有可能并发执行,否则无法并发执行
2、特点
1)间断性
2)失去封闭性
3)不可再现性
2.2、进程的概念
2.2.1定义
从不同的角度,进程可以有不同的定义。
①进程是程序的一次执行。②进程是一个程序及其数据在处理机上顺序执行时所发生的活动。③进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
2.2.2 组成
进程由程序控制块(PCB)、程序段、数据段组成
程序控制块:操作系统是通过PCB来管理进程,因此 PCB中应该包含操作系统对其进行 管理所需的各种信息,如进程描述信息、进程控制和管理信息、资源分配清单和 处理机相关信息。程序段:程序代码存放的位置。数据段:程序运行时使用、产生的运算数据。如全局变量、局部变量、宏定义的常量就存放在数据段内。
2.2.3组织方式
进程的组织方式分为,链接方式和索引方式
链接方式:按照进程状态将PCB分为多个队列,操作系统持有指向各个队 列的指针。索引方式 :根据进程的状态不同,建立几张索引表,操作系统持有指向各个索引表的指针。
2.2.4进程的特征
动态性、并发性、独立性、异步性和结构性
动态性:进程的最基本的特征,进程是程序的一次执行过程,是动态的产生、变化和消亡。
并发性:内存中有多个进程实体,各进程可并发执行。
独立性:进程是能独立运行、独立获得资源、独立接受调度的基本单位。
异步性:各个进程按各自独立的、不可预知的速度向前推进,操作系统要提供进程同步机制来解决异步问题。
结构性:每个进程都会配置一个。结构上看,进程由程序段、数据段和PCB组成。
2.3、进程的状态和转换
2.3.1进程的状态
就绪态、运行态、阻塞态、创建态、中止态。
创建态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息完成资源分配。如果创建工作无法完成,比如资源无法满足就无法被调度运行,把此时进程所处的状态称为创建状态。
运行态:进程占用CPU,并在CPU上运行的状态。
就绪态:进程已经具备运行条件,但由于未分配CPU无法运行状态。
阻塞态:进程因等待某个事件发生而暂时不能运行的状态。
终止态:进程结束,或出现错误,或被系统终止,进入终止状态。
2.3.2状态的转换
运行→就绪:
①主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;
②在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由运行状态转变为就绪状态。
就绪→运行:正运行进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU。
运行→阻塞:正在运行的进程因发生某等待事件而无法执行,则进程由运行状态变为阻塞状态,如发生了I/O请求。
阻塞→就绪:进程所等待的事件已经完成,就进入就绪队列。
注意:阻塞态→运行态和就绪态→阻塞态这两种状态转换是不可能发生的。
2.4、进程的通信
2.4.1线程的通信是指线程之间的信息交换
高级通信方式:以较高的效率传输大量数据的通信方式。
高级通信方法主要有3类:
①共享存储。分别有基于共享数据结构的通信方式,例如生产者和消费者、基于共享存储区的通信方式。
②消息传递。是以格式化的消息为单位,利用原语传递消息,分为直接通信和间接通信。
③管道通信。是消息传递的一种特殊方式,是指用于连接一个读进程和一个写进程以实现它们之间的一个共享文件,又称pipe文件。
2.5、线程的概念
2.5.1线程的概念
线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位。线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行
2.5.2线程—作为调度和分派的基本单位
进程是系统资源分配的单位,线程是处理器调度的单位。
线程表示进程的一个控制点,可以执行一系列的指令。通常,和应用程序的一个函数相对应。进程分解为线程还可以有效利用多处理器和多核计算机。
2.5.3线程和进程的比较
1、进程与线程的区别
a.调度。线程是调度和分配的基本单位,进程是拥有资源的基本单位。
b.并发性。不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行。
c.拥有资源。进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。
d.系统开销。在创建或撤消进程时,由于系统都要为之分配和回收资源导致系统的开销明显大于创建或撤消线程时的开销。
2、进程和线程的关系
a.一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
b.资源分配给进程,同一进程的所有线程共享该进程的所有资源。
c.处理机是分配给线程的,即真正在处理机上运行的是线程。
d.线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。线程是指进程内的一个执行单元,也是进程内的可调度实体。