操作系统第二章PPT._第1页
操作系统第二章PPT._第2页
操作系统第二章PPT._第3页
操作系统第二章PPT._第4页
操作系统第二章PPT._第5页
已阅读5页,还剩202页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 1程序的顺序执行程序的顺序执行 例子:例子: S1S1:a a: x+yx+y; S2S2:b b: a-5a-5; S3S3:c c: b+1b+1; 2 2程序顺序执行时的特征程序顺序执行时的特征(1 1)顺序性)顺序性:处理机的操作严格按照程序:处理机的操作严格按照程序所规定的顺序执行。所规定的顺序执行。(2 2)封闭性)封闭性:程序运行时独占全机资源,:程序运行时独占全机资源,程序一旦开始执行,其执行结果不受外程序一旦开始执行,其执行结果不受外界因素影响。界因素影响。(3 3)可再现性)可再现性:只要程序执行时的环境和:只要程序执行时的环境和初始条件相同,都将获得相同的结果。初始条

2、件相同,都将获得相同的结果。(不论它是从头到尾不停顿地执行,还是(不论它是从头到尾不停顿地执行,还是“停停走走停停走走”地执行)地执行)3. 程序的程序的并发并发执行执行 4. 程序并发执行时的特征程序并发执行时的特征 1)间断性)间断性:由于它们共享系统资源,以及为完成由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行同一项任务而相互合作,致使在这些并发执行的程序之间,形成了相互制约的关系。相互制的程序之间,形成了相互制约的关系。相互制约将导致并发程序具有约将导致并发程序具有“执行执行暂停暂停执执行行”这种间断性的活动规律。这种间断性的活动规律。2)失去封闭性)失去封闭

3、性: 是多个程序共享系统中的各种是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。变,致使程序的运行已失去了封闭性。 3)不可再现性)不可再现性: 程序在并发执行时,由于失去程序在并发执行时,由于失去了封闭性,导致不可再现性了封闭性,导致不可再现性 。 例如,有两个循环程序例如,有两个循环程序A和已它们共享一和已它们共享一个变量个变量N。程序。程序A每执行一次时,都要做每执行一次时,都要做N:=N1操作;程序操作;程序B每执行一次时,每执行一次时,都要执行都要执行Print(N)操作,然后再将)操作,然后

4、再将N置置成成“0”。程序。程序A和和B以不同的速度运行。以不同的速度运行。这样,可能出现其计算结果不可再现性,这样,可能出现其计算结果不可再现性,亦即,程序经过多次执行后,虽然它们亦即,程序经过多次执行后,虽然它们执行时的环境和初始条件相同,但得到执行时的环境和初始条件相同,但得到的结果却各不相同。的结果却各不相同。例子:变量例子:变量X X为共享变量,程序为共享变量,程序1 1和程序和程序2 2都要对都要对X X进进行访问,当两个程序执行的速度变化时可得到不行访问,当两个程序执行的速度变化时可得到不同的结果。同的结果。执行顺序执行顺序1:程序:程序1程序程序2 结果为:结果为:X增加增加2

5、。执行顺序执行顺序2: R1=X; R2=X; R1=R1+1; R2=R2+1; X=R1; R1=X; R2=X; R1=R1+1; R2=R2+1; X=R1; X=R2X=R2 结果为:结果为: X X 增加增加1 1。 还可有许多其它组合还可有许多其它组合程序程序2 2 R2=XR2=XR2=R2+1R2=R2+1X=R2X=R2 程序程序1 1 R1=XR1=XR1=R1+1R1=R1+1X=R1X=R1 目目 标标 程程 序序 并发执行失去封闭性的原因是共享资源的影并发执行失去封闭性的原因是共享资源的影响,去掉这种影响就行了。响,去掉这种影响就行了。1966年,由年,由Berns

6、tein给出并发执行的条件给出并发执行的条件。 程序程序 P(i) 针对针对共享变量共享变量的读集和写集的读集和写集 R(i)和和W(i) 条件:任意两个程序条件:任意两个程序P(i)和和P(j),有:,有: R(i) W(j)= ; W(i) R(j)= ; W(i) W(j)= ; 前两条保证一个程序的两次读之间数据不变化;最前两条保证一个程序的两次读之间数据不变化;最后一条保证写的结果不丢掉。后一条保证写的结果不丢掉。 现在的问题是这个条件不好检查。现在的问题是这个条件不好检查。 并发是指在某一时间间隔内计算机系统中并发是指在某一时间间隔内计算机系统中存在着多个程序活动。存在着多个程序活

7、动。 并行是指在同一时刻计算机内有多个程序并行是指在同一时刻计算机内有多个程序都在执行,这只有在多都在执行,这只有在多CPU的系统中才能实现。的系统中才能实现。在单在单CPU的计算机系统中,多个程序是不可能的计算机系统中,多个程序是不可能同时执行的。并发是从宏观上(这种同时执行的。并发是从宏观上(这种“宏观宏观”也许不到一秒的时间)看多个程序的运行活动,也许不到一秒的时间)看多个程序的运行活动,这些程序在串行的、交错的运行,由操作系统这些程序在串行的、交错的运行,由操作系统负责这些程序之间的运行切换,人们从外部宏负责这些程序之间的运行切换,人们从外部宏观上观察,有多个程序都在系统中运行。观上观

8、察,有多个程序都在系统中运行。1、进程的定义、进程的定义 进程是一个具有一定进程是一个具有一定独立独立功能的程功能的程序关于某个数据集合的一次序关于某个数据集合的一次运行运行活动,活动,是系统进行资源分配和调度的基本单位是系统进行资源分配和调度的基本单位。程序程序 进程进程静态的指令序列静态的指令序列 动态的程序执行过程动态的程序执行过程一程序可对应一程序可对应 一个进程对应至少有一个进程对应至少有多个进程多个进程 一个程序在工作一个程序在工作永久性软件资源永久性软件资源 暂存资源暂存资源, , 动态产生过程动态产生过程 资源分配和调度的单位资源分配和调度的单位2、进程的特征、进程的特征:进程

9、进程是程序在并发系统内的一次执行,一是程序在并发系统内的一次执行,一个进程有一个从产生到消失的个进程有一个从产生到消失的生命期,生命期,是进程的最是进程的最基本的特征;基本的特征;:正是为了描述程序在并发系统内执行的动正是为了描述程序在并发系统内执行的动态特性才引入了态特性才引入了进程进程,没有并发就没有,没有并发就没有进程进程,是进,是进程的最重要的特征,正是因为并发性,才提高了系程的最重要的特征,正是因为并发性,才提高了系统资源的利用率和系统的吞吐量;统资源的利用率和系统的吞吐量;:每个每个进程进程的程序都是相对独立的顺序程序,的程序都是相对独立的顺序程序,可以按照自己的方向和速度独立地向

10、前推进;可以按照自己的方向和速度独立地向前推进;:指指进程进程的执行进度,或推进速度不可预测,的执行进度,或推进速度不可预测,而与同时驻留在内存的其它进程有关;而与同时驻留在内存的其它进程有关;:进程进程之间的相互制约,主要表现在互斥地之间的相互制约,主要表现在互斥地使用资源和相关使用资源和相关进程进程之间必要的同步和通讯;之间必要的同步和通讯;:进程进程 = = PCB + 程序程序 + 数据集合数据集合3、引入进程后需要解决的问题、引入进程后需要解决的问题 为了刻画进程的动态变化,通常把为了刻画进程的动态变化,通常把进程表示为由程序段、私有数据块和进进程表示为由程序段、私有数据块和进程控制

11、块(程控制块(PCB)组成。)组成。 程序部分描述进程本身所要完成的程序部分描述进程本身所要完成的功能,而功能,而“私有数据块私有数据块”是接受程序规是接受程序规定操作的一组存储单元的内容,是操作定操作的一组存储单元的内容,是操作的对象。进程控制块是在进程创建时产的对象。进程控制块是在进程创建时产生的,当进程存在于系统时(运行),生的,当进程存在于系统时(运行),进程控制块就标识了这个进程。进程控制块就标识了这个进程。PCB包含了进程的描述信息和控制信息,通常有如下项目:包含了进程的描述信息和控制信息,通常有如下项目:(1) 标识符标识符(2) 存贮信息存贮信息(3) 现场状态现场状态(4)

12、优先数优先数(5) 现场信息现场信息(6) 链接字链接字(或称队列指针或称队列指针)(7) 族系关系族系关系(8) 资源清单资源清单(9) 其他其他 * 标识符标识符 分为外部标识符和内部标识符。外部标识分为外部标识符和内部标识符。外部标识符由创建进程者提供,通常由字母、数字等组符由创建进程者提供,通常由字母、数字等组成,在用户或其它进程访问该进程时使用。内成,在用户或其它进程访问该进程时使用。内部标识符是一个整数。在操作系统的部标识符是一个整数。在操作系统的PCBPCB表区表区中,有多个中,有多个PCBPCB表,每个表,每个PCBPCB表有一个序号,通表有一个序号,通常将这个序号做为内部标识

13、符,以方便系统使常将这个序号做为内部标识符,以方便系统使用。用。* * 程序地址程序地址 进程的程序部分在内存及外存的地址,或进程的程序部分在内存及外存的地址,或描述程序地址信息的段表地址、页表地址等。描述程序地址信息的段表地址、页表地址等。* * 数据地址数据地址 进程的数据部分在内存及外存的地址,或进程的数据部分在内存及外存的地址,或描述数据地址信息的段表地址、页表地址等。描述数据地址信息的段表地址、页表地址等。* * 状态状态 进程当前所处的状态,即就绪状态、执行进程当前所处的状态,即就绪状态、执行状态及阻塞状态,已经被创建的进程的状态必状态及阻塞状态,已经被创建的进程的状态必为此三者之

14、一。为此三者之一。* * CPU CPU状态保护区状态保护区 CPUCPU状态信息主要由通用寄存器、程序计状态信息主要由通用寄存器、程序计数器数器PCPC、程序状态字、程序状态字PSWPSW以及用户栈指针等组以及用户栈指针等组成,也称为中断点现场信息。成,也称为中断点现场信息。CPUCPU状态保护区状态保护区用以保护进程被中断而暂停执行时用以保护进程被中断而暂停执行时CPUCPU的状态的状态信息,以便进程重新获得信息,以便进程重新获得CPUCPU时能够重布现场,时能够重布现场,从上次被中断处继续执行。从上次被中断处继续执行。* * 进程优先级进程优先级 进程优先级是用以描述进程使用处理机的进程

15、优先级是用以描述进程使用处理机的优先级别的整数,是优先级调度算法中调度的优先级别的整数,是优先级调度算法中调度的依据。通常数值越小,优先级别越高。优先级依据。通常数值越小,优先级别越高。优先级可以处理成不变的,称为静态优先级,也可以可以处理成不变的,称为静态优先级,也可以处理成可变的,称为动态优先级。处理成可变的,称为动态优先级。* * 通信信息通信信息 进程通信时需要使用的信息,包括标志位、进程通信时需要使用的信息,包括标志位、信号或信号量、消息队列信息等。如消息缓冲信号或信号量、消息队列信息等。如消息缓冲通信机制中,在进程的通信机制中,在进程的PCBPCB表中,需要有消息表中,需要有消息队

16、列队首指针、消息个数及互斥使用消息队列队列队首指针、消息个数及互斥使用消息队列的信号量等。的信号量等。* * 资源信息资源信息 进程对资源的需求及已经分配资源的清单。进程对资源的需求及已经分配资源的清单。* * 队列指针队列指针 除了执行状态的进程外,其余的进程除了执行状态的进程外,其余的进程PCBPCB表都处于某一就绪队列或某一阻塞队列中。队表都处于某一就绪队列或某一阻塞队列中。队列指针用于指向进程所在队列中下一个列指针用于指向进程所在队列中下一个PCBPCB表表的首地址。的首地址。* * 家族指针家族指针 进程在运行过程中可以创建新进程来协同进程在运行过程中可以创建新进程来协同完成同一任务

17、。创建者称为父进程,被创建者完成同一任务。创建者称为父进程,被创建者称为子进程。父进程称为子进程。父进程PCBPCB表中有指向子进程的表中有指向子进程的PCBPCB表的指针,子进程的表的指针,子进程的PCBPCB表中有指向父进程表中有指向父进程的的PCBPCB表的指针,这就是家族指针,它可以将表的指针,这就是家族指针,它可以将一个家族的进程联系起来,形成进程家族树。一个家族的进程联系起来,形成进程家族树。 为了便于管理,系统把所有的为了便于管理,系统把所有的PCB用适当用适当方式组织起来。一般说来,大致有以下三种组方式组织起来。一般说来,大致有以下三种组织方式:织方式: (1) 线性表方式线性

18、表方式 (2) 索引方式索引方式 (3) 链接方式链接方式例例 假设内存中有假设内存中有3 3个进程个进程A A、B B、C C,他,他们的程序代码已全部装入内存。若们的程序代码已全部装入内存。若A A、C C两进程需要执行两进程需要执行1212条指令,条指令,B B进程需要执进程需要执行行4 4条指令,且条指令,且B B进程执行到第进程执行到第4 4条指令处条指令处必须等待必须等待I/OI/O 在两状态模型中进程可能处于如下在两状态模型中进程可能处于如下两种状态中:两种状态中: 执行执行 (Running ) 非执行(非执行( Not-running )事事 件件说说 明明新的批作业新的批作

19、业通常位于磁带或磁盘中的批作业控制流被提供给通常位于磁带或磁盘中的批作业控制流被提供给操作系统。当操作系统准备接纳新工作时。它将操作系统。当操作系统准备接纳新工作时。它将读取下一个作业控制命令读取下一个作业控制命令交互登录交互登录 终端用户登录到系统终端用户登录到系统操作系统因为操作系统因为提供一项服务提供一项服务而创建而创建操作系统可以创建一个进程,代表用户程序执行操作系统可以创建一个进程,代表用户程序执行一个功能,使用户无需等待(如控制打印的进程)一个功能,使用户无需等待(如控制打印的进程)由现有的进程由现有的进程生成生成基于模块化的考虑,或者为了开发并行性,用户基于模块化的考虑,或者为了

20、开发并行性,用户程序可以规定许多进程的创建程序可以规定许多进程的创建 事件事件说明说明正常完成正常完成进程自行执行一个操作系统服务调用,表示它已经结进程自行执行一个操作系统服务调用,表示它已经结束运行束运行超过时限超过时限进程运行时间超过规定的时限。可以测量很多种类型的时间,进程运行时间超过规定的时限。可以测量很多种类型的时间,包括总的运行时间(包括总的运行时间(“挂钟时间挂钟时间”)。花费在执行上的时间)。花费在执行上的时间以及对于交互进程从上一次用户输入到当前时刻的时间总量以及对于交互进程从上一次用户输入到当前时刻的时间总量无可用存储器无可用存储器系统无法满足进程需要的存储器空间系统无法满

21、足进程需要的存储器空间越界越界 进程试图访问不允许访问的存储器单元进程试图访问不允许访问的存储器单元保护错误保护错误进程试图使用不允许使用的资源或文件,或者试图以进程试图使用不允许使用的资源或文件,或者试图以一种不正确的方式使用,如往只读文件中写一种不正确的方式使用,如往只读文件中写算术错误算术错误 进程试图进行被禁止的计算,如除以零或者存储器大进程试图进行被禁止的计算,如除以零或者存储器大于硬件可以接纳的数字于硬件可以接纳的数字 接上表接上表事件事件说明说明时间超出时间超出进程等待某一事件发生的时间超过了规定的最进程等待某一事件发生的时间超过了规定的最大值大值I/O失败失败在输入或输出期间发

22、生错误,如找不到文件、在超过规定在输入或输出期间发生错误,如找不到文件、在超过规定的最多努力次数后仍然读写失败(例如当遇到了磁带上的最多努力次数后仍然读写失败(例如当遇到了磁带上的一个坏区时)或者无效操作(如从行式打印机中读)的一个坏区时)或者无效操作(如从行式打印机中读)无效指令无效指令进程试图执行一个不存在的指令(通常是由于转移进程试图执行一个不存在的指令(通常是由于转移到了数据区并企图执行数据)到了数据区并企图执行数据)特权指令特权指令进程试图使用为操作系统保留的指令进程试图使用为操作系统保留的指令数据误用数据误用错误类型或未初始化的一块数据错误类型或未初始化的一块数据操作员或操作系操作

23、员或操作系统干涉统干涉由于某些原因,操作员或操作系统终止进程由于某些原因,操作员或操作系统终止进程(例如,如果存在死锁)(例如,如果存在死锁)父进程终止父进程终止当父进程终止时,操作系统可能会自动终止该当父进程终止时,操作系统可能会自动终止该进程的所有后代进程进程的所有后代进程父进程请求父进程请求父进程通常具有终止其任何后代进程的权力父进程通常具有终止其任何后代进程的权力 Running:占用处理机(单处理机环境中,占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机)某一时刻仅一个进程占用处理机) Ready:准备执行准备执行 Blocked:等待某事件发生才能执行,如等待某事件发生才能

24、执行,如等待等待I/O完成等完成等 New:进程已经创建,但未被进程已经创建,但未被OS接纳为接纳为可执行进程,并且程序还在辅存,可执行进程,并且程序还在辅存,PCB在内存在内存 Exit:因停止或取消,被因停止或取消,被OS从执行状态从执行状态释放释放 Null New:新创建进程首先处于新状态:新创建进程首先处于新状态事 件说 明新的批作业通常位于磁带或磁盘中的批作业控制流被提供给操作系统。当操作系统准备接纳新工作时。它将读取下一个作业控制命令交互登录 终端用户登录到系统操作系统因为提供一项服务而创建操作系统可以创建一个进程,代表用户程序执行一个功能,使用户无需等待(如控制打印的进程)由现

25、有的进程生成基于模块化的考虑,或者为了开发并行性,用户程序可以规定许多进程的创建 NewReady:OS接纳新状态进程为就绪进程接纳新状态进程为就绪进程 Ready Running:OS只能从就绪进程中选一只能从就绪进程中选一个进程执行个进程执行 Running Exit:执行状态的进程执行完毕,:执行状态的进程执行完毕,或被取消,则转换为退出状态或被取消,则转换为退出状态 RunningReady:分时系统中,时间片用完,:分时系统中,时间片用完,或优先级高的进程到来,将终止优先级低的进或优先级高的进程到来,将终止优先级低的进程的执行程的执行 Running Blocked:执行进程需要等待

26、某事:执行进程需要等待某事件发生。通常因进程需要的系统调用不能立即件发生。通常因进程需要的系统调用不能立即完成,而阻塞完成,而阻塞 Blocked Ready:当阻塞进程等待的事件发:当阻塞进程等待的事件发生,就转换为就绪状态生,就转换为就绪状态 Ready Exit:某些系统允许父进程在任何情某些系统允许父进程在任何情况下终止其子进程。若一个父进程终止,其子况下终止其子进程。若一个父进程终止,其子孙进程都必须终止。孙进程都必须终止。 Blocked Exit:因为它自身退出了,或者是:因为它自身退出了,或者是因为某种原因被取消。因为某种原因被取消。 Using Two Queues 这个问题

27、的出现是由于进程优先级的引入,这个问题的出现是由于进程优先级的引入,一些低优先级进程可能一些低优先级进程可能等待较长时间等待较长时间,从而,从而被被对换至外存对换至外存。这样做的目的是:。这样做的目的是: 提高处理机效率提高处理机效率:就绪进程表为空就绪进程表为空时,要提交新时,要提交新进程,以提高处理机效率;进程,以提高处理机效率; 为运行进程为运行进程提供足够内存提供足够内存:资源紧张时,暂停某:资源紧张时,暂停某些进程,如:些进程,如:CPU繁忙(或实时任务执行),内繁忙(或实时任务执行),内存紧张;存紧张;被挂起进程的原因被挂起进程的原因 用于用于调试调试:在调试时,挂起:在调试时,挂

28、起被调试进程被调试进程(从而对其地址空间进行读写);(从而对其地址空间进行读写); 操作系统的需要:操作系统可能挂起操作系统的需要:操作系统可能挂起后台后台进程进程或一些或一些服务进程,或服务进程,或某些可能某些可能导致系导致系统故障的进程统故障的进程; 父进程的需求:父进程可能挂起子进程。父进程的需求:父进程可能挂起子进程。被挂起进程的特征被挂起进程的特征 不能被调度执行。不能被调度执行。 可能是等待某事件发生,若是,则阻塞可能是等待某事件发生,若是,则阻塞条件独立于挂起条件,即使阻塞事件发条件独立于挂起条件,即使阻塞事件发生,该进程也不能执行。生,该进程也不能执行。 为了阻止进程执行,可以

29、通过代理使进为了阻止进程执行,可以通过代理使进程挂起。代理可以是进程自身或父进程、程挂起。代理可以是进程自身或父进程、或或OSOS。 只有实施挂起操作的进程才能使之由挂只有实施挂起操作的进程才能使之由挂起状态转换为其他状态。起状态转换为其他状态。一个挂起Two Suspend States BlockedBlocked/SuspendBlockedBlocked/Suspend :OSOS通常将阻塞进程换出,通常将阻塞进程换出,以腾出内存空间以腾出内存空间 Blocked/SuspendReady/SuspendBlocked/SuspendReady/Suspend: : 当当Blocked

30、/SuspendBlocked/Suspend进程等待的事件发生时,可以将其进程等待的事件发生时,可以将其转换为转换为Ready/suspendReady/suspend Ready/SuspendReadyReady/SuspendReady:OSOS需要调入一个进程执行时需要调入一个进程执行时 ReadyReady/SuspendReadyReady/Suspend :挂起就绪进程,释放足够的:挂起就绪进程,释放足够的内存空间内存空间 New Ready/suspendNew Ready/suspend(NewNewReadyReady): 新进程创建后,可以插入到就绪队列或新进程创建后,

31、可以插入到就绪队列或Ready/suspendReady/suspend队列。若无足够的内存分配给新进程,则需要队列。若无足够的内存分配给新进程,则需要New New Ready/Suspend Ready/Suspend Blocked/SuspendBlockedBlocked/SuspendBlocked:当:当Blocked/SuspendBlocked/Suspend队列队列中有一个进程的阻塞事件可能会很快发生,则可将一中有一个进程的阻塞事件可能会很快发生,则可将一个个Blocked/SuspendBlocked/Suspend进程换入内存,变为进程换入内存,变为BlockedBlo

32、cked RunningReady/SuspendRunningReady/Suspend :当执行进程的时间片用完:当执行进程的时间片用完时 , 会 转 换 为时 , 会 转 换 为 R e a d yR e a d y 。 或 , 一 个 高 优 先 级 的。 或 , 一 个 高 优 先 级 的Blocked/SuspendBlocked/Suspend进程正好变为非阻塞状态,进程正好变为非阻塞状态,OSOS可以将可以将执行进程转换为执行进程转换为Ready/SuspendReady/Suspend状态状态 AllExitAllExit:通常,通常,Running ExitRunning

33、Exit。但某些。但某些OSOS中,中,父进程可以终止其子进程,使任何状态的进程都可转父进程可以终止其子进程,使任何状态的进程都可转换为退出状态换为退出状态 处理机有核心态和用户态两种执行状态处理机有核心态和用户态两种执行状态 :由设备中断、异常、自陷、信号:由设备中断、异常、自陷、信号(即软中断)等进入,这种状态具有较高的特(即软中断)等进入,这种状态具有较高的特权,允许使用全部机器资源与机器指令,是操权,允许使用全部机器资源与机器指令,是操作系统程序执行时的状态。作系统程序执行时的状态。 :处理机在这种状态下只能使用指定:处理机在这种状态下只能使用指定的机器指令,不能使用如的机器指令,不能

34、使用如I/OI/O、改变机器状态、改变机器状态、修改存储保护等指令,并且只允许访问用户自修改存储保护等指令,并且只允许访问用户自己的存储区,是用户程序执行时的状态。己的存储区,是用户程序执行时的状态。 没有配置任何软件的计算机称为裸没有配置任何软件的计算机称为裸机,操作系统是在裸机上添加多层软件机,操作系统是在裸机上添加多层软件形成的。通常将与硬件紧密相关的部分,形成的。通常将与硬件紧密相关的部分,如中断处理程序、设备驱动程序及进程如中断处理程序、设备驱动程序及进程从创建到撤消包括进程状态变迁中用到从创建到撤消包括进程状态变迁中用到的公共操作等集中在一起,常驻内存,的公共操作等集中在一起,常驻

35、内存,作为裸机上添加的第一层软件,叫做作为裸机上添加的第一层软件,叫做。 运行频率高的功能模块大都放在操作系统运行频率高的功能模块大都放在操作系统的内核来实现。的内核来实现。1、资源管理的功能、资源管理的功能 进程的创建和终止、进程调度、进程状态进程的创建和终止、进程调度、进程状态转换、进程之间的同步和通信、以及转换、进程之间的同步和通信、以及PCB管理管理等等。等等。 为进程分配空间、实现内存保护和对换功为进程分配空间、实现内存保护和对换功能、对内存进行分段和分页管理的等等。能、对内存进行分段和分页管理的等等。 I/O缓冲区管理、为进程分配缓冲区管理、为进程分配I/O通道和设通道和设备等等备

36、等等2、支持功能、支持功能 * 中断中断 处理功能既是内核的最基本功处理功能既是内核的最基本功能,也是整个操作系统赖以活动的基础,能,也是整个操作系统赖以活动的基础,即操作系统的一切重要活动都最终依赖即操作系统的一切重要活动都最终依赖于中断。于中断。 * 操作系统内核的功能大都通过执行操作系统内核的功能大都通过执行各种原语来实现的。各种原语来实现的。 原语:是机器指令的延伸,是由若干原语:是机器指令的延伸,是由若干条机器指令构成的、完成特定功能的一个条机器指令构成的、完成特定功能的一个过程。过程。 原子操作:指一个操作中的所有动作,原子操作:指一个操作中的所有动作,要么全做,要么全不做,即原子

37、操作是一要么全做,要么全不做,即原子操作是一个不可分割的操作。个不可分割的操作。 在单处理机中,操作的原子性可以通在单处理机中,操作的原子性可以通过屏蔽中断来实现。过屏蔽中断来实现。 时钟就是操作系统运行的脉搏。时钟就是操作系统运行的脉搏。1、进程的创建和撤消、进程的创建和撤消在PCB表区索取一张空表申请内存;调入程序和数据;分配其它必要资源初始化PCB表将PCB表插入就绪队列返回 找出撤消进程n的PCB表n是执行状态?中断CPU,停止执行置重新调度标志为真撤消n的子孙进程归还资源(系统、父进程)将PCB表移出所在队列归还给系统调度标志为真?n为就绪?n为阻塞?NYNY出错处理YNNY进程调度

38、程序入口返回2、进程的阻塞和唤醒、进程的阻塞和唤醒 阻塞是进程自己通过调用阻塞原语阻塞是进程自己通过调用阻塞原语自己阻塞自己,而唤醒操作则由操作系自己阻塞自己,而唤醒操作则由操作系统或其它相关进程调用唤醒原语来唤醒,统或其它相关进程调用唤醒原语来唤醒,进程自己无法自己唤醒自己。进程自己无法自己唤醒自己。 进程阻塞的原因:进程阻塞的原因: * * 进程请求进程请求I/OI/O服务,无论获得服务,无论获得I/OI/O服服务与否,通常都要暂时放弃务与否,通常都要暂时放弃CPUCPU; * * 某些原语操作,如某些原语操作,如P P操作等可能引起操作等可能引起进程阻塞;进程阻塞; * * 某些系统进程

39、工作时占用某些系统进程工作时占用CPUCPU,无事,无事可做时,则调用阻塞原语将自己阻塞。可做时,则调用阻塞原语将自己阻塞。找出执行进程的PCB表中断CPU,暂停执行,保存CPU现场将执行进程置为阻塞状态将PCB插入该事件阻塞队列进程调度程序人口进程唤醒的原因:进程唤醒的原因: * * 进程请求的进程请求的I/OI/O操作完成;操作完成; * * 某些原语操作,如某些原语操作,如V V操作等可以解封操作等可以解封阻塞进程;阻塞进程; * * 某些系统进程有事可做时,用唤醒某些系统进程有事可做时,用唤醒原语将其唤醒。原语将其唤醒。找出唤醒进程的PCB表将PCB表从阻塞队列移出将进程PCB表中状态

40、置为就绪将PCB表插入就绪队列返回3、进程的挂起与激活、进程的挂起与激活 根据进程所处状态,挂起原语可以根据进程所处状态,挂起原语可以有三种处理:有三种处理: * * 完成进程从活动就绪状态到静止就完成进程从活动就绪状态到静止就绪状态的转变绪状态的转变; ; * * 完成进程从活动阻塞状态到静止阻完成进程从活动阻塞状态到静止阻塞状态的转变塞状态的转变; ; * * 若进程是执行状态,则转变为静止若进程是执行状态,则转变为静止就绪状态。就绪状态。: * * 进程请求挂起自身;进程请求挂起自身; * * 父进程挂起子进程。父进程挂起子进程。: * * 挂起一个具有指定标识符的进挂起一个具有指定标识

41、符的进程;程; * * 挂起某个进程及其所有子孙进挂起某个进程及其所有子孙进程。采用这种挂起方式可以避免进程。采用这种挂起方式可以避免进程被挂起而其子孙进程仍在活动而程被挂起而其子孙进程仍在活动而带来的问题。带来的问题。找出挂起进程n的PCB表取PCB表中的进程状态n是执行状态?Y中断CPU,暂停执行并保留CPU现场执行状态静止就绪活动就绪静止就绪n为活动就绪?n为活动阻塞?活动阻塞静止阻塞NYNY出错处理N进程调度程序入口返回找出激活进程n的PCB表激活对象在外存?由外存调入内存n为静止就绪?静止就绪活动就绪激活进程优先级较运行进程高?中断CPU,暂停执行并保留CPU现场进程调度程序入口NY

42、Yn为静止阻塞?静止阻塞活动阻塞YN出错处理Y返回NN4、进程切换、进程切换进程切换的大致的两个步骤:进程切换的大致的两个步骤: * 保护被切换进程的现场;保护被切换进程的现场; * 恢复投入运行的现场。恢复投入运行的现场。 交通控制程序交通控制程序(Traffic Controller)是是J.H.Saltzer于于 1966 年起的名字。他把操年起的名字。他把操作系统中指挥各个进程的工作比作一个作系统中指挥各个进程的工作比作一个交通警察,交通警察, 而把各个进程比作车辆。而把各个进程比作车辆。 它它们之间有时要竞争,有时要合作,们之间有时要竞争,有时要合作, 交通交通警察就要保证它们协调一

43、致,互不冲突。警察就要保证它们协调一致,互不冲突。在操作系统中,交通控制程序的主要职在操作系统中,交通控制程序的主要职能是管理进程状态之间的转变和协调进能是管理进程状态之间的转变和协调进程间的通讯。程间的通讯。 在进程状态的变化中,从就绪到运在进程状态的变化中,从就绪到运行的转变是由一个专门的程序来完成的,行的转变是由一个专门的程序来完成的,该程序称为进程调度程序。进程调度称该程序称为进程调度程序。进程调度称为为“低级低级”调度,是相对作业调度而言调度,是相对作业调度而言的。进程调度程序所要完成的是把一台的。进程调度程序所要完成的是把一台物理的物理的CPU转变为多台虚拟的转变为多台虚拟的CPU

44、或者或者多台逻辑的多台逻辑的CPU。 * 现运行进程运行结束或者因任务完成而正现运行进程运行结束或者因任务完成而正常结束,或者因出现错误而异常结束。常结束,或者因出现错误而异常结束。 * 现运行进程因某种原因,比如现运行进程因某种原因,比如I/O请求,从请求,从运行进入阻塞状态。运行进入阻塞状态。 * 现运行进程执行某种原语操作,如现运行进程执行某种原语操作,如P操作、操作、阻塞原语等,进入阻塞状态。阻塞原语等,进入阻塞状态。 * 一个具有更高优先级的进程要求使用处理一个具有更高优先级的进程要求使用处理机,即进入就绪队列。机,即进入就绪队列。 * 分配给该进程运行的时间片已用完。分配给该进程运

45、行的时间片已用完。 * 记住系统中所有进程的状态、记住系统中所有进程的状态、 优先优先数和资源需求情况。数和资源需求情况。 对于动态优先数,对于动态优先数,还须按一定算法定期地对它进行计算。还须按一定算法定期地对它进行计算。 * 确定调度算法,决定把处理机分配确定调度算法,决定把处理机分配给哪个进程和分配多长时间。给哪个进程和分配多长时间。 某个进程某个进程正在运行时,如果有优先级更高的进程正在运行时,如果有优先级更高的进程进入就绪队列,是继续运行原进程还是进入就绪队列,是继续运行原进程还是分配处理机给优先级更高的进程,由调分配处理机给优先级更高的进程,由调度方式确定。度方式确定。 * 分配处

46、理机给进程。分配处理机给进程。 所谓进程调度方式,是指当一个进所谓进程调度方式,是指当一个进程正在处理机上运行时,若有某个更为程正在处理机上运行时,若有某个更为紧迫或更为重要的进程需要进行处理,紧迫或更为重要的进程需要进行处理,或者说,如果有更高优先级的进程进入或者说,如果有更高优先级的进程进入就绪队列时,如何分配处理机。就绪队列时,如何分配处理机。 通常有通常有两种进程调度方式:两种进程调度方式: 通常有两种进程调度方式:通常有两种进程调度方式: * 非剥夺方式非剥夺方式 进程一旦获得进程一旦获得CPUCPU就一直执行,直到完就一直执行,直到完成或发生某事件(如请求成或发生某事件(如请求I/

47、OI/O服务、服务、P P操作等)操作等)而阻塞,其它的进程方可运行。这种调度方而阻塞,其它的进程方可运行。这种调度方式简单,容易实现,但是一个进程的运行往式简单,容易实现,但是一个进程的运行往往可能导致多数进程长期得不到服务,所以往可能导致多数进程长期得不到服务,所以非抢占方式不适宜有多个竞争用户的通用系非抢占方式不适宜有多个竞争用户的通用系统。统。 * 剥夺方式剥夺方式 允许在逻辑上可执行的进程暂时放弃允许在逻辑上可执行的进程暂时放弃CPUCPU。抢占方式的调度策略(如时间片轮转、。抢占方式的调度策略(如时间片轮转、优先级等)允许非执行进程在满足某种条件优先级等)允许非执行进程在满足某种条

48、件时抢占执行进程所占用的时抢占执行进程所占用的CPUCPU。进程调度要满足两个方面的目标:进程调度要满足两个方面的目标: * 满足用户的需求满足用户的需求 -交互式用户对响应时间的要求;交互式用户对响应时间的要求; -批处理系统用户对作业周转时间的要求;批处理系统用户对作业周转时间的要求; -实时系统对任务截止时间的要求。实时系统对任务截止时间的要求。 * 满足系统的需求满足系统的需求 -系统吞吐量;系统吞吐量; -处理机利用率;处理机利用率; -各类资源的平衡使用;各类资源的平衡使用; -公平性;公平性; -优先级。优先级。 * :是指从用户通过键盘提交一个:是指从用户通过键盘提交一个请求开

49、始,直到系统首次产生响应为止的时请求开始,直到系统首次产生响应为止的时间。常用于评价分时系统的性能。间。常用于评价分时系统的性能。 响应时间包括响应时间包括3个部分时间的总和:个部分时间的总和: (1)从键盘输入的请求信息传送到处理机)从键盘输入的请求信息传送到处理机的时间;的时间; (2)处理机对请求信息进行处理的时间;)处理机对请求信息进行处理的时间; (3)将响应结果发送到输出终端的时间。)将响应结果发送到输出终端的时间。 * :指从作业提交给系统开始,:指从作业提交给系统开始,到作业完成为止的这段时间间隔,也叫作到作业完成为止的这段时间间隔,也叫作业周转时间。常用于批处理系统的性能。业

50、周转时间。常用于批处理系统的性能。 周转时间包括周转时间包括4个部分时间的总和:个部分时间的总和: (1)作业在外存排队等待调度的时间;)作业在外存排队等待调度的时间; (2)进程在就绪队列中等待调度的时)进程在就绪队列中等待调度的时间(可能多次等待);间(可能多次等待); (3)进程被处理机执行的时间。)进程被处理机执行的时间。 (4)等待)等待I/O操作完成的时间。操作完成的时间。* :指实时系统中,某任务必须:指实时系统中,某任务必须开始执行的最迟时间,或必须完成的最开始执行的最迟时间,或必须完成的最迟时间。常用于评价实时系统的性能。迟时间。常用于评价实时系统的性能。 * :指单位时间内

51、系统所完成:指单位时间内系统所完成的作业数。常用于评价批处理系统的性的作业数。常用于评价批处理系统的性能。能。 * :指处理机被使用的频率。:指处理机被使用的频率。对于衡量大中型机的多用户系统是一个对于衡量大中型机的多用户系统是一个重要的指标。对于但用户微机或某些实重要的指标。对于但用户微机或某些实时系统,则并非很重要。时系统,则并非很重要。* 多道程序系统的目标之一就是提高多道程序系统的目标之一就是提高系统资源的利用率,因此,调度算法有系统资源的利用率,因此,调度算法有责任是系统中的各种资源都尽量处于忙责任是系统中的各种资源都尽量处于忙碌状态。该原则同时适合中级调度和高碌状态。该原则同时适合

52、中级调度和高级调度。级调度。 调度算法应该对所有进程公平,而调度算法应该对所有进程公平,而不偏袒任何进程。不偏袒任何进程。 优先权是调度算法需要考虑的一个优先权是调度算法需要考虑的一个重要因素。优先权高的进程应该优先调重要因素。优先权高的进程应该优先调度。度。 确定优先权的高低的方式:确定优先权的高低的方式: * 静态优先权静态优先权 * 动态优先权动态优先权按照算法所运行的系统类型,可按照算法所运行的系统类型,可以分为:以分为: * * 批处理调度批处理调度 * * 分时调度分时调度 * * 实时调度实时调度 * * 多处理机调度多处理机调度按照调度的层次,可以分为:按照调度的层次,可以分为

53、: * * 高级调度(长程调度)高级调度(长程调度) * * 低级调度(短程调度)低级调度(短程调度) * * 中级调度(中程调度)中级调度(中程调度) * * 即作业调度或宏观调度。其任务是对那即作业调度或宏观调度。其任务是对那些提交给系统后被收容的作业些提交给系统后被收容的作业, , 按照一定策按照一定策略选择出某些作业略选择出某些作业, , 为其分配内存等必要的为其分配内存等必要的资源资源, , 建立与之对应的进程建立与之对应的进程, , 并将进程的并将进程的PCBPCB表放入就绪队列中表放入就绪队列中, , 使其具备参与竞争使用使其具备参与竞争使用CPUCPU的权利。的权利。收容作业调

54、度运行作业调度作业调度高级调度要考虑的两个问题:高级调度要考虑的两个问题: * * 选择多少个作业进入内存,为之创建进程,选择多少个作业进入内存,为之创建进程, 这取决于多道程序度。这取决于多道程序度。 * * 选择哪些作业,这取决于高级调度算法。选择哪些作业,这取决于高级调度算法。 可用的高级调度算法有:可用的高级调度算法有: - -先来先服务先来先服务 - -短作业优先短作业优先 - -基于优先级调度基于优先级调度 - -响应比高者优先响应比高者优先 :如果系统不支持作业处理功能,也就:如果系统不支持作业处理功能,也就 不会有高级调度。不会有高级调度。 * * 即进程调度或微观调度。其任务

55、是在进入即进程调度或微观调度。其任务是在进入内存并处于就绪队列的进程中内存并处于就绪队列的进程中, , 确定哪个进程确定哪个进程真正获得真正获得CPUCPU及其使用及其使用CPUCPU的时间。用执行指针的时间。用执行指针指向选中进程的指向选中进程的PCBPCB表,将它从就绪队列移出表,将它从就绪队列移出并重布现场,使其运行。现代操作系统都支持并重布现场,使其运行。现代操作系统都支持低级调度。低级调度。就绪进程调度阻塞执行进程调度进程调度 * * 将就绪状态细化为内存就绪和外存就绪状将就绪状态细化为内存就绪和外存就绪状态,阻塞状态细化为内存阻塞和外存阻塞状态态,阻塞状态细化为内存阻塞和外存阻塞状

56、态后,中级调度完成进程在内存与外存之间的对后,中级调度完成进程在内存与外存之间的对换。其任务是周期性地将那些在内存中暂时不换。其任务是周期性地将那些在内存中暂时不用的进程换出并放到外存,而将那些在外存上用的进程换出并放到外存,而将那些在外存上需要运行的进程换入到内存。需要运行的进程换入到内存。内存就绪换出外存就绪换入内存阻塞外存阻塞执行换出中级调度中级调度 下面是几项主要的评估标准:下面是几项主要的评估标准: ()() 平均周转时间平均周转时间 作业作业从提交时从提交时刻刻is到完成时刻到完成时刻ic所经历的时间称为所经历的时间称为该作业的周转时间该作业的周转时间,即,即icis;进程;进程从

57、进入就绪队列的时刻从进入就绪队列的时刻ir到执行完本次到执行完本次周期的时刻周期的时刻ic称称为该进程的周转时间为该进程的周转时间i,即,即iicir。于是,。于是,个作业的平均周转时间或个作业的平均周转时间或个进程的平均周转时间个进程的平均周转时间为:为: niiTnT11 ()() 平均带权周转时间平均带权周转时间 作业作业的周转的周转时间时间Ti与其实际运行时间与其实际运行时间i之比之比 称为称为该作业的带权周转时间,即该作业的带权周转时间,即 ,同样,进程同样,进程的周转时间的周转时间与其本次与其本次周期的时值之比周期的时值之比 称为该进程的称为该进程的带权周转时间。于是,带权周转时间

58、。于是,个作业或个作业或个个进程的平均带权周转时间进程的平均带权周转时间为:为:iTiiitTT/iTniiTnT11 ()平均等待时间()平均等待时间 进程进程从进入就绪从进入就绪队列那一时刻队列那一时刻ir到获得的那一时到获得的那一时刻刻ip所经历的时间称为它的等待时间所经历的时间称为它的等待时间i,即,即iipir,那么,那么个进程的个进程的平均等待时间平均等待时间为:为: 通常,通常,。niiWnW11 在先来先服务算法中,进程到达就在先来先服务算法中,进程到达就绪队列时按先后顺序排队。选择进程去绪队列时按先后顺序排队。选择进程去执行时,始终选队首进程。进程获得执行时,始终选队首进程。

59、进程获得CPUCPU后,直至执行完或发生某等待事件,才后,直至执行完或发生某等待事件,才释放释放CPUCPU。 先来先服务算法(先来先服务算法()本质上是非)本质上是非剥夺式的,如果可剥夺,则不能保证剥夺式的,如果可剥夺,则不能保证原则的实施。原则的实施。 先来先服务算法(先来先服务算法()优点:)优点: 实现简单实现简单 先来先服务算法(先来先服务算法()缺点:)缺点: * 对短进程不公平,使排在队列后面的短对短进程不公平,使排在队列后面的短进程要等待很长时间,增加整个系统的平均进程要等待很长时间,增加整个系统的平均周转时间。周转时间。 * 不利于不利于I/O型进程,未能有效利用系统资型进程

60、,未能有效利用系统资源源 * 采用非剥夺调度方式,未考虑进程的紧采用非剥夺调度方式,未考虑进程的紧迫程度,不适合分时系统和事务处理系统。迫程度,不适合分时系统和事务处理系统。 因此,先来先服务算法(因此,先来先服务算法()算法常常和其它调度算法混合使用,算法常常和其它调度算法混合使用,算法适合高级调度、中级调度和算法适合高级调度、中级调度和低级调度。低级调度。 考虑三个进程考虑三个进程、和和,它,它们的本次周期的时值分别为们的本次周期的时值分别为 、 和和 ,且以,且以、的次序处于就绪队列中,不妨认为的次序处于就绪队列中,不妨认为它们进入就绪队列的相对时刻均为。它们进入就绪队列的相对时刻均为。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论