1、1第六讲 进程控制与调度目的与要求:理解理解进程切换过程进程切换过程;理解;理解进程进程调度原因调度原因及及进程切换时机进程切换时机;掌握;掌握进程调度方进程调度方式式与实现及各种与实现及各种调度算法调度算法;弄清作业和进程;弄清作业和进程的关系;了解引入线程的原因的关系;了解引入线程的原因重点与难点:进程切换的实现与进程调度算进程切换的实现与进程调度算法法作业:7,8,10,11,19,202主要内容3.3 进程控制与调度3.3.1 进程执行3.3.2 进程调度3.3.3 进程调度算法3.4 作业与进程3.5 线程引入33.3 进程控制与调度3.3.1 进程执行系统参考模型:内核嵌入进程运行
2、模型内核嵌入进程运行模型执行模式:进程可在:进程可在用户态用户态和和核心态核心态下运行下运行模式切换:进程在:进程在用户态用户态运行运行用户程序用户程序,在自在自陷、系统调用和中断时转换到核心态运行操陷、系统调用和中断时转换到核心态运行操作系统作系统内核程序内核程序进程切换:指进程进入操作系统核心后因为指进程进入操作系统核心后因为自身等事件或有更迫切需要运行的进程就绪自身等事件或有更迫切需要运行的进程就绪而放弃处理机,处理机转去运行其他进程而放弃处理机,处理机转去运行其他进程*4进程切换过程1.1.保存保存处理机上下文处理机上下文,包括程序计数器,包括程序计数器PCPC、程、程序状态字序状态字
3、PSPS、其它寄存器、其它寄存器2.2.修改修改当前运行进程的进程控制块当前运行进程的进程控制块,包括将进,包括将进程状态从运行态改成其它状态程状态从运行态改成其它状态3.3.修改修改被调度进程的进程控制块被调度进程的进程控制块,包括把其状,包括把其状态改变到运行态态改变到运行态4.4.修改修改存储管理数据结构存储管理数据结构,如将系统当前运行,如将系统当前运行进程进程页表指针页表指针改为指向选定的进程页表改为指向选定的进程页表5.5.恢复恢复被选进程上次切换出处理机时的处理机被选进程上次切换出处理机时的处理机现场现场,按原保护的程序计数器值重置程序计,按原保护的程序计数器值重置程序计数器,运
4、行新选进程数器,运行新选进程*53.3.2 进程调度特指选择进程占用处理机特指选择进程占用处理机一.调度的一般概念什么是调度:操作系统管理了系统的有限操作系统管理了系统的有限资源,当有多个进程(或曰实体)要使用资源,当有多个进程(或曰实体)要使用这些资源时,因为这些资源时,因为资源的有限性资源的有限性,必须按,必须按照一定的原则选择进程(实体)来占用资照一定的原则选择进程(实体)来占用资源,这就是调度源,这就是调度调度目的:控制资源使用者的数量,控制资源使用者的数量,合理合理有效地使用资源有效地使用资源7二.进程调度方式1.剥夺调度:当进程运行时可以被系统以某当进程运行时可以被系统以某种原则剥
5、夺其处理机种原则剥夺其处理机2.非剥夺:只有当处理机上的进程主动放弃只有当处理机上的进程主动放弃处理机时才重新调度处理机时才重新调度进程调度在核心态进行8三.引起进程调度因素1.1.进程主动放弃处理机时进程主动放弃处理机时正在执行的进程正在执行的进程执行完毕执行完毕。操作系统在处理进程。操作系统在处理进程结束系统调用后应请求重新调度结束系统调用后应请求重新调度正在执行的进程发出正在执行的进程发出I/OI/O请求,当操作系统代其请求,当操作系统代其启动外设启动外设I/OI/O后,在后,在I/OI/O请求没有完成前请求没有完成前要将进程要将进程变成阻塞状态,应该请求重新调度变成阻塞状态,应该请求重
6、新调度正在执行的进程要正在执行的进程要等待等待其它进程或系统发出的其它进程或系统发出的事事件件时。如等待另一个进程通讯数据,这时操作系时。如等待另一个进程通讯数据,这时操作系统应将现运行进程挂到等待队列,并且请求重新统应将现运行进程挂到等待队列,并且请求重新调度调度正在执行的进程正在执行的进程得不到所要的系统资源得不到所要的系统资源,如要求,如要求进入临界区,但没有得到锁时,这时等锁的进程进入临界区,但没有得到锁时,这时等锁的进程应自动放弃处理机或者阻塞到等锁队列上,并且应自动放弃处理机或者阻塞到等锁队列上,并且请求重新调度请求重新调度*92.2.为了支持可剥夺的进程调度方式,在以下为了支持可
7、剥夺的进程调度方式,在以下情况发生时,因为情况发生时,因为新就绪的进程新就绪的进程可能会按可能会按某种调度原则剥夺正运行的进程,因此也某种调度原则剥夺正运行的进程,因此也应该申请进行进程调度应该申请进行进程调度:当中断处理程序当中断处理程序处理完中断处理完中断,如,如I/OI/O中断、通讯中中断、通讯中断,引起某个阻塞进程变成就绪状态时,应该请断,引起某个阻塞进程变成就绪状态时,应该请求重新调度求重新调度当进程发当进程发系统调用,引起某个事件发生系统调用,引起某个事件发生,导致等,导致等待事件的进程就绪时待事件的进程就绪时当进程当进程释放资源释放资源,走出临界区,引起其他等待该,走出临界区,引
8、起其他等待该资源进程从阻塞状态进入就绪状态时,应该请求资源进程从阻塞状态进入就绪状态时,应该请求重新调度重新调度其它任何原因其它任何原因引起有进程从其它状态变成就绪状引起有进程从其它状态变成就绪状态,如进程被中调选中时、新创建一进程时态,如进程被中调选中时、新创建一进程时*103.3.为了支持可剥夺调度,即使为了支持可剥夺调度,即使没有新就绪进没有新就绪进程程,为了让所有就绪进程轮流占用处理机,为了让所有就绪进程轮流占用处理机,可在下述情况下申请进行进程调度可在下述情况下申请进行进程调度:当时钟中断发生当时钟中断发生,时钟中断处理程序调用有关时时钟中断处理程序调用有关时间片的处理程序,发现正运
9、行进程间片的处理程序,发现正运行进程时间片到时间片到,应,应请求重新调度。以便让其他进程占用处理机请求重新调度。以便让其他进程占用处理机在按进程优先级进行进程调度的操作系统中,任在按进程优先级进行进程调度的操作系统中,任何原因引起进程的何原因引起进程的优先级发生变化优先级发生变化时,应请求重时,应请求重新调度。如进程通过系统调用自愿改变优先级时新调度。如进程通过系统调用自愿改变优先级时或者系统处理时钟中断时,根据各进程等待处理或者系统处理时钟中断时,根据各进程等待处理机的时间长短而调整进程的优先级机的时间长短而调整进程的优先级*11四.调度与切换时机当发生引起调度条件,且当发生引起调度条件,且
10、当前进程无法继续运当前进程无法继续运行下去时行下去时(如发生各种进程放弃处理机的条件)(如发生各种进程放弃处理机的条件)可以马上进行调度与切换可以马上进行调度与切换当当中断处理结束或自陷处理结束返回被中断进中断处理结束或自陷处理结束返回被中断进程的用户态程序执行前程的用户态程序执行前,若请求调度标志置上,若请求调度标志置上,即可马上进行进程调度与切换。如果操作系统即可马上进行进程调度与切换。如果操作系统支持这种情况下运行调度程序,即实现了剥夺支持这种情况下运行调度程序,即实现了剥夺方式的调度方式的调度实时系统实时系统还有其他调度与切换时机还有其他调度与切换时机*123.3.3 进程调度算法FC
11、FSFCFS:谁先到就绪队列谁先到就绪队列,将处理机分给谁将处理机分给谁时间片轮转调度法时间片轮转调度法:以先来后到的次序以先来后到的次序+时时间片轮转间片轮转优先级调度优先级调度:选优先级最高的进程占用处理选优先级最高的进程占用处理机(优先级可动态改变)机(优先级可动态改变)短进程优先短进程优先:取所需的运行时间最短的进程取所需的运行时间最短的进程(该算法能使平均等待时间最短该算法能使平均等待时间最短)多队列调度法多队列调度法:按属性将就绪进程分类按属性将就绪进程分类,不不同类进程可有不同的调度算法同类进程可有不同的调度算法多级反馈队列调度法多级反馈队列调度法:设置多条就绪队列设置多条就绪队
12、列,进程被调度执行后进程被调度执行后,在被剥夺或放弃处理机在被剥夺或放弃处理机后而在就绪时可以改变其就绪队列后而在就绪时可以改变其就绪队列*13第一级队列第一级队列(FIFO)使用处理机使用处理机完成完成使用处理机使用处理机完成完成使用处理机使用处理机完成完成抢占抢占抢占抢占抢占抢占第二级队列第二级队列(FIFO)第第n n级队列级队列(时间片轮转)(时间片轮转)多多级级反反馈馈队队列列调调度度法法153.4 作业与进程的关系作业:是用户对计算机的一次独立的使用是用户对计算机的一次独立的使用过程过程进程:是分配计算机资源的单位是分配计算机资源的单位,是用户任是用户任务运行的实体务运行的实体,作
13、业可包含多个进程作业可包含多个进程(至少至少一个一个)批处理系统作业与进程关系:作业调度程作业调度程序每选择一道作业运行时序每选择一道作业运行时,首先为该作业首先为该作业创建一个创建一个根进程根进程,该进程执行该进程执行作业控制语作业控制语言解释器程序言解释器程序,并可根据需要创建多个子,并可根据需要创建多个子进程进程.*.*16作业和进程状态转换图提交提交后备后备运行运行完成完成作业输入作业输入作业调度作业调度创建进程创建进程作业终止作业终止就绪就绪执行执行等待等待进程调度进程调度203.5 线程引入进程的特点p进程有自己独立的存储空间,互相不进程有自己独立的存储空间,互相不干扰干扰p如果要
14、进行进程间数据交换,则需要如果要进行进程间数据交换,则需要操作系统操作系统相关系统调用相关系统调用支持支持21线程的引入。随着共享内存多随着共享内存多CPUCPU计算机计算机的发展,迫切需要加速单个作业步的运行的发展,迫切需要加速单个作业步的运行速度,事实上同一个作业步的工作也是有速度,事实上同一个作业步的工作也是有可并行成份的。因为进程内程序执行的顺可并行成份的。因为进程内程序执行的顺序性,不可能序性,不可能实现进程内可并行成分的并实现进程内可并行成分的并行执行行执行。为此,线程的概念呼之欲出。在。为此,线程的概念呼之欲出。在一个进程中可以包含多个可以并发(并行)一个进程中可以包含多个可以并
15、发(并行)执行的线程。系统执行的线程。系统按进程分配所有除按进程分配所有除CPUCPU以外的系统资源以外的系统资源(如内存,外设,文件等)(如内存,外设,文件等),而程序则依赖于线程运行,系统,而程序则依赖于线程运行,系统按线程按线程分配分配CPUCPU资源资源。引入线程后,进程概念内。引入线程后,进程概念内涵改变了,进程只作为除涵改变了,进程只作为除CPUCPU以外系统资以外系统资源的分配单位,不再以进程为单位占用源的分配单位,不再以进程为单位占用CPUCPU 22线程线程线程线程线程线程进程进程1 1进程进程2 2进程进程3 3进程与线程关系图23主要内容进程控制与调度进程执行进程执行进程调度进程调度调度算法调度算法作业与进程关系线程的引入