操作系统进阶-2 进程管理1_第1页
操作系统进阶-2 进程管理1_第2页
操作系统进阶-2 进程管理1_第3页
操作系统进阶-2 进程管理1_第4页
操作系统进阶-2 进程管理1_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-5-3山东农业大学计算机系山东农业大学计算机系1第第2 2章章 进程管理进程管理山东农业大学计算机系山东农业大学计算机系2022-5-3山东农业大学计算机系山东农业大学计算机系2知识体系框架图知识体系框架图2022-5-3山东农业大学计算机系山东农业大学计算机系3主要知识点主要知识点1.1. 进程与线程进程与线程2.2. 处理机调度处理机调度3.3. 进程同步与互斥进程同步与互斥4.4. 死死 锁锁进程概念进程概念进程的状态与转换进程的状态与转换 进程控制进程控制进程组织进程组织进程通信进程通信线程概念与多线程模型线程概念与多线程模型调度的基本概念调度的基本概念调度时机、切换与过程调

2、度时机、切换与过程 调度的基本准则调度的基本准则调度方式调度方式典型调度算法典型调度算法 进程同步的概念进程同步的概念实现临界区互斥的基本方法实现临界区互斥的基本方法 信号量信号量经典同步算法经典同步算法死锁概念死锁概念死锁处理策略死锁处理策略 死锁预防死锁预防死锁避免死锁避免死锁检测与解除死锁检测与解除2022-5-3山东农业大学计算机系山东农业大学计算机系42.1 2.1 进程与线程进程与线程在多道程序设计的环境下,为了描在多道程序设计的环境下,为了描述程序在计算机系统内的执行情况,述程序在计算机系统内的执行情况,必须引人新的概念必须引人新的概念进程进程。1.1.进程的定义:进程的定义:可

3、并发执行的程序在一可并发执行的程序在一个数据集合上的一次执行过程个数据集合上的一次执行过程, ,是系统进行是系统进行资源分配和调度的一个独立单位。资源分配和调度的一个独立单位。2022-5-3山东农业大学计算机系山东农业大学计算机系5进程的组成进程的组成操作系统表示、管理进程的操作系统表示、管理进程的PCBPCB表以及:表以及: 执行的执行的程序程序及处理的及处理的数据数据; 一片存放程序和数据的空间一片存放程序和数据的空间; 一个栈区一个栈区(一个用户栈一个用户栈,一个核心栈一个核心栈); 进程使用的其它系统资源。进程使用的其它系统资源。2022-5-3山东农业大学计算机系山东农业大学计算机

4、系6练习题练习题 “程序状态字寄存器内容程序状态字寄存器内容”属于进程属于进程控制块的控制块的( )A、标识信息、标识信息 B、控制信息、控制信息C、现场信息、现场信息 D、调度信息、调度信息C程序和数据的地址程序和数据的地址进程同步和通信机制进程同步和通信机制资源清单资源清单链接指针链接指针进程优先级进程优先级进程调度所需其他信进程调度所需其他信息息事件事件进程状态进程状态2022-5-3山东农业大学计算机系山东农业大学计算机系7l进程上下文(进程上下文(process context)是进程执行活动全过程的静态描述。是进程执行活动全过程的静态描述。进程的物理实体与支持进程运行的物理环境统称

5、为进程的物理实体与支持进程运行的物理环境统称为进程上下文进程上下文lPCB+程序程序l系统环境:地址空间,系统栈,打开文件表,系统环境:地址空间,系统栈,打开文件表,l上下文切换(上下文切换(context switch)由一个进程的上下文转到另外一个进程的上下文由一个进程的上下文转到另外一个进程的上下文l系统开销(系统开销(system overhead)运行操作系统程序完成系统管理工作所花费的时间运行操作系统程序完成系统管理工作所花费的时间和空间和空间进程上下文进程上下文2022-5-3山东农业大学计算机系山东农业大学计算机系8进程上下文进程上下文2022-5-3山东农业大学计算机系山东农

6、业大学计算机系9核心态和用户态核心态和用户态用户态时不可直接访问受保护的用户态时不可直接访问受保护的OS代码;代码;核心态时可执行全部核心态时可执行全部OS代码代码.(处理机运行时的两种状态)(处理机运行时的两种状态)2022-5-3山东农业大学计算机系山东农业大学计算机系10 进程核心栈:进程核心栈:处理机状态信息保存区。处理机状态信息保存区。保存进程核心态运行现场信息:保存进程核心态运行现场信息: 通用寄存器通用寄存器。这是指用户程序可以使用的数。这是指用户程序可以使用的数据、地址寄存器。据、地址寄存器。 控制和状态寄存器控制和状态寄存器。如程序计数器。如程序计数器(PC);处;处理机状态

7、字理机状态字(PS) 用户栈:用户栈:保存在用户态执行时函数调保存在用户态执行时函数调用的参数、局部变量和其它数据结构。用的参数、局部变量和其它数据结构。用户栈与核心栈用户栈与核心栈2022-5-3山东农业大学计算机系山东农业大学计算机系11用户栈与核心栈用户栈与核心栈 一个进程的核心栈和用户栈是分开的;一个进程的核心栈和用户栈是分开的; 当一个进程在用户态下执行时,它的核当一个进程在用户态下执行时,它的核心栈为空。心栈为空。 进程执行过程:进程执行过程:用户态用户态 系统调用系统调用 中断中断 核心态核心态 当进程转换至核心态时,开始使用核心当进程转换至核心态时,开始使用核心栈。栈。2022

8、-5-3山东农业大学计算机系山东农业大学计算机系12执执 行行阻阻 塞塞就就 绪绪时间片完时间片完 I/OI/O请求请求 进程调度进程调度 I/OI/O完成完成进程的三种基本状态以及各状态之间的转换关系进程的三种基本状态以及各状态之间的转换关系进程的基本状态与转换进程的基本状态与转换2022-5-3山东农业大学计算机系山东农业大学计算机系13 任一进程任一时刻有任一进程任一时刻有( )A. 一种状态一种状态 B两种状态两种状态 C. 三种状态三种状态 D四种状态四种状态 A练习题练习题2022-5-3山东农业大学计算机系山东农业大学计算机系14A. 从运行状态到阻塞状态;从运行状态到阻塞状态;

9、B. 从运行状态到就绪状态;从运行状态到就绪状态;C. 从就绪状态到运行状态;从就绪状态到运行状态;D. 从阻塞状态到就绪状态。从阻塞状态到就绪状态。A练习题练习题进程自身决定()。进程自身决定()。2022-5-3山东农业大学计算机系山东农业大学计算机系15A. 进程获得进程获得CPU运行是通过调度得到的;运行是通过调度得到的;B. 优先级是进程调度的重要依据,一旦确定就不能优先级是进程调度的重要依据,一旦确定就不能改变;改变;C. 在单在单CPU的系统中,任意时刻都有一个进程处于的系统中,任意时刻都有一个进程处于运行状态;运行状态;D. 进程申请进程申请CPU得不到满足时,其状态变为阻塞。

10、得不到满足时,其状态变为阻塞。A练习题练习题以下关于进程的描述中,正确的是:以下关于进程的描述中,正确的是:2022-5-3山东农业大学计算机系山东农业大学计算机系16答:答:进程运行完成而终止。进程运行完成而终止。进程因等待而进入阻塞状态。进程因等待而进入阻塞状态。发现有比现行进程更高优先权进程。发现有比现行进程更高优先权进程。进程用完了规定的时间片。进程用完了规定的时间片。系统出现异常强行进入进程调度系统出现异常强行进入进程调度练习题练习题进程调度是内核的进程控制原语之一,进程调度是内核的进程控制原语之一,该原语在什么情况下被启动?该原语在什么情况下被启动?2022-5-3山东农业大学计算

11、机系山东农业大学计算机系1720102010年考研试题之一年考研试题之一26、下列选项中,降低进程优先级的合、下列选项中,降低进程优先级的合理时机是()。理时机是()。A、进程的时间片用完、进程的时间片用完B、进程刚完成、进程刚完成I/O,进入就绪队列,进入就绪队列C、进程长期处于就绪队列中、进程长期处于就绪队列中D、进程从就绪状态转为运行态、进程从就绪状态转为运行态2022-5-3山东农业大学计算机系山东农业大学计算机系18例、某系统的进程状态变迁如图例、某系统的进程状态变迁如图所示(设该系统的进程调度方式所示(设该系统的进程调度方式为可剥夺方式):为可剥夺方式):执执 行行因因I/OI/O

12、阻塞阻塞低优先就绪低优先就绪首次选择首次选择100ms 高优先就绪高优先就绪其次选择其次选择500ms 21345创创 建建2022-5-3山东农业大学计算机系山东农业大学计算机系19 说明进程发生变迁说明进程发生变迁1、3、5的原因;的原因; 当发生一个变迁时可能引起另一个变迁的当发生一个变迁时可能引起另一个变迁的发生,则这两个变迁称为因果变迁。下述发生,则这两个变迁称为因果变迁。下述因果变迁是否会发生,如果有可能的话,因果变迁是否会发生,如果有可能的话,会在什么情况下发生?会在什么情况下发生? (a) 35 (b) 32 (c) 21 (d) 41 (e) 45 根据状态变迁图说明该系统的

13、调度策略和根据状态变迁图说明该系统的调度策略和调度效果。调度效果。请回答请回答2022-5-3山东农业大学计算机系山东农业大学计算机系20分析分析 本题主要考查对进程状态变迁的理解。本题主要考查对进程状态变迁的理解。 图中将传统的图中将传统的3种进程状态改成了种进程状态改成了4种,种,其实就是将就绪按优先级分成了两级。其实就是将就绪按优先级分成了两级。 但对于进程而言,其最基本的状态还是但对于进程而言,其最基本的状态还是3个:运行、阻塞、就绪,只是在调度时,个:运行、阻塞、就绪,只是在调度时,引入了优先级抢占方式。引入了优先级抢占方式。2022-5-3山东农业大学计算机系山东农业大学计算机系2

14、1解答解答v系统中当前运行着的进程因中止、结束或等待某系统中当前运行着的进程因中止、结束或等待某个个I/O事件而退出运行,并且此时高优先就绪队列事件而退出运行,并且此时高优先就绪队列中没有等待进程,发生中没有等待进程,发生变迁变迁1;v当运行着的进程发出当运行着的进程发出I/O请求,需要等待请求,需要等待I/O事件事件完成才能继续进行,发生完成才能继续进行,发生变迁变迁3;v当有高优先级进程进入就绪队列,并且运行着的当有高优先级进程进入就绪队列,并且运行着的进程是低优先级进程时,高优先级进程会抢占进程是低优先级进程时,高优先级进程会抢占CPU,发生,发生变迁变迁5. 变迁变迁1、3、5的原因:

15、的原因:2022-5-3山东农业大学计算机系山东农业大学计算机系22 下述因果变迁的发生及情况:下述因果变迁的发生及情况:(a) 35 是因果变迁;是因果变迁;(b) 32 不是;不是;(c) 21 是;是;(d) 41 不是;不是;(e) 45 是。是。此系统采用根据进程优先级分别设置高优先就绪队列和此系统采用根据进程优先级分别设置高优先就绪队列和低优先就绪队列:低优先就绪队列:高优先进程运行高优先进程运行100ms 后就降为低优先就绪队列,以使后就降为低优先就绪队列,以使短进程优先完成;短进程优先完成;对低优先就绪队列中的进程采用时间片轮转法(时间片对低优先就绪队列中的进程采用时间片轮转法

16、(时间片程度为程度为500ms),确保每个进程都有运行机会;),确保每个进程都有运行机会;同时,对于进行了同时,对于进行了I/O操作的进程赋予一个高优先级,保操作的进程赋予一个高优先级,保证对外界事件可以尽快响应。证对外界事件可以尽快响应。2022-5-3山东农业大学计算机系山东农业大学计算机系23不同调度算不同调度算法的进程状法的进程状态转换图态转换图2022-5-3山东农业大学计算机系山东农业大学计算机系24例题:某系统采用可抢占处理机的静例题:某系统采用可抢占处理机的静态优先数调度算法,请问何时会发生态优先数调度算法,请问何时会发生抢占处理机的现象抢占处理机的现象? ? 答:当一个新创建

17、的进程或一个被答:当一个新创建的进程或一个被唤醒进程的优先数比正在运行进程唤醒进程的优先数比正在运行进程的优先数高时,可能发生抢占处理的优先数高时,可能发生抢占处理机现象。机现象。2022-5-3山东农业大学计算机系山东农业大学计算机系25进程的状态与转换进程的状态与转换NewNewRunningRunningExitExitReadyReadyBlockedBlocked被调度被调度时间片完时间片完事件发生事件发生等待事件等待事件结束结束进入就绪队列进入就绪队列2022-5-3山东农业大学计算机系山东农业大学计算机系26练习题练习题2022-5-3山东农业大学计算机系山东农业大学计算机系27

18、练习题 判断:进程是基于多道程序技术而提出判断:进程是基于多道程序技术而提出来的。其最基本的特性是动态性和并发来的。其最基本的特性是动态性和并发性;进程的执行也即在各种基本状态之性;进程的执行也即在各种基本状态之间多次转换的过程。间多次转换的过程。错误。进程在新、死状态上只经过一次!错误。进程在新、死状态上只经过一次!2022-5-3山东农业大学计算机系山东农业大学计算机系281.1.活动就绪活动就绪静止就绪静止就绪2.2.活动阻塞活动阻塞静止阻塞静止阻塞3.3.静止就绪静止就绪活动就绪活动就绪4.4.静止阻塞静止阻塞活动阻塞活动阻塞引入挂起状态引入挂起状态2022-5-3山东农业大学计算机系

19、山东农业大学计算机系29具有挂起操作的进程状态转换图具有挂起操作的进程状态转换图创建创建阻塞阻塞唤醒唤醒挂挂起起激活激活活跃活跃阻塞阻塞运行运行静止静止阻塞阻塞静止静止就绪就绪活跃活跃就绪就绪时间片用完时间片用完调调度度挂挂起起唤醒唤醒激活激活活跃活跃静止静止挂挂起起2022-5-3山东农业大学计算机系山东农业大学计算机系30试分析中断与进程状态转换试分析中断与进程状态转换之间的关系之间的关系答:答: 进程状态转换是通过原语实现的、由内核控制的;进程状态转换是通过原语实现的、由内核控制的; 如果一个进程的状态发生了改变,则在新旧状态之如果一个进程的状态发生了改变,则在新旧状态之间一定发生了处理

20、机状态由目态到管态的转换;间一定发生了处理机状态由目态到管态的转换; 而中断是处理机状态由目态转换到管态的必要条件;而中断是处理机状态由目态转换到管态的必要条件; 所以所以中断也是进程状态转换的必要条件中断也是进程状态转换的必要条件。2022-5-3山东农业大学计算机系山东农业大学计算机系31进程控制进程控制原语原语(primitive):由若干条指令构成由若干条指令构成的的“原子操作原子操作(atomic operation)”过程,作为一个整体而不可分割过程,作为一个整体而不可分割要么全都完成,要么全都不做。要么全都完成,要么全都不做。内核控制下,由原语实现内核控制下,由原语实现!原语是一

21、种特殊的系统调用。原语是一种特殊的系统调用。2022-5-3山东农业大学计算机系山东农业大学计算机系32B练习题练习题操作系统中有一组常称为特殊系统调用的操作系统中有一组常称为特殊系统调用的程序,它不能被系统中断,在操作系统中程序,它不能被系统中断,在操作系统中称为(称为( )。)。 A.初始化程序初始化程序 B. 原语原语 C.子程序子程序 D. 控制模块控制模块2022-5-3山东农业大学计算机系山东农业大学计算机系33 创建过程:创建过程:(1) (1) 申请空白申请空白PCBPCB(2) (2) 为新进程分配资源为新进程分配资源(3) (3) 初始化初始化PCBPCB(4) (4) 将

22、新进程插入就绪队列将新进程插入就绪队列1.1.操作系统发现要求创建新进程的事件操作系统发现要求创建新进程的事件后,调用进程创建原语创建新进程。后,调用进程创建原语创建新进程。进程的创建进程的创建2022-5-3山东农业大学计算机系山东农业大学计算机系341 用户登录:在分时系统中,用户在终端键入登录命令后,若 是合法用户,系统建立一个进程,并插入就绪队列。2 作业调度:批处理系统中,作业调度程序调度到某个作业以 后,就把这个作业装入内存,并分配必要的资源, 创建进程,插入就绪队列。3 提供服务:运行中的用户向系统提出请求后,系统专门建立一 个进程为用户服务。(打印请求)4 应用请求:应用进程的

23、需要,由它自己创建一个新进程,使新 进程以并发运行方式完成特定任务。(输入数据并 将处理结果输出到表格上)由操作系统核心(系统程序模块)创建由操作系统核心(系统程序模块)创建由父进程创建由父进程创建引起创建进程的事件引起创建进程的事件2022-5-3山东农业大学计算机系山东农业大学计算机系3520102010年考研试题之一年考研试题之一24、下列选项中,导制创进新进程的操作是()下列选项中,导制创进新进程的操作是()I 用户登陆成功用户登陆成功 II 设备分配设备分配 III 启动程序执行启动程序执行A、仅、仅I和和IIB、仅、仅II和和IIIC、仅、仅I和和IIID、I、II、III2022

24、-5-3山东农业大学计算机系山东农业大学计算机系36进程的终止进程的终止 引起进程终止的事件引起进程终止的事件用户退出用户退出运行完毕运行完毕因出错而停止因出错而停止用户请求用户请求2022-5-3山东农业大学计算机系山东农业大学计算机系37 父进程终止,子进程可以不必父进程终止,子进程可以不必随之撤销,对吗?随之撤销,对吗?错错!练习题练习题6种种 进程控制原语主要有哪几种?进程控制原语主要有哪几种?2022-5-3山东农业大学计算机系山东农业大学计算机系38练习题练习题 填空:为了实现进程由等待状态转换成填空:为了实现进程由等待状态转换成就绪状态的状态变化,操作系统应提供就绪状态的状态变化

25、,操作系统应提供_原语。原语。唤醒原语唤醒原语2022-5-3山东农业大学计算机系山东农业大学计算机系39进程的特征进程的特征 动态性动态性 并发性并发性 结构性结构性 独立性独立性 异步性异步性程序段程序段数据段数据段进程控制块进程控制块PCBPCB独立运行独立运行独立分配资源独立分配资源独立接受调度的基本单位独立接受调度的基本单位最基本的特征最基本的特征2022-5-3山东农业大学计算机系山东农业大学计算机系40进程和程序进程和程序 进程是动态的,程序是进程是动态的,程序是静态的。静态的。 进程是暂时的,程序可进程是暂时的,程序可长久保存。长久保存。 进程和程序的组成不同。进程和程序的组成

26、不同。 进程与程序的对应关系。进程与程序的对应关系。 一个程序可以对应多个进程,一个程序可以对应多个进程,一个进程也可以对应多个程序。一个进程也可以对应多个程序。2022-5-3山东农业大学计算机系山东农业大学计算机系41A练习题练习题进程与程序之间有密切联系,但又是不同进程与程序之间有密切联系,但又是不同的概念。二者的一个本质区别是(的概念。二者的一个本质区别是( )。)。A程序是静态概念,进程是动态概念程序是静态概念,进程是动态概念 B程序是动态概念,进程是静态概念程序是动态概念,进程是静态概念C程序保存在文件中,进程存放在内存中程序保存在文件中,进程存放在内存中D程序顺序执行,进程并发执

27、行程序顺序执行,进程并发执行2022-5-3山东农业大学计算机系山东农业大学计算机系42进程切换与进程切换与CPUCPU模式切换模式切换 进程切换进程切换是让处于运行态的进程中断运行,是让处于运行态的进程中断运行,让出处理器,这时要做一次进程上下文切让出处理器,这时要做一次进程上下文切换、即保存老进程状态而装入被保护了的换、即保存老进程状态而装入被保护了的新进程的状态,以便新进程运行。新进程的状态,以便新进程运行。模式切换是模式切换是当系统调用(中断)发生时,当系统调用(中断)发生时,暂时中断正在执行的用户进程,把进程从暂时中断正在执行的用户进程,把进程从用户状态切换到内核状态,去执行操作系用

28、户状态切换到内核状态,去执行操作系统例行程序以获得服务。统例行程序以获得服务。2022-5-3山东农业大学计算机系山东农业大学计算机系43模式切换:模式切换:进程在用户态运行进程在用户态运行用户程序用户程序,在自陷、系统调用和中断时转换到核心在自陷、系统调用和中断时转换到核心态运行操作系统态运行操作系统内核程序内核程序.进程切换:进程切换:指正在运行的进程因为自身指正在运行的进程因为自身等待事件或有更迫切需要运行的进程就等待事件或有更迫切需要运行的进程就绪而放弃处理机,处理机转去运行其他绪而放弃处理机,处理机转去运行其他进程进程 .模式切换与进程切换模式切换与进程切换2022-5-3山东农业大

29、学计算机系山东农业大学计算机系44模式切换与进程切换的区别模式切换与进程切换的区别 模式切换模式切换 不引起进程状态变化不引起进程状态变化 也不一定引起进程的切换也不一定引起进程的切换 从核心态返回时可以通过逆向设置返回用户态继续从核心态返回时可以通过逆向设置返回用户态继续执行被中断的进程执行被中断的进程 进程切换进程切换 进程调度的本质进程调度的本质 在核心态下发生在核心态下发生 引起进程状态的变迁引起进程状态的变迁 进程上下文的切换进程上下文的切换2022-5-3山东农业大学计算机系山东农业大学计算机系45例题:例题:若在若在T1T1时刻用户进程时刻用户进程P1P1运行,运行,T2T2时刻

30、用户进程时刻用户进程P2P2运行,且运行,且P1P2 ,P1P2 ,则在则在时刻时刻T1T1和时刻和时刻T2T2期间之内一定发生过中期间之内一定发生过中断。这种说法对吗断。这种说法对吗? ? 为什么为什么? ? 答:正确。答:正确。如果在时刻如果在时刻 T1进程进程P1在运行,在时刻在运行,在时刻T2进程进程P2在运行,在运行,且且P1P2,则说明在,则说明在T1和和T2之间发生了之间发生了进程切换进程切换。即在即在T1和和T2之间执行了处理机之间执行了处理机调度程序调度程序,而处理机调度,而处理机调度程序是操作系统低层中的一个模块,运行于管态,说明在程序是操作系统低层中的一个模块,运行于管态

31、,说明在T1与与T2时刻之间处理机状态曾时刻之间处理机状态曾由目态转换到管态由目态转换到管态。由于中断是系统由目态转换为管态的必要条件,所以在时由于中断是系统由目态转换为管态的必要条件,所以在时刻刻T1与时刻与时刻T2之间一定发生过中断,也就是说,中断是进之间一定发生过中断,也就是说,中断是进程切换的必要条件,程切换的必要条件,然而中断不是进程切换的充分条件。然而中断不是进程切换的充分条件。2022-5-3山东农业大学计算机系山东农业大学计算机系46上题续上题续 例如例如: 一个进程执行一个系统调用命令将一个进程执行一个系统调用命令将一个消息发给另外一个进程,该命令的一个消息发给另外一个进程,

32、该命令的执行将通过中断进入操作系统,操作系执行将通过中断进入操作系统,操作系统处理完消息的发送工作后可能返回原统处理完消息的发送工作后可能返回原调用进程,此时中断未导致进程切换;调用进程,此时中断未导致进程切换;也可能选择一个新的进程,此时中断导也可能选择一个新的进程,此时中断导致了进程切换。致了进程切换。2022-5-3山东农业大学计算机系山东农业大学计算机系47UNIXUNIX中进程上下文切换和模式切换中进程上下文切换和模式切换系统调系统调用或中用或中断断( (隐隐含模式含模式切换切换) )模式切换模式切换用户态用户态运行运行等待等待状态状态就绪就绪状态状态发生事件发生事件唤醒唤醒调度进程

33、调度进程核心态核心态运行运行中断、中断、中断返回中断返回时间片到时间片到2022-5-3山东农业大学计算机系山东农业大学计算机系48作业(作业(Job)Job) 作业概念作业概念 用户要求计算机系统为其完成的计算任务集合。用户要求计算机系统为其完成的计算任务集合。 作业步(作业步(job step) 作业处理过程中一个相对独立的步骤作业处理过程中一个相对独立的步骤 一般一个作业步可由一个进程完成一般一个作业步可由一个进程完成 某些作业步之间可以并行某些作业步之间可以并行 作业分类作业分类 批处理作业批处理作业 交互式作业交互式作业2022-5-3山东农业大学计算机系山东农业大学计算机系49JC

34、LJCL与与JCBJCB 作业控制语言作业控制语言(JCL):(JCL):是对用户作业的进行组织和管理的各种控制命令的集合.作业控制说明书作业控制说明书是用户用于描述批处理作业处理过程控制意图的一种特殊程序, 作业控制说明书主要包括内容: 作业的基本描述、作业控制描述和资源要求描述作业控制块作业控制块是批处理作业存在的标志,其中保存了系统对于作业进行管理所需要的全部信息,它们被保存于磁盘区域中2022-5-3山东农业大学计算机系山东农业大学计算机系50作业与进程的关系作业与进程的关系 作业作业: :是用户对计算机的一次独立的使用是用户对计算机的一次独立的使用过程过程 进程进程: :是分配计算机

35、资源的单位是分配计算机资源的单位, ,是用户任是用户任务运行的实体务运行的实体, ,作业可包含多个进程作业可包含多个进程( (至少至少一个一个) )2022-5-3山东农业大学计算机系山东农业大学计算机系51批处理系统作业与进程关系批处理系统作业与进程关系 作业调度程序作业调度程序每选择一道每选择一道作业作业运行时运行时,首首先为该作业创建一个先为该作业创建一个根进程根进程,该进程执行该进程执行作业控制语言解释器程序,并可根据需作业控制语言解释器程序,并可根据需要创建多个子进程要创建多个子进程.2022-5-3山东农业大学计算机系山东农业大学计算机系52作业和进程状态转换图作业和进程状态转换图

36、提交提交后备后备运行运行完成完成作业输入作业输入作业调度作业调度创建进程创建进程作业终止作业终止就绪就绪执行执行等待等待进程调度进程调度2022-5-3山东农业大学计算机系山东农业大学计算机系53 把用户的一次上机过程看成是一个把用户的一次上机过程看成是一个交互作交互作业业( (无论从内部表示及外部特征无论从内部表示及外部特征, ,它都有别它都有别于批作业于批作业) ); 系统为每个终端设备生成一个系统为每个终端设备生成一个进程进程,该进,该进程运行程运行终端命令解释器终端命令解释器。该进程根据需要。该进程根据需要还可以创建多个子进程还可以创建多个子进程分时系统作业与进程之关系分时系统作业与进

37、程之关系2022-5-3山东农业大学计算机系山东农业大学计算机系54作业、进程、线程作业、进程、线程 作业与进程作业与进程 作业进入内存后变为进程作业进入内存后变为进程 一个作业通常与多个进程相对应一个作业通常与多个进程相对应 进程与线程进程与线程 不支持多线程的系统,可视为单线程进程不支持多线程的系统,可视为单线程进程 一个进程一般包含多个线程,至少包含一个一个进程一般包含多个线程,至少包含一个线程线程2022-5-3山东农业大学计算机系山东农业大学计算机系55A练习题练习题进程与程序之间有密切联系,但又是不同进程与程序之间有密切联系,但又是不同的概念。二者的一个本质区别是(的概念。二者的一

38、个本质区别是( )。)。A程序是静态概念,进程是动态概念程序是静态概念,进程是动态概念 B程序是动态概念,进程是静态概念程序是动态概念,进程是静态概念C程序保存在文件中,进程存放在内存中程序保存在文件中,进程存放在内存中D程序顺序执行,进程并发执行程序顺序执行,进程并发执行2022-5-3山东农业大学计算机系山东农业大学计算机系56C练习题练习题用户在一次计算过程中,或者一次事物处用户在一次计算过程中,或者一次事物处理中,要求计算机完成所做的工作的集合,理中,要求计算机完成所做的工作的集合,这是指(这是指( )。)。A.进程进程 B.程序程序 C.作业作业 D.系统调用系统调用2022-5-3

39、山东农业大学计算机系山东农业大学计算机系57错!错!作业一共有四种状态,其中的运行作业一共有四种状态,其中的运行状态是指被调度进入内存后的状态,此状态是指被调度进入内存后的状态,此时被称作进程,因此,不管进程处于什时被称作进程,因此,不管进程处于什么状态,都是作业的运行状态。么状态,都是作业的运行状态。判断题判断题当作业对应的进程阻塞时,该作业处于等当作业对应的进程阻塞时,该作业处于等待状态。待状态。2022-5-3山东农业大学计算机系山东农业大学计算机系58练习题练习题进程的基本状态有执行、进程的基本状态有执行、 和和 。批处理作业的基本状态有运行、批处理作业的基本状态有运行、 和和。其中,

40、。其中,运行运行 状态包含了进程的等待状状态包含了进程的等待状态。态。作业调度程序实现了作业从作业调度程序实现了作业从 状态到执行状态到执行状态的转换,而进程调度状态的转换,而进程调度 程序实现了进程程序实现了进程从从状态到执行状态的转换。状态到执行状态的转换。处于处于状态的进程是不会获得状态的进程是不会获得CPU的。的。 2022-5-3山东农业大学计算机系山东农业大学计算机系59进程通信进程通信进程通信进程通信低级通信低级通信高级通信高级通信进程间竞进程间竞争资源争资源进程间相进程间相互合作互合作共享存储共享存储器系统器系统消息传消息传递系统递系统管道管道通信通信进程互斥进程互斥进程同步进

41、程同步信号量机制信号量机制信号量信号量集机制集机制记录型信记录型信号量机制号量机制整型信号整型信号量机制量机制管程机制管程机制基于基于共享共享数据数据结构结构方式方式基于基于共享共享存储存储区方区方式式直接直接通信通信方式方式间接通间接通信方式信方式-信箱信箱通信通信2022-5-3山东农业大学计算机系山东农业大学计算机系60进程的通信进程的通信低级通信进程同步低级通信进程同步简单的信号交换(如:锁、信号简单的信号交换(如:锁、信号量等,主要交换的是控制信号)量等,主要交换的是控制信号)高级通信进程通信高级通信进程通信高效、大量数据传递高效、大量数据传递2022-5-3山东农业大学计算机系山东

42、农业大学计算机系61进程通信的类型进程通信的类型共享存储器系统共享存储器系统消息传递系统消息传递系统管道通信系统管道通信系统2022-5-3山东农业大学计算机系山东农业大学计算机系62 在共享存储器系统中,相互通信的进程在共享存储器系统中,相互通信的进程共享某些共享某些存储区存储区,进程之间能够通过这,进程之间能够通过这些空间进行通信。些空间进行通信。共享存储器系统共享存储器系统向系统申请共享存储区中的一个分区向系统申请共享存储区中的一个分区指定该分区的关键字指定该分区的关键字如果已经给其他进程分配了这样的存储区,如果已经给其他进程分配了这样的存储区, 将使用分区的描述符返回给申请者将使用分区

43、的描述符返回给申请者申请者将申请到的共享分区挂到本进程上申请者将申请到的共享分区挂到本进程上2022-5-3山东农业大学计算机系山东农业大学计算机系63 消息传递系统:消息传递系统:进程间的数据交换,以格进程间的数据交换,以格式化的消息为单位。式化的消息为单位。消息传递系统消息传递系统计算机网络:计算机网络:消息称为报文。程序员直消息称为报文。程序员直接利用系统提供的一组通信命令接利用系统提供的一组通信命令( (原语原语) )进行通信。进行通信。直接通信方式(消息缓冲机制)直接通信方式(消息缓冲机制)间接通信方式(信箱通信方式)间接通信方式(信箱通信方式)2022-5-3山东农业大学计算机系山

44、东农业大学计算机系64所谓所谓“管道管道”,是指用于连接,是指用于连接一个读进程和一个写进程以实一个读进程和一个写进程以实现他们之间通信的一个现他们之间通信的一个共享文共享文件,又名件,又名pipe文件。文件。管道通信管道通信2022-5-3山东农业大学计算机系山东农业大学计算机系65试比较进程间的低级通信工试比较进程间的低级通信工具与高级通信工具具与高级通信工具 用户用低级通信工具实现进程通信很用户用低级通信工具实现进程通信很不方便,因为其效率低,通信对用户不方便,因为其效率低,通信对用户不透明,所有的操作都必须由程序员不透明,所有的操作都必须由程序员来实现;来实现; 高级通信工具则可弥补这

45、些缺陷,用高级通信工具则可弥补这些缺陷,用户可直接利用操作系统所提供的一组户可直接利用操作系统所提供的一组通信命令,高效地传送大量的数据。通信命令,高效地传送大量的数据。2022-5-3山东农业大学计算机系山东农业大学计算机系66在单处理机环境下,进程间在单处理机环境下,进程间有哪几种通信方式有哪几种通信方式? ? 共享存储器系统通信方式共享存储器系统通信方式; 消息传递系统通信方式消息传递系统通信方式; 管道通信方式管道通信方式. 2022-5-3山东农业大学计算机系山东农业大学计算机系67B练习题练习题在进程通信中,使用信箱方式交换信息的在进程通信中,使用信箱方式交换信息的是(是( )。)

46、。A低级进程通信低级进程通信 B高级进程通信高级进程通信 C共享内存方式共享内存方式 D管道文件方式管道文件方式2022-5-3山东农业大学计算机系山东农业大学计算机系68C练习题练习题在间接通信时,用在间接通信时,用Send(N,M)原语发送信原语发送信件,其中件,其中N表示:表示:A 发送信件的进程名发送信件的进程名B 接收信件的进程名接收信件的进程名C 信箱名信箱名D 信件内容信件内容2022-5-3山东农业大学计算机系山东农业大学计算机系69B练习题练习题用信箱实现进程间通信时应该用信箱实现进程间通信时应该( ) A.由发送信件者设置信箱由发送信件者设置信箱 B.由接受信件者设置信箱由

47、接受信件者设置信箱 C.当信箱满时让接收者等信箱当信箱满时让接收者等信箱 D. 在在send原语中指出发送者名原语中指出发送者名2022-5-3山东农业大学计算机系山东农业大学计算机系70消息缓冲通信机制有什么好处?消息缓冲通信机制有什么好处?试述消息缓冲通信的过程。试述消息缓冲通信的过程。 消息缓冲通信机制不仅能较好地解决进程间的同步互斥问消息缓冲通信机制不仅能较好地解决进程间的同步互斥问题,还能交换大量信息,是理想的进程通信工具;题,还能交换大量信息,是理想的进程通信工具; 操作系统隐藏了进程通信的实现细节,即通信过程对用户操作系统隐藏了进程通信的实现细节,即通信过程对用户是透明的,简化了

48、通信程序编制上的复杂性。是透明的,简化了通信程序编制上的复杂性。 实现过程:实现过程: 当某个进程需要向另一个进程发送消息时,便向系统申请当某个进程需要向另一个进程发送消息时,便向系统申请一个消息缓冲区,并把要发送的数据送到消息缓冲区,然一个消息缓冲区,并把要发送的数据送到消息缓冲区,然后把该消息缓冲区插入到接受进程的消息队列中;后把该消息缓冲区插入到接受进程的消息队列中; 接受进程在接受消息时,只要从本进程的消息队列中摘下接受进程在接受消息时,只要从本进程的消息队列中摘下该消息缓冲区,即可从中取下所需的信息,然后把该消息该消息缓冲区,即可从中取下所需的信息,然后把该消息缓冲区交还给系统。缓冲

49、区交还给系统。 2022-5-3山东农业大学计算机系山东农业大学计算机系71试比较消息队列与管道通信试比较消息队列与管道通信机制机制 所谓管道,是指用于连接一个读进程和一所谓管道,是指用于连接一个读进程和一个写进程、以实现它们之间通信的共享文个写进程、以实现它们之间通信的共享文件,又称件,又称pipe文件。管道通信是属于共享文件。管道通信是属于共享存储器系统的。存储器系统的。 消息队列通信机制属于消息传递系统通信消息队列通信机制属于消息传递系统通信机制,存在通信链路,有消息的格式,有机制,存在通信链路,有消息的格式,有若干缓冲队列,采用独特的发送原语和接若干缓冲队列,采用独特的发送原语和接收原

50、语收原语.。2022-5-3山东农业大学计算机系山东农业大学计算机系72引入引入进程进程 的目的:的目的: 使多个程序能并发执行,提高使多个程序能并发执行,提高资源利用率资源利用率和系和系统统吞吐量吞吐量。引入引入线程线程 的目的:的目的: 减少程序在并发执行时所付出的减少程序在并发执行时所付出的时空开销时空开销,使,使操作系统具有更好的并发性。操作系统具有更好的并发性。线程的引入线程的引入2022-5-3山东农业大学计算机系山东农业大学计算机系73线程的概念线程的概念 线程:进程中一个相对独立的执行流。线程:进程中一个相对独立的执行流。 进程与线程进程与线程 进程是资源分配单位进程是资源分配

51、单位 线程是线程是CPU执行单位执行单位 多线程优点多线程优点 切换速度快(地址空间不变)切换速度快(地址空间不变) 系统开销小系统开销小 通讯容易(共享数据空间)通讯容易(共享数据空间)2022-5-3山东农业大学计算机系山东农业大学计算机系74资源拥有者资源拥有者执行序列执行序列进程控制块进 程用户地址空间用户堆栈系统堆栈进程的抽象模型进程的抽象模型2022-5-3山东农业大学计算机系山东农业大学计算机系75管理和执行相分离的进程模型管理和执行相分离的进程模型 用户堆栈系统堆栈执行控制进 程进程控制块用户地址空间共 享用户堆栈系统堆栈执行控制执行序列执行序列资源拥有者资源拥有者执行序列执行

52、序列2022-5-3山东农业大学计算机系山东农业大学计算机系76进进 程程地址空间地址空间线线程程1 1共共 享享线线 程程空空 间间线线程程2 2线线程程n n线程的内存布局线程的内存布局2022-5-3山东农业大学计算机系山东农业大学计算机系77内核支持线程和用户级线程 内核支持线程,内核支持线程,它们是依赖于内核的,它们是依赖于内核的,即无论是用户进程中的线程,还是系统即无论是用户进程中的线程,还是系统进程中的线程,它们的创建、撤消、切进程中的线程,它们的创建、撤消、切换都由内核实现。换都由内核实现。 用户级线程,用户级线程,对于这种线程的创建、撤对于这种线程的创建、撤消、和切换,都不用

53、系统调用来实现。消、和切换,都不用系统调用来实现。内核并不知道用户级线程的存在。内核并不知道用户级线程的存在。2022-5-3山东农业大学计算机系山东农业大学计算机系78核心级线程(核心级线程(KLTKLT) 所有线程管理由核心完成所有线程管理由核心完成 没有线程库,但核心提供没有线程库,但核心提供APIAPI 核心维护进程和线程的上下文核心维护进程和线程的上下文 线程之间的切换需要核心支持线程之间的切换需要核心支持 以线程为基础进行调度以线程为基础进行调度 例子:例子:Windows 2000/XPWindows 2000/XP2022-5-3山东农业大学计算机系山东农业大学计算机系79进程

54、进程线程线程核心栈核心栈进程表进程表用户空间用户空间系统空间系统空间TCB2022-5-3山东农业大学计算机系山东农业大学计算机系80用户级线程用户级线程(ULT)(ULT) 实现方法:实现方法: 基于基于library函数,系统不可见函数,系统不可见 线程创建、撤销、状态转换在目态完成线程创建、撤销、状态转换在目态完成 TCB在用户空间,每个进程一个系统栈在用户空间,每个进程一个系统栈 优点:优点: 不依赖于操作系统,调度灵活不依赖于操作系统,调度灵活 切换无须从目态到管态,速度快切换无须从目态到管态,速度快 ULTULT可运行在任何操作系统上(只需要线程库),可以在一个可运行在任何操作系统

55、上(只需要线程库),可以在一个不支持线程的不支持线程的OSOS上实现上实现 缺点:缺点: 核心只将处理器分配给进程,核心只将处理器分配给进程,在多处理机中同一进程中多个在多处理机中同一进程中多个线程不能真正并行线程不能真正并行 一个线程进入系统受阻,进程中其它线程不能执行一个线程进入系统受阻,进程中其它线程不能执行2022-5-3山东农业大学计算机系山东农业大学计算机系81运行时系统运行时系统TCB进程进程线程线程核心栈核心栈进程表进程表用户空间用户空间系统空间系统空间用户级线程用户级线程运行时系统:用于管理和控制线程的函数集合。运行时系统:用于管理和控制线程的函数集合。2022-5-3山东农

56、业大学计算机系山东农业大学计算机系82线程库线程库提供线程运行管理系统:提供线程运行管理系统: 创建、撤消线程创建、撤消线程 在线程之间传递消息和数据在线程之间传递消息和数据 调度线程执行调度线程执行 保护和恢复线程上下文保护和恢复线程上下文2022-5-3山东农业大学计算机系山东农业大学计算机系83用户级线程和核心级线程用户级线程和核心级线程2022-5-3山东农业大学计算机系山东农业大学计算机系84用户级线程与核心级线程的比较用户级线程与核心级线程的比较用户级线程用户级线程(ULT)核心及线程核心及线程(KLT)管理管理线程库线程库内核内核调度单位调度单位进程进程线程线程切换速度切换速度同

57、一进程诸线程间切换,由线程同一进程诸线程间切换,由线程库完成,速度较快库完成,速度较快由内核完成,速度较慢由内核完成,速度较慢系统调用行为系统调用行为内核看做是整个用户进程的行为内核看做是整个用户进程的行为内核只看做该线程的行为内核只看做该线程的行为阻塞阻塞用户进程用户进程线程线程优点优点线程切换不调用内核,切换速度线程切换不调用内核,切换速度较快,调度算法可由应用程序定较快,调度算法可由应用程序定对多处理器,可同时调度同对多处理器,可同时调度同一进程的多个线程,速度较一进程的多个线程,速度较快,阻塞是在线程一级快,阻塞是在线程一级缺点缺点阻塞在用户进程一级阻塞在用户进程一级同一进程内的线程切

58、换速度同一进程内的线程切换速度较慢较慢2022-5-3山东农业大学计算机系山东农业大学计算机系85例题 设进程设进程A拥有拥有1个用户级线程,进程个用户级线程,进程B拥有拥有100个用户级线程,则在系统调度时各占用几个时个用户级线程,则在系统调度时各占用几个时间片?间片?答:答:1 1个个 设进程设进程A拥有拥有1个内核级线程,进程个内核级线程,进程B拥有拥有100个内核级线程,则在系统调度时各占用几个时个内核级线程,则在系统调度时各占用几个时间片?间片?答:答:A:1A:1个个;B:100;B:100个个2022-5-3山东农业大学计算机系山东农业大学计算机系86 在混合式线程系统中,内核支

59、持在混合式线程系统中,内核支持KLT多线程的多线程的建立、调度和管理;建立、调度和管理; 同时同时,也提供线程库,允许用户应用程序建立、也提供线程库,允许用户应用程序建立、调度和管理调度和管理ULT; 一个应用程序的多个一个应用程序的多个ULT映射成一些映射成一些KLT,程序程序员可按应用需要和机器配置调整员可按应用需要和机器配置调整KLT数目,以数目,以达到较好效果;达到较好效果; 混合式中,一个应用中的多个线程能同时在多混合式中,一个应用中的多个线程能同时在多处理器上并行运行,且阻塞一个线程时并不需处理器上并行运行,且阻塞一个线程时并不需要封锁整个进程。如果设计得当的话,则混合要封锁整个进

60、程。如果设计得当的话,则混合式多线程机制能够结合了两者优点,并舍去它式多线程机制能够结合了两者优点,并舍去它们的缺点。们的缺点。混合线程混合线程2022-5-3山东农业大学计算机系山东农业大学计算机系87P P线程库线程库P P3 3)混合式线程)混合式线程ULTULTKLTKLTProcessProcessP PP P1 1)内核级线程)内核级线程内核空间内核空间用户空间用户空间用户空间用户空间内核空间内核空间线程库线程库P P2 2)用户级线程)用户级线程用户空间用户空间内核空间内核空间线程实现方法线程实现方法2022-5-3山东农业大学计算机系山东农业大学计算机系88练习题练习题1 同一

温馨提示

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

评论

0/150

提交评论