导图社区 进程的描述与控制
这是一篇关于进程的描述与控制的思维导图,主要内容包括:前趋图和程序执行,进程的描述,进程控制,进程通信,线程的概念,线程的实现。
编辑于2025-05-09 18:47:49进程的描述与控制
前趋图和程序执行
前趋图
是指一个有向无循环图,可记为DAG(Directed Acyclic Graph),它用于描述进程之间执行的先后顺序
每个结点可用来表示一个进程或程序段,乃至一条语句,结点间的有向边则表示两个结点之间存在的偏序(Partial Order)或前趋关系(Precedence Relation)。
没有前趋的结点称为初始结点(Initial Node),把没有后继的结点称为终止结点(Final Node)
程序的顺序执行的特征
顺序性:指cpu严格地按照程序所规定的顺序依次去执行。
封闭性:指程序在封闭的环境下运行,即程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变它,程序一旦开始执行,其执行结果不受外界因素影响。
可再现性:指只要程序执行时的环境和初始条件相同,最后都会运行结果都是相同的。
程序的并发执行的特征
程序在并发执行时,由于失去了封闭性,其计算结果必然和并发程序的执行速度有关,从而使程序的执行失去了可再现性。
间断性: 程序在并发执行时,由于它们共享资源,进程与进程之间形成制约的关系。
失去封闭性: 程序在并发执行时,由于共享资源,这些资源的状态都可以由程序来改变,会让其中的任一程序在运行时,会受到其他程序的影响。
不可再现性
进程的描述
进程的概念
进程是程序的一次执行。
进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
进程的特征
动态性、并发性、独立性、异步性(解释)
进程的三种基本状态
在可剥夺 OS 中,当有更高优先级的进程就绪时,调度程序将正在执行的进程一>就绪态,让更高优先级的执行。
就绪态、执行态、阻塞态。
就绪态∶ 进程已处于准备运行的状态(只缺 CPU 了!)
阻塞(等待资源)∶请求资源失败、等待某操作的完成、数据未到达、无事可做
唤醒(资源到达)∶I/O 操作已完成 or 数据已到,调用唤醒原语
创建一个进程(创建->就绪)
1、进程申请一个空白PCB。 2、向PCB中填写用于控制和管理进程的信息。 3、为该进程分配运行时所必须的资源。 4、把该进程转入就绪状态并插入就绪队列之中。
终止状态(执行->终止):
1、等待操作系统进行善后处理 2、将其PCB清零并将PCB空间返还系统。
挂起操作(把进程从内存移动外存的操作,为了释放更多的内存空间)
注: 静止就绪和活动就绪(里面静止指的是在外存,活动说明还在内存)
挂起操作的原因:
(1) 终端用户的需要。 (2) 父进程请求。 (3) 负荷调节的需要。 (4) 操作系统的需要。
数据结构
内存表、设备表、文件表和用于进程管理的进程表,通常进程表又被称为进程控制块PCB。
进程控制
进程控制是进程管理中最基本的功能,主要包括创建新进程、终止已完成的进程、将因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能。(进程控制一般是由操作系统内核的原语来实现的)
进程控制块PCB的作用
(1)作为独立运行基本单位的标志。 (2) 能实现间断性运行方式。 (3) 提供进程管理所需要的信息。 (4) 提供进程调度所需要的信息。 (5) 实现与其它进程的同步与通信。
进程控制块中的信息
进程标识符、处理机的状态、进程调度信息、进程控制块的组织方式。
进程控制块的组织方式
1.线性方式,即将系统中所有的PCB都组织在一张线性表中,将该表的首址存放在内存的一个专用区域中。 2.链接方式,即把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列。 3.索引方式,即系统根据所有进程状态的不同,建立几张索引表。
两种状态
系统态:又称为管态,也称为内核态。具有较高的特权,能执行一切指令,访问所有寄存器和存储区,传统的OS都在系统态运行。
用户态:又称为目态。具有低特权的执行状态,仅能执行规定的指令,访问指定的寄存器和存储区。
一般情况下,用户程序只能在用户态运行,不能访问系统态。
操作系统支撑的功能
(1) 中断处理。(中断处理时内核基本功能,是整个操作系统赖以活动的基础。)
(2) 时钟管理。
(3) 原语操作。(原语:由若干条指令组成,用于完成一定功能的一个过程。不允许被中断。常驻内存。)
os资源管理的功能:1、进程管理 2、存储器管理 3、设备管理
引起创建进程的操作∶终端用户登录系统、作业调度、系统提供服务、用户程序的应用请求。
进程的终止
①异常结束∶存储区越界、保护错、非法指令、特权指令错、I/O故障 ②正常结束∶ 任务已完成 ③外界干预(人为、OS 干预、父进程的请求 or终止)
引起进程阻塞和唤醒的事件
(1) 向系统请求共享资源失败。 (2) 等待某种操作的完成。 (3) 新数据尚未到达。 (4) 等待新任务的到达
进程通信
进程通信(进程之间进行信息交换)
低级通信:1、效率低 2、通信对用户不透明
高级通信:1、使用方便。 2、高效地传送大量的数据。
共享存储系统(互斥访问)∶ 低级方式∶ 基于数据结构的共享; 高级方式∶ 基于存储区
消息传递系统∶ 直接通信方式∶ 接收进程从消息队列中取得消息; 间接通信方式∶将消息挂到某个中间实体(邮箱)
管道通信系统∶所谓“管道”,是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件。 管道只能采用半双工通信,某一时间段内只能实现单向传输。如果要实现双向同时通信,则需设置两个管道。
客户机-服务器系统
线程的概念
引入的目的
在OS中引入进程的目的是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。
进程与线程的比较
调度:线程作为处理器调度和分配的基本单位,而进程是作为拥有资源的基本单位。
并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可以并发执行。
拥有资源:进程是拥有资源的一个独立单位,有自己独立的地址空间;线程不拥有系统资源,但可以访问隶属于进程的资源,共享进程的地址空间.
独立性: 在同一进程中的不同线程之间的独立性要比不同进程之间的独立性低的多。
系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。
支持多处理机系统:对于传统的进程,不管有多少处理机,该进程只能在一个处理机上运行。但是对于多线程进程,就可以把一个进程中的多个线程分配到多个处理机上,让其并发执行,这无疑将加速进程的完成。
进程和线程的关系
(1)二者均可并发执行.
(2)线程是指进程内的一个执行单元,也是进程内的可调度实体。一个程序至少有一个进程,一个进程至少有一个线程,一个线程只属于一个进程.
(3)资源分配给进程,同一进程的所有线程共享该进程的所有资源。
(4)处理机分给线程,即真正在处理机上运行的是线程。
(5)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
线程的实现
进程实体由程序段、数据段、PCB 三部分组成
注∶程序段(多个进程可运行同一程序)、 PCB 是进程存在的唯一标志。
PCB 描述进程的基本情况和活动过程,可以控制和管理进程。
进程描述信息(ID)、进程控制(优先级)和管理信息、资源分配 和处理机相关。 二进制代码和常量放在正文段; 动态分配的存储区在数据堆段; 临时用的变量在数据栈段。
线程运行有三个状态:执行状态、就绪状态、阻塞状态
线程有线程控制块(TCB);进程的话有进程控制块(PCB)。
多线程模型
一对一
多对一
多对多