软件设计师培训3操作系统优质PPT.ppt

上传人:b****1 文档编号:14219300 上传时间:2022-10-20 格式:PPT 页数:53 大小:622KB
下载 相关 举报
软件设计师培训3操作系统优质PPT.ppt_第1页
第1页 / 共53页
软件设计师培训3操作系统优质PPT.ppt_第2页
第2页 / 共53页
软件设计师培训3操作系统优质PPT.ppt_第3页
第3页 / 共53页
软件设计师培训3操作系统优质PPT.ppt_第4页
第4页 / 共53页
软件设计师培训3操作系统优质PPT.ppt_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

软件设计师培训3操作系统优质PPT.ppt

《软件设计师培训3操作系统优质PPT.ppt》由会员分享,可在线阅读,更多相关《软件设计师培训3操作系统优质PPT.ppt(53页珍藏版)》请在冰豆网上搜索。

软件设计师培训3操作系统优质PPT.ppt

进程是一个程序在一个数据集合上的一次执行。

3.2进程管理,程序和进程区别:

(1)程序是静态的,进程是动态的。

(2)进程与程序的对应关系:

通过多次执行,一个程序可对应多个进程;

通过调用关系,一个进程可包括多个程序。

(3)进程是暂时的,程序是永久的:

进程是一个状态变化的过程,程序可长久保存。

(4)进程与程序的组成不同:

进程的组成包括程序、数据进程控制块(即进程状态信息)。

进程通常由三部分组成:

(1)程序:

描述了进程所要完成的功能,是进程执行时不可修改的部分。

(2)数据集合:

程序执行时所需要的数据和工作区,为一个进程专用,可修改。

(3)进程控制块PCB(ProcessControlBlock):

包含了进程的描述信息和控制信息,是进程的动态特性的集中反映。

PCB包含以下几类信息:

进程描述信息、进程控制信息、资源占用信息、CPU现场保护结构:

进程的基本状态及转换:

进程在生命期内处于且仅处于三种基本状态之一:

运行态:

当一个进程在处理机上运行时,则称该进程处于运行状态。

就绪态:

一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。

阻塞态:

当一个进程正在等待某一事件发生(例如请求IO而等待IO完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。

注意与就绪状态的不同在于即使处理机处于空闲状态也无法运行。

就绪运行:

调度程序选择一个新的进程运行.运行就绪:

运行进程用完时间片被中断或在抢占调度方式中,因为一高优先级进程进入就绪状态运行阻塞:

进程发生I/O请求或等待某事件时阻塞就绪:

当I/O完成或所等待的事件发生时,进程调度在多道程序环境下,系统中有多个进程同时运行。

多个的进程竞争处理机,就要求系统提供进程调度功能,将处理机动态地分配给系统中的各个进程,使之能够协调一致的运行。

进程调度程序:

主要任务是按照一定的调度算法从就绪队列中选取一个进程,把处理机分配给此进程使用。

进程调度方式

(1)非抢占方式:

在非抢占方式下,调度程序一旦把CPU分配给某一进程后便让它一直运行下去,直到进程完成或发生某事件而不能运行时,才将CPU分给其它进程。

这种调度方式通常用在批处理系统中。

它的主要优点是简单、系统开销小。

(2)抢占方式:

当一个进程正在执行时,系统可以基于某种策略剥夺CPU给其它进程。

剥夺的原则有:

优先权原则、短进程优先原则和时间片原则。

这种调度方式多用在分时系统和实时系统中,以便及时响应各进程的请求。

进程调度算法

(1)先来先服务FCFS(先进先出调度算法,FIFO)

【算法思想】:

最简单的算法按照进程进入就绪队列的先后次序,分派CPU;

当前进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。

在进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前进程出让CPU。

【特点】:

比较有利于长作业,而不利于短作业。

有利于CPU繁忙的作业,而不利于I/O繁忙的作业。

(2)短进程优先调度算法(SJF,SPF)

【算法思想】:

选择就绪队列中估计运行时间最短的进程投入运行。

通常后来的短作业不抢先正在执行的作业。

【优点】:

比FCFS改善平均周转时间和平均带权周转时间,缩短作业的等待时间;

提高系统的吞吐量;

【缺点】:

对长作业非常不利,可能长时间得不到执行;

未能依据作业的紧迫程度来划分执行的优先级;

难以准确估计作业(进程)的执行时间,从而影响调度性能。

(3)优先权调度算法(HPFHighestPriorityFirst)

优先选择就绪队列中优先级最高的进程投入运行。

分为:

非抢占式优先级算法:

仅发生在进程放弃CPU。

抢占式优先级算法:

可剥夺当前运行进程CPU。

【优先权的类型】静态优先级:

在进程创建时指定优先级,在进程运行时优先数不变。

动态优先级:

在进程创建时创立一个优先级,但在其生命周期内优先数可以动态变化。

如等待时间长优先数可改变。

【确定优先级的依据】进程类型、对资源的需求、根据用户要求。

(4)高响应比优先(HRRN,HighestResponseRatioNext):

HRRN是FCFS和SJF的折衷算法,响应比R用下式动态计算:

响应比R=【特点】:

等待时间相同要求服务的时间越短优先权越高,有利于短作业。

要求服务时间相同,等待时间越长优先权越高,近似于先来先服务。

长作业的优先权会随等待时间加长而升高,长作业也会得到执行。

(5)时间片轮转调度算法【算法思想】:

通过时间片轮转,提高进程并发性和响应时间特性,从而提高资源利用率。

将系统中所有的就绪进程按照FCFS原则,排成一个队列。

每次调度时将CPU分派给队首进程,让其执行一个时间片。

时间片的长度从几个ms到几百ms。

在一个时间片结束时,发生时钟中断。

调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过CPU现场切换执行当前的队首进程。

进程可以未使用完一个时间片,就出让CPU(如阻塞)。

(6)多级反馈队列算法(多队列轮转法)

设置多个就绪队列,分别赋予不同的优先级,队列1的优先级最高,其他逐级降低。

每队列分配不同的时间片,规定优先级越低则时间片越长。

新进程就绪后,先投入队列1的末尾,按FCFS算法调度。

若一个时间片未能执行完,则降低投入到队列2的末尾;

依此类推,降低到最后的队列,则按“时间片轮转”算法调度直到完成。

进程由于等待事件而放弃CPU后,进入等待队列,一旦等待的事件发生,则回到原来的就绪队列。

仅当较高优先级的队列为空,才调度较低优先级的队列中的进程执行。

如果进程执行时有新进程进入较高优先级的队列,则抢先执行新进程,并把被抢先的进程投入原队列的末尾。

进程同步和互斥在计算机系统中,多个进程可以并发执行,因此进程间必然存在资源共享和相互合作的问题。

例:

共享数据变量资源造成的错误,终端售票处理进程:

PROCESSPi(i=1,2,3,n)/*Pi为顾客服务的处理进程*/Begin按旅客订票要求找到Aj;

/*Aj为公共数据区*/Ri:

=Aj;

/*Ri为各进程执行时所用的工作单元*/ifRi1thenbeginRi:

=Ri-1;

Aj:

=Ri;

输出一张票;

endelse输出“票已售完”;

end,进程互斥是指当有若干进程都要使用某一资源时,任何时刻最多只允许一个进程去使用,其他要使用该资源的进程必须等待,直到占用资源者释放了该资源。

这样的资源称为称为互斥资源打印机,共享变量等。

共享资源的互斥的使用就是限定并发进程互斥的进入相关临界区。

临界区并发进程中与共享变量有关的程序段。

如例题中的临界区:

Ri:

ifRi1thenbeginRi:

PV操作就是一种实现相关临界区的管理,实现进程互斥的方法。

PV操作进程的互斥PV操作由P操作和V操作组成,P操作和V操是两个在信号量S上进行的操作。

定义如下:

ProcedureP(S)beginS:

=S-1;

ifS0then则该进程进入等待队列;

end;

PProcedureV(S)beginS:

=S+1;

ifS0then唤醒一个等待队列中的进程进入就绪;

V,beginS:

semaphoreS:

=1cobeginPROCESSPi(i=1,2,3,n)按旅客订票要求找到Aj;

P(S)Ri:

ifRi1then,beginRi:

V(S)输出一张票;

endelsebeginV(S)输出“票已售完”;

coendend,例:

共享缓存器资源造成的错误,

(1)A的执行速度操作B的执行速度,造成缓存器中的数据还没拿走,A又读入新数据覆盖了原有数据。

(2)B的执行速度操作A的执行速度,B从缓存器取出一个记录并加工后,A还没有读入新数据,造成B在缓存器中重复取同一个记录加工。

进程同步是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒。

PV操作进程的互斥1.调用P操作测试消息是否到达。

若消息尚未到达则S=0,调用P(S)后,让调用者称为等待信号量S的状态;

若消息已经存在则S0,调用P(S)后进程不会成为等待状态而可继续执行。

2.调用V操作发送消息。

任何进程要向进程发送消息时可调用V操作。

若调用V操作之前S=0,表示消息产生且无等待消息进程,这是调用V(S),执行S:

=S+1使S0,意味着消息已存在。

若调用V操作之前S0,表示消息未产生前已有进程在等待消息,这是调用V(S)后释放一个等待消息者,即表示该进程等待的消息已经到达可以继续执行。

beginBuffer:

integer;

SP,SG:

semaphore;

SP:

=1;

SG:

=0;

CobeginPROCESSProducerbeginL1:

produceaproductP(SP);

Buffer:

=product;

V(SG);

gotoL1End;

PROCESSConsumerbeginL2:

P(SG);

takeaproductfrombuffer;

V(SP);

consumegotoL2End;

Coend;

End;

【软件设计师考试2004年5月上午试题23-24】若有一个仓库,可以存放P1、P2两种产品,但是每次只能存放一种产品要求:

w=P1的数量-P2的数量-iwk(i、k为正整数)若用PV操作实现P1和P2产品的入库过程,至少需(23)个同步信号量及(24)个互斥信号量,其中,同步信号量的初值分别为(25),互斥信号量的初值分别为(26)。

(23)A0B1C2D3(24)A0B1C2D3(25)A0Bi,k,0Ci,kDi-1,k-1(26)A1B1,1C1,1,1Di,k,【软件设计师考试2004年5月上午试题23-24】在某超市里有一个收银员,且同时最多允许有n个顾客购物,我们可以将顾客和收银员看成是两类不同的进程,且工作流程如下图所示。

为了利用PV操作正确地协调这两类进程之间的工作,设置了三个信号量S1、S2和Sn,且初值分别为0、0和n。

这样图中的a应填写_(24)_,图中的b1、b2应分别填写_(25)_,图中的c1、c2应分别填写_(26)_。

(24)A.P(S1)BP(S2)CP

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1