您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 华北电力大学操作系统课件---第二章进程管理(修改版).
操作系统原理与实践高等教育出版社北京汉众信息科技有限责任公司策划第二章进程管理第二章进程管理目的与要求:掌握进程的定义、进程描述、进程控制块和进程控制、进程的同步和互斥及用信号量机制解决进程同步问题的方法,掌握进程的调度、死锁的定义及解决死锁的方法。理解线程的概念及线程的管理、进程通信。重点与难点:进程的定义、进程的同步和互斥及用信号量机制解决进程同步问题的方法、进程的调度、死锁的定义及解决死锁的方法。作业:1、2、3、5、9、10、14、16、17、21、24、30、32、33、38、40、42、43第二章进程管理2.1进程2.2线程2.3同步2.4信号量2.5进程间通信2.6进程调度2.7死锁2.1进程2.1.1进程概念2.1.2进程特性2.1.3进程状态与转换2.1.4进程组成2.1.5进程控制块和进程队列2.1.6进程控制2.1.1进程概念进程概念进程是执行中的程序的抽象关于进程概念有不同的说法:进程是程序的一次执行进程是可以与其他计算并发执行和计算进程是一个程序及其数据在处理器上顺序执行时发生的活动进程是进程实体的一次活动进程是支持程序运行的机制进程定义:进程是具有一定功能的程序在一个数据集合上的运行过程,它是系统进行资源分配和调度管理的一个可并发执行的基本单位2.1.2进程特性进程特性:动态性并发性独立性异步性结构特性2.1.2进程特性进程与程序进程是动态的,而程序是静态的1个程序可以对应多个进程;而1个进程只能对应1个程序系统进程用户进程进程的特征动态性:进程的实质是程序的一次执行过程。进程是动态产生,动态消亡的,进程在其生命周期内,在三种基本状态之间转换。并发性:任何进程都可以同其他进程一起向前推进。独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。结构特征:为了控制和管理进程,系统为每个进程设立一个进程控制块-PCB。2.1.3进程状态和转换进程状态和转换就绪(Ready)状态执行(Running)状态阻塞(Blocked)状态2.1.3进程状态和转换就绪阻塞执行新建终止等待资源、事件事件发生,资源释放被调度时间片用完图2-1进程状态的转换进程状态的转换2.1.3进程状态和转换进程状态和转换就绪→执行:被调度执行→阻塞:等待资源、事件阻塞→就绪:事件发生,资源释放执行→就绪:时间片用完2.1.4进程的组成进程的组成PCB临界区工作区数据区进程控制块临界区数据区工作区进程组成2.1.4进程的组成进程控制块一个进程只有一个PCB是进程存在与否的唯一标记描述信息管理信息2.1.4进程的组成进程控制块进程标识信息进程状态进程特征进程位置及大小信息处理器现场保留区进程资源清单进程同步与通信机制进程间联系2.1.5进程控制块和进程队列进程控制块与进程队列线性方式链接方式索引方式PCB1PCBn-2PCBn-1PCB3PCB2PCBn......2.1.5进程控制块和进程队列就绪队列指针阻塞队列指针阻塞队列指针运行队列指针PCB0PCBPCBPCBPCBPCBPCBPCB0PCB0PCB0连接方式2.1.5进程控制块和进程队列就绪指针阻塞指针就绪表PCB1PCB2PCB3PCB4PCB5.........PCBk-3PCBk-2PCBk-1PCBk运行指针阻塞表进程队列索引方式2.1.6进程控制进程控制的主要任务进程控制是对系统中所有进程从产生、存在到消亡的全过程实行有效的管理和控制。进程控制一般是由操作系统的内核来实现,内核在执行操作时,往往是通过执行各种原语操作来实现的。2.1.6进程控制创建、撤消进程以及完成进程各状态之间的转换。由具有特定功能的原语完成。进程创建原语进程撤消原语阻塞原语唤醒原语原语:操作系统内核中用于完成特定功能的一个过程,此过程在执行过程中呈现原子特征,不可中断。进程创建过程创建一个PCB赋予一个统一进程标识符为进程映象分配空间初始化进程控制块许多默认值(如:状态为New,无I/O设备或文件...)设置相应的链接如:把新进程加到就绪队列的链表中进程创建过程创建一个PCB赋予一个统一进程标识符为进程映象分配空间初始化进程控制块许多默认值(如:状态为New,无I/O设备或文件...)设置相应的链接如:把新进程加到就绪队列的链表中创建原语的实现过程引起撤消的原因正常结束异常结束(越界错、保护错、特权指令错、非法指令、运行超时、I/O故障等)外界干预(操作员干预、死锁、父进程请父进程终止)撤消原语的实现过程进程的阻塞原语功能:停止调用进程的执行,变为等待。入口信息:可省阻塞原语的实现过程进程的唤醒原语功能:唤醒某一处于等待队列当中的进程。入口信息:被唤醒进程的名字引起唤醒的原因系统服务由不满足到满足I/O完成新数据到达进程提出新请求(服务)唤醒原语的实现过程2.2线程2.2线程2.2.1线程引入和线程概念2.2.2线程的实现2.2.3线程池2.2.4线程优势2.2.1线程引入和线程概念1.线程引入进程的两个基本属性:资源的拥有者:给每个进程分配一虚拟地址空间,保存进程映像,控制一些资源(文件,I/O设备),有状态、优先级、调度调度单位:进程是一个执行轨迹以上两个属性构成进程并发执行的基础2.2.1线程引入和线程概念对进程系统必须完成的操作:创建进程撤消进程进程切换缺点:时间空间开销大,限制并发度的提高。2.2.1线程引入和线程概念2.线程概念:线程(Thread)是进程中实施调度和分派的基本单位3.线程状态:运行状态、阻塞状态、就绪状态、终止状态2.2.1线程引入和线程概念4.线程管理:线程创建线程终止线程等待线程让权2.2.1线程引入和线程概念5.线程与进程的关系:一个进程对应多个线程;一个线程只能在一个进程的地址空间内活动资源分配给进程;同一进程的线程共享资源CPU分配给线程线程在执行过程中需要协作同步;不同进程则利用通信实现同步2.2.2线程的实现用户级线程与核心级线程用户级线程与核心级线程实现方式用户空间核心空间内核进程线程运行时系统线程表进程表内核进程线程线程表进程表用户级线程和核心级线程的实现方式2.2.2线程的实现用户级线程与核心级线程的比较多对一模型一对多模型多对多模型K用户线程内核线程K用户线程内核线程KKK用户线程内核线程KK2.2.3线程池线程池定义线程池优势线程池设计原则2.2.4线程优势线程优势响应度高资源共享经济效能高2.3同步2.3.1进程同步和进程间通信2.3.2互斥的实现方式2.3.1进程同步和进程间通信进程间相互关系同步所谓同步是指一组相互协同的进程,在完成同一任务,对某些共享资源进行操作时,为协调资源占用而相互等待、相互交换信息所产生的制约关系。互斥所谓互斥是指并发进程间因相互竞争使用独占资源所产生的制约关系。通信进程间交换信息称为通信。2.3.1进程同步和进程间通信临界资源与临界区临界资源:就是一次只能允许一个进程使用。临界区:每个进程中访问或者使用临界资源的那段代码程序就叫做临界区。进程的通用结构Repeatentrysection进入区criticalsection临界区exitsection退出区remaindersection剩余区Untilfalse5.使用临界区的原则空闲让进:当无进程在互斥区时,任何有权使用互斥区的进程可进入忙则等待:不允许两个以上的进程同时进入互斥区有限等待:任何进入互斥区的要求应在有限的时间内得到满足让权等待:处于等待状态的进程应放弃占用CPU,以使其他进程有机会得到CPU的使用权2.3.2互斥的实现方式解决进程互斥进入临界区有两种方式:硬件软件硬件解决方式:禁止中断专用机器指令软件算法实现:进入区、退出区、剩余区2.4信号量2.4.1整形信号量2.4.2记录型信号量2.4.3信号量的应用2.4.4经典同步问题2.4.1整形信号量信号量方法提出:荷兰学者E.W.Dijkstra整形信号量1、信号量可以初始为一个非负值2、只能由P和V操作来访问信号量P操作:测试;DOWN操作V操作:增加;UP操作(P)Wait(s):whiles=0dono-op;s:=s-1;(V)Signal(s):s:=s+1;2.4.1整形信号量进程Pi利用信号量实现互斥的伪代码形式:do{P(mutex)临界区(CriticalSection)V(mutex)剩余区(remaindersection)}while(1);2.4.2记录型信号量为解决忙等待引入记录型信号量记录型信号量定义:由两个成员组成的数据结构,其中一个成员是整型变量,表示该信号的值;另一个是指向PCB的指针。当多个进程都要等待同一信号量时,它们就排成一个队列,由信号量的指针项指示该队列的队首,进程控制块PCB是通过PCB自身所包含的指针项进行链接的,最后一个PCB(队尾)的链接指针为0。2.4.2记录型信号量记录型信号量值和相应资源有关大于0:表示当前可用资源数量小于0:绝对值表示等待进程个数P(S)操作V(S)操作2.4.2记录型信号量P操作的定义如下:VoidP(S){S.value--;if(S.value0){将这个进程加到S.list队列;block();}}2.4.2记录型信号量V操作的定义如下:VoidV(S){S.value++;if(S.value=0){从S.list队列中将Q移走;wakeup(Q);}}2.4.3信号量的应用用信号量实现进程的互斥设置一个互斥信号量mutex,其初值为1。PI(分配进程)和PO(释放进程)的临界区代码可描述成:PIPO......P(mutex)P(mutex)分配打印机释放打印机(读写分配表)(读写分配表)V(mutex)V(mutex)......2.4.3信号量的应用•用信号量实现进程间同步•以短信缓冲池的同步使用为例,进程A(供者)和进程B(取者)对短信缓冲池的使用关系如图所示缓冲区供者...010100110信息(Buf空)取者…信息(Buf满)图2-15简单供者和取者对缓冲区的使用关系2.4.3信号量的应用规定S1和S2的初值分别为1和0,对缓冲池的供者进程和取者进程的同步关系用下述方式实现:供者进程取者进程repeatrepeatP(S1);。。。放入信息到缓冲池中P(S2);。。。从缓冲池中取出信息信息放入结束V(S1);V(S2);将短信信息发出untilfalseuntilfalse2.4.4经典同步问题生产者和消费者问题生产者-消费者(Producer-Consumer)问题是著名的进程同步问题。它描述一组生产者向一组消费者提供消息,它们共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。以下用信号量解决生产者-消费者问题。123......N-2N-10供应方向使用方向生产者和消费者问题缓冲池生产者-消费者问题假设缓冲池中有n个缓冲区,每个缓冲区存放一个消息,可利用互斥信号量mutex使诸进程对缓冲池实现互斥访问;利用empty和full计数信号量分别表示空缓冲及满缓冲的数量。又假定这些生产者和消费者互相等效,只要缓冲池未满,生产者可将消息送入缓冲池;只要缓冲池未空,消费者可从缓冲池取走一个消息。同步互斥问题限制2.4.4经典同步问题生产者进程(Producer)消费者进程(Consumer)while(true){while(true){P(empty);P(full);P(mutex);P(mutex);产品放入缓冲区buffer(in);缓冲区取出一产品buffer(out
本文标题:华北电力大学操作系统课件---第二章进程管理(修改版).
链接地址:https://www.777doc.com/doc-2591205 .html