第2、3章 处理器管理复习.docx
28页第2、3章 处理器管理复习2.1处理器管理概述1. 处理器管理的主要任务:是对处理器进行分配,并对其运行进行 有效地控制和管理处理器管理的主要功能■ 进程控制■ 进程同步■ 进程通信■ 进程调度:包括作业调度和进程调度作业调度:从后备队列中按照一定的算法,选择若干个作业,为 它们分配必要的资源,将它们调入主存,然后为它们建立进程,并按 照一定的算法将其插入就绪队列进程调度:从进程的就绪队列中,按照一定的算法选出一新进 程,把处理器分配给它,并为它设置运行现场,使进程投入运行2. 程序的顺序执行程序在执行时,必须按某种先后次序逐个执行操作,只有当前一 个操作执行完后,才能执行后一个操作特征:■ 顺序性■ 封闭性■ 可再现性3. 程序的并发执行是指在一个时间段内执行多个程序特征:■ 间断性■ 失去封闭性■ 不可再现性2.2进程描述1. 进程的定义一个程序在一个数据集合上的一次运行过程所以一个程序在不 同数据集合上运行,乃至一个程序在同样数据集合上的多次运行都是 不同的进程进程是程序的一次执行进程是一个程序及其数据在处理机上顺序执行时所发生的活动进程是程序在一个数据集合上运行的过程,它是系统进行资源分 配和调度的一个独立单位。
2. 进程的特征■ 动态性:是进程的最基本的特征,它由创建而产生, 由调度而执行,由撤消而消亡■ 并发性■ 独立性:指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位■ 异步性■ 结构性3. 进程的状态进程的三种基本状态就绪状态:当进程以分配到除处理器(CP U)以外的所有必要资 源后,只要再获得处理器就可以立即执行,这时进程的状态称为就绪 状态执行状态:处于就绪状态的进程一旦获得了处理器,就可以运 行,进程状态也就处于执行状态阻塞状态:正在执行的进程因为发生某些事件(如请求输入/ 输出、申请额外空间等)而暂停运行,这种受阻暂停的状态称为阻塞 状态,也可以称为等待状态就绪态阻塞态执行态I/O完成进程调度时间片完I/O请求进程的挂起状态引入挂起状态后的进程状态转换■ 执行状态f静止就绪■ 活动就绪f静止就绪■ 静止就绪f活动就绪■ 活动阻塞f静止阻塞■ 静止阻塞f活动阻塞■ 静止阻塞f静止就绪活动就绪活动阻塞 执行态 激活 挂起I/O请求静止就绪静止阻塞挂起挂起激活唤醒唤醒2.3进程控制1•进程控制块PCB :进程控制块是进程实体的重要组成部分, 是操作系统中最重要的记录型数据,在进程控制块PCB (ProgramContral Block )中记录了操作系统所需要的、用于描述进程情况及 控制进程运行所需要的全部信息,PCB是进程存在的惟一标志。
作用通过PCB,使得原来不能独立运行的程序(数据),成为一个 可以独立运行的基本单位,一个能够并发执行的进程进程控制块是 进程存在的唯一标志进程控制块的内容:进程标识符、处理器状态、进程调度信息、 进程控制信息链接指针:给出了本进程(PCB)所在队列中的下一个进程的PCB 的首地址进程控制块的组织方式:链接方式、索引方式2.进程控制原语原语的概念原语是指具有特定功能的不可被中断的过程它主要用于实现操作系 统的一些专门控制操作原语的分类创建原语:用于为一个进程分配工作区和建立PCB,置该进程为 就绪状态撤消原语:用于一个进程工作完后,收回它的工作区和PCB阻塞原语:用于进程在运行过程中发生等待事件时,把进程的状 态改为等待态唤醒原语:用于当进程等待的事件结束时,把进程的状态改为 就绪态3.进程的创建引起进程创建的事件■ 用户登录■ 作业调度■ 提供服务■ 应用请求2.4线程的基本概念线程的概念:线程是进程中的一个实体,是被系统独立调度和执 行的基本单位线程与进程的区别:• 调度单位不同:线程是独立调度和执行的基本单位,进程 只作为资源分配和拥有的基本单位• 并发形式不同:在一个进程中的各个线程,可以并发执行。
不同进程中的线程也能并发执行• 拥有资源 不同:线程中的实体基本上不拥有系统资源,进 程拥有资源• 共享方式:在同一进程中的各个线程,都可以共享该进程所拥有的资源进程的基本属性:(1 )进程是一个可拥有资源的独立单位2)进程同时又是一个可独立调度和分派的基本单位一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位, 是花费最小开销的实体线程的属性:■ 轻型实体线程中的实体基本上不拥有系统资源■ 独立调度和分派的基本单位■ 可并发执行■ 共享进程资源线程的类型:系统级线程:是依赖于系统控制的,即无论是用户进程 中的线程,还是系统进程中的线程,它们的创建、撤消、切换都是由 系统控制实现的用户级线程:是由用户控制,对于用户级线程的创建、撤消、切换,都与系统控制无关,完全由用户自己管理超线程的概念超线程技术就是利用特殊的硬件指令,在一颗实体处理器中放入 两个逻辑处理单元,从而模拟成两个工作环境,让单个处理器都能使 用线程级并行计算,同时处理多项任务,提升处理器资源的使用率2.5进程同步与互斥1. 进程的并发性:在并发执行的系统中,若干个作业可以同时执行, 而每个作业又需要有多个进程协作完成。
在这些同时存在的进程间具 有并发性进程同步的主要任务:使并发执行的诸进程之间能有效地共享资 源和相互合作,从而使程序的执行具有可再现性临界资源:在系统中有许多硬件或软件资源,在一段时间内只允 许一个进程访问或使用,这种资源称为临界资源临界区:每个进程中访问临界资源的那段代码称为临界区进程同步:进程同步是指多个相关进程在执行次序上的协调,这 些进程相互合作,在一些关键点上需要相互等待或相互通信进程互斥:进程互斥是指当一个进程进入临界区使用临界资源 时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另 一个进程才被允许使用临界资源进程同步机制应遵循的原则■ 空闲让进■ 忙则等待■ 有限等待■ 让权等待2. 利用PV操作实现互斥与同步信号量就是一种特殊变量,它用来表示系统中资源的使用情况而整型信号量就是一个整型变量说明:当其值大于“0”时,表示系统中对应可用资源的数目;当其值小于“0”时,其绝对值表示因该类资源而被阻塞的进程的数目;当其值等于“0”时,表示系统中对应资源已经都被占用,并且 没有因该类资源而被阻塞的进程信号量的操作P操作:记为P (S),描述为:P( S){ S=S-1;if ( S<0) W( S);}W(s):将调用过程的进程插入到等待信号量S的等待队列中V操作:记为V (S),描述为:V( S){ S=S+1;if ( S<=0) R( S);}R(s):从该信号量的等待队列中释放第一个进程。
番«3»命” procedure waAs)spsemaphorej begins・vace" Hs・vace・ljif pvaceAO Mien bock(s・L)j end・Signa-H)藏童 procedure Signa (匕 varssemaphorej begins・vace“ Hs・vace+1"if s.value<=0 then wakeup(S,L);end.wakeup(s):从该信号量的等待队列中释放第一个进程利用PV操作实现互斥 互斥信号量是根据临界资源的类型设置的有几种类型的临界资源就 设置几个互斥信号量它代表该类临界资源的数量,或表示是否可用, 其初值一般为“1”例题【例2-1】在一个只允许单向行驶的十字路口,分别有若干由东向西, 由南向北的车辆在等待通过十字路口为了安全,每次只允许一辆车 通过当有车辆通过时其它车辆必须等候,当无车辆在路口行驶时则 允许一辆车通过请用pv操作实现保证十字路口安全行驶的自动管 理系统解:S:表示临界资源十字路口,S=1int S=1;main(){ pew(); psn();}psn(){p(s);由南向北通过十字v(s);}pew(){p(s); wait(s)由东向西通过十字路口;路口;v(s); signal(s)}【例2-2】有4位哲学家围着一个圆桌在思考和进餐,每人思考时手 中什么都不拿,当需要进餐时,每人需要用刀和叉各一把,餐桌上的 布置如图2-12所示,共有2把刀和2把叉,每把刀或叉供相邻的两 个人使用。
请用信号量及PV操作说明4位哲学家的同步过程Int forkl=l,fork2=l,knifel=l,knife2=l;Pa(){ wh订 e(1){ p(knifel);p(forkl);进餐;v(knife1);v(forkl);}}利用PV操作实现同步同步信号量是根据进程的数量设置的一般情况下,有几个进 程就设置几个同步信号量,表示该进程是否可以执行,或表示该进程 是否执行结束其初值一般为“0”例2-3】桌上有一个空盘子,只允许放一个水果爸爸可以向盘中 放苹果,也可以向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃 盘中的苹果规定当盘空时,一次只能放一只水果,请用PV操作实 现爸爸、儿子、女儿3个并发进程的同步Int sp=1; sa=0;so=0;Main(){ fat her(); son();daugh te r();}Father()son(){ wh订 e(1){wh订 e(1){ p(sp);{p(so);将水果放入盘中; 从盘中取出桔子;f (放入的是桔子) v(sp);v(so);吃桔子;elsev(sa); }}}}【例2—4】生产者与消费者问题(1: 1: 1)Sp:是否可以把物品存入缓冲区;sg:缓冲区是否存有物品。
Int sp=1, sg=0;Producer{ wh订 e(1){生产一个产品;p(sp);buffer 二产品;v(sg);}}Consumer{ p(sg);取产品从仓库中;v(sp)消费}}【例2-6】生产者与消费者问题(1: n: 1)Int sp=n, sg=O;b[n],k=0,t=0Producer{ wh订 e(1){生产一个产品;p(sp);b[k ]=产品;k=(k+1) mod n; v(sg);}}Consumer(){ wh订 e(1){ p(sg);取产品从b[t ];t=(t+1) mod nv(sp)消费}}【例2-7】生产者与消费者问题(m: n: r)Sp:是否可以把物品存入缓冲区;sg:缓冲区是否存有物品Sl:m个生产者之间互斥地往缓冲区中存入物品;S2:r个消费者之间互斥地从缓冲区取物品Int sp=n, sg=O;b[n],k=0,t=0,s1=1,s2=1;Producer{ wh订 e(1){生产一个产品;p(sp);p(s1)b[k ]=产品;k。





