2023年12月3日发(作者:)
计算机操作系统之进程的描述与控制(一)前驱图和程序执行前驱图(Precedence Graph):有向无循环图,可记为DAG(Directed Acyclic Graph),用于描述进程之间执行的先后顺序,不允许有循环。每个结点可用来表示一个进程或出现段,乃至一条语句结点间的有向边表示两个结点之间存在的偏序(Partial Order)或前驱关系(Precedence Relation)进程P1和P2存在前驱关系可表示为P1->P2,P1是P2的直接前驱,P2是P1的直接后继没有前驱的结点称为初始结点(Initial Node)没有后继的结点称为终止结点(Final Node)每个节点还具有一个重量(weight):用于表示该结点所含有的程序量或程序的执行时间程序顺序执行时的特征:顺序性封闭性可再现性程序并发执行时的特征:间断性失去封闭性不可再现性(二)进程的描述进程的定义:进程是程序的一次执行进程是一个程序及其数据在处理机上顺序执行时所发生的活动进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位进程实体(又称进程映像):简称为进程,由三部分构成:程序段相关的数据段进程控制块(Proces Control Block,PCB):使参与并发执行的每个程序(含数据)都能独立地运行的数据结构进程的特征:动态性:进程最基本的特征,进程的实质是进程实体的执行过程并发性:程序(没有建立PCB)是不能参加并发执行的独立性:未建立PCB的程序都不能作为一个独立的单位参与运行异步性:进程是按异步方式运行的进程的三种基本状态:就绪(Ready)状态执行(Running)状态阻塞(Block)状态创建状态和终止状态挂起操作引入的原因是基于系统和用户的需要:终端用户的需要父进程请求负荷调节的需要操作系统的需要引入挂起原语操作后三个进程状态的转换:活动就绪–>静止就绪活动阻塞–>静止阻塞静止就绪–>活动就绪静止阻塞–>活动阻塞引入挂起操作后五个进程状态的转换:NULL–>创建创建–>活动就绪创建–>静止就绪执行–>终止进程管理中的数据结构:内存表设备表文件表进程表:又称进程控制块PCBPCB的作用: 是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程作为独立运行基本单位的标志能实现间断性运行方式提供进程管理所需要的信息提供进程调度所需要的信息实现与其他进程的同步与通信进程控制块中的信息:1. 进程标识符:用于唯一地标识一个进程外部标识符:通常由字母、数字组成,设置父进程标识及子进程标识,还可设置用户标识内部标识符:通常是一个进程的序号,赋予每个进程一个唯一的数字标识符2. 处理机状态:处理机状态信息也称为处理机的上下文,重要是由处理机的各种寄存器中的内容组成。通用寄存器:又称用户可视寄存器指令计数器:存放要访问的下一条指令的地址程序状态字PSW:含状态信息,如条件码、执行方式、中断屏蔽标志等用户栈指针:用于存放过程和系统调用参数及调用地址3. 进程调度信息4. 进程控制信息进程控制块的组织方式:线性方式链接方式索引方式操作系统内核的两大功能:支撑功能中断处理时钟管理原语操作:一个操作中的所有动作要么全做,要么全部做资源管理功能进程管理存储器管理设备管理引进创建进程的事件:用户登录作业调度提供服务应用请求进程创建的步骤:申请空白PCB为新进程分配其运行所需的资源初始化进程控制块(PCB)初始化标识信息,将系统分配的标识符和父进程标识符填入新PCB中初始化处理机状态信息,使程序计数器指向程序的入口地址,是栈指针指向栈顶初始化处理机控制信息若进程就绪队列能够接纳新进程,便将新进程插入就绪队列引入进程终止(Termination of Process)的事件:正常结束异常结束越界错保护错非法指令特权指令错运行超时等待超时算术运算错I/O故障外界干预引入进程阻塞和唤醒的事件:向系统请求共享资源失败等待某种操作的完成新数据尚未到达等待新任务的到达进程的挂起与激活(三)进程同步概念: 使进程对系统资源的无序争夺能有条不紊地运行。作用: 改善资源利用率,显著提高系统的吞吐量进程之间存在的两种形式的制约关系:间接相互制约关系:由系统实施统一分配直接相互制约关系:官程机制临界资源:多道程序系统中存在许多进程,它们共享各种资源,然而有很多资源一次只能供一个进程使用。一次仅允许一个进程使用的资源称为临界资源。许多物理设备都属于临界资源,如输入机、打印机、磁带机等。临界区:每个进程中访问临界资源的那段代码在临界区前面增加一段用于进行检查的代码,把这段代码称为进入区(enter section)。相应地,在临界区后面也要加上一段称为退出区(exit section)的代码,用于将临界区正被访问的标志恢复为未被访问的标志。进程区除上述的进入区、临界区及退出区之外的其他部分的代码都称为剩余区。为实现进程互斥地进入自己的临界区,可采用软件方法,更多的是在系统中设置专门的同步机制来协调各进程间的运行。所有同步机制都应遵循下述四条准则:空闲让进:当无进程处于自己的临界区时,表明临界资源处于空闲状态,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。忙则等待:当已有进程进入临界区,表明临界资源正在被访问,因而其它试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态。让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。硬件同步机制:1.关中断:实现互斥的最简单方法之一2.利用Test-and-Set指令实现互斥3.利用Swap指令实现进程互斥信号量机制:1.整形信号量2.记录型信号量型信号量4.信号量集信号量的应用:利用信号量实现进程互斥利用信号量实现前驱关系管程机制管程的定义:一个管程定义了一个数据结构能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中de数据管程由四部分组成:管程的名称局部于管程的共享数据结构说明对该数据结构进行操作的一组过程对局部于管程的共享数据设置初始值的语句管程主要有以下特性:模块化:即管程是一个基本程序单元,可以单独编译抽象数据类型:指管程中不仅有数据,而且有对数据的操作信息隐蔽管程和进程的不同:两者都定义了数据结构,但进程定义的是私有数据结构PCB,管程定义的是公共数据结构,如消息队列等两者都存在对各自数据结构上的操作,但进程是由顺序程序执行有关操作,而管程主要是进行同步操作和初始化操作设置进程的目的在于实现系统的并发性,而管程的设置则是解决共享资源互斥使用问题进程通过调用管程中的过程对共享数据结构实行操作,该过程就如通常的子程序一样被调用,因而管程为被动工作方式,进程则为主动工作方式进程之间能并发执行,而管程则不能与其调用者并发进程具有动态性,由“创建”而诞生,由“撤销”而消亡,而管程则是操作系统中的一个资源管理模块,供进程调用进程通信进程通信机制的四大类:1.共享存储器系统(Shared-Memory System)基于共享数据结构的通信方式基于共享存储区的通信方式2.管道(pipe)通信系统3.消息传递系统(Message passing system)直接通信方式间接通信方式4.客户机-服务器系统(Client-Server system)套接字: 网络通信程序接口,主要是解决多进程同时通信时端口和物理线路的多路复用问题。包括两类:基于文件型基于网络型远程过程调用和远程方法调用


发布评论