前驱图和程序执行
程序顺序执行时的特征
(1)顺序性:按顺序执行
(2)封闭性:不受其他 程序影响
(3)可再现性:只要初始条件一样,无论如何停顿,重复执行多少次结果都一样
程序并发执行
要符合前驱关系(前驱关系——》前驱图:描述进程执行的前后关系的有向无循环图)
并发不是随意的:是否有严格的顺序关系
符合前驱图的关系才是合理的开发
并发程序执行时的特征
间断性:相互制约导致并发程序具有“执行--暂停--执行”的过程
失去封闭性:程序运行受其他程序的影响,抢夺共用资源时等
结果不可再现性:结果不确定
解决以上问题---------进程
进程:功能:用于描述、控制程序在内存中并发运行
定义:进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
进程实体:程序+控制块PCB
程序:程序段+数据段
进程与程序的区别:
(1)进程是动态的,程序是静态的,程序只是一个代码的集合;
(2)进程是暂时的,进程知识一个过程,程序是永久的
(3)进程包括程序,数据,进程控制块
(4)进程与程序的对应关系:都可以一对多;一个程序可以对应多个进程;一个进程可以包含多个程序
特征:(1)结构性特征,进程的根本PCB
(2)动态性:是一次有生命的执行过程
(3)并发性:多个进程实体同时在一段时间内运行(有PCB的程序才可以并发)
(4)独立性
(5)异步性
基本状态:(1)就绪状态:此时只缺少cpu资源,其他资源准备就绪,cpu一旦空闲并得 到就可以运行
(2)运行状态:获得所有必须的资源,正在执行
(3)阻塞状态:正在执行的进程由于某些事件而暂时无法执行,放弃CPU后暂停。除了CPU还缺少其他资源(请求I/O,申请缓存,时间片到)
单处理机系统,执行态的进程只有一个;
就绪态和阻塞态的进程可以有多个,一般讲他们分别排成一个队列
阻塞队列会根据不同的原因排成多个队列
除以上三种状态,还有:(4)挂起状态
进程控制块PCB:存放进程的管理和控制信息的数据结构
OS对进程进行管理和控制围绕PCB进行
调度进程的过程:
看:查看进程的PCB,获取其状态,优先级;
复:根据PCB处理机状态信息,恢复现场;
找:根据PCB中程序和数据的内存地址,找到其程序和数据;
执行中的同步信号等也要查阅PCB,暂停时进程执行的处理机环境保存回PCB
PCB中的信息:(1)进程标示符:每个进程都必须有唯一的标示符
(2)处理机状态信息:被中断的信息放到PCB中
(3)进程调度信息:进程状态,优先级
(4)进程控制信息:程序和数据的地址
PCB中信息的存放:常驻内存的PCB区
存数的数据结构:PCB结构体,PCB链表或队列
如何有效的管理若干个PCB?
链接方式:同一状态的PCB依靠链接指针链接成队列
索引方式:索引表记录PCB的地址
网友评论