操作系统原理4华中科技大学

上传人:宝路 文档编号:48363025 上传时间:2018-07-14 格式:PPT 页数:61 大小:1.04MB
返回 下载 相关 举报
操作系统原理4华中科技大学_第1页
第1页 / 共61页
操作系统原理4华中科技大学_第2页
第2页 / 共61页
操作系统原理4华中科技大学_第3页
第3页 / 共61页
操作系统原理4华中科技大学_第4页
第4页 / 共61页
操作系统原理4华中科技大学_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《操作系统原理4华中科技大学》由会员分享,可在线阅读,更多相关《操作系统原理4华中科技大学(61页珍藏版)》请在金锄头文库上搜索。

1、 1第四章 并发处理24.5 进程互斥 4.5.2 锁和上锁、开锁操作这样当一个进程使用某个临界资源之前必须完成下列操作 : 1、考察锁位的值; 2、若原来的值是为“0”,将锁位置为“1”(占用该资源); 3、若原来值是为“1”,(该资源已被别人占用),则转 到1。 当进程使用完资源后,将锁位置为“0 ” ,称为开锁操作 。34.5 进程互斥 4.5.2 锁和上锁、开锁操作 44.5 进程互斥 4.5.2 锁和上锁、开锁操作 改进的算法54.5 进程互斥 4.5.3 用上锁原语和开锁原语实现互斥假设有两个进程共享打 印机,两个进程中使用 打印机的程序段为临界 区。 为保证打印的正确,设 置打印

2、机的锁位print, 其初值为“0”,表示打印机可。64.5 进程互斥 4.5.3 用上锁原语和开锁原语实现互斥74.6 信号灯和P、V操作 4.6.1 信号灯的概念信号灯的概念是由Dijkstra提出的(1968)。他把互斥的关键概念抽象到信号量这个概念中, 信号量是一个被保护的变量,只有P操作、V操 作和一种称为信号量初始化操作才能访问和改 变它的值。 84.6 信号灯和P、V操作 4.6.1 信号灯的概念信号灯的定义:信号灯是一个确定的二元组(s,q),s 是一个具 有非负初值的整型变量,q 是一个初始状态为空的排队站。S代表资源的实体。在实际应用中应准确地说明s的意义和初值,每个信号灯

3、都有一个队列,其初 始状态为空。94.6 信号灯和P、V操作4.6.2 P、V操作信号灯的值仅能由P、V操作来改变,对信号灯的P操作记为:P(S),P操作是一个原子操作。 对信号灯的V操作记为:V(S), V操作是一个原子操作。在实际操作系统中,一般情况下是由机器硬件提供P、V操 作的指令,当然是原子操作,若机器不提供P、V操作的指 令,则操作系统提供P、V操作原语。104.6 信号灯和P、V操作4.6.2 P、V操作P操作: (1)s值减1; (2)若相减结果大于等于0 ,则进程继续执行; (3)若结果小于0,则该进程挂起。注:推起该进程包括:保留调用进 程 CPU现场;置“等待”状态;入等

4、待队列;转进程调度;114.6 信号灯和P、V操作4.6.2 P、V操作V操作: (1)s值加1; (2)若相加结果大于0, 进程继续执行; (3)否则,唤醒一个(或 多个)等待该信号灯的进 程,然后本进程继续执行 。124.6 信号灯和P、V操作 4.6.3 用信号灯实现进程互斥用两个进程共享打印机的例子设信号灯print表示打印机,初值为1, 表示打印机可用(也可理解为有一台打印机)。 (print也是用于互斥的信号灯,教材上设 置为mutex。)134.6 信号灯和P、V操作 4.6.3 用信号灯实现进程互斥144.7 进程同步 4.7.1 同步的例子引例 1 :两位同 学 约好星期天去

5、东 湖 ,早上8:00在校门口,不见不散。 当一个同学先来到 校 门口,要等另一个 同 学,到齐后一道打 的 去东湖154.7 进程同步 4.7.2 同步的概念互斥的概念来自于诸进程对独占使用资源(设备)的 竞争,同步来源于多个进程的合作。在人类社会中竞 争与合作是永恒的。同步:所谓同步就是并发进程在一些关键点上可 能 需要相互等待与互通消息,这样的相互制约关系 称 为进程同步。164.7 进程同步 4.7.3 用信号灯实现进程的同步在操作系统中,同步有各种各样,但归纳起 来有两类: 诸进程合作完成某工作的逻辑顺序,如考研问题; 对系统资源的共享。如两个进程共享一个缓 冲区完成誊抄问题174.

6、7 进程同步 4.7.3 用信号灯实现进程的同步(一)合作进程的执行次序用进程流图来描述诸进程合作完成某一任务的次序,其规则如下184.7 进程同步 4.7.3 用信号灯实现进程的同步用信号灯及P、V操作来描述左图 1、说明进程的同步关系进程P1、P2可并行执行,P3的执行 必须等待P1、P2都完成后才能开始执 行。 2、设置信号灯,说明含义、初值。s13 = 0 表示进程P1尚未执行完成;s23 = 0 表示进程P2尚未执行完成;194.7 进程同步 4.7.3 用信号灯实现进程的同步204.7 进程同步 4.7.3 用信号灯实现进程的同步(二)共享缓冲区的合作进程的同步设有一个缓冲区buf

7、fer,大小为 一个字节,CP进程不断产生字符 ,送buffer,IOP进程从buffer中取 出字符打印。如不加控制,会有 多种打印结果,这取决于这两个 进程运行的相对速度。在这众多 的打印结果中,只有CP、IOP进 程的运行刚好匹配的一种是对的 ,其它均为错误,并且不能重现 。214.7 进程同步 4.7.3 用信号灯实现进程的同步要保证打印结果的正确, CP、IOP必须遵循以下同步规则: (1)当CP把结果送入buffer后, IOP 才能从buffer中取,否则IOP必 须 等待; (2)当IOP从buffer中取走数据 后, CP才能将新产生数据送buffer ,否则也必须等待。解决

8、这个问题的步骤 : (1)分析问题,弄清 楚同步关系,如上分 析; (2)设置信号灯,说 明含义、初值; (3)写出程序描述。224.7 进程同步 4.7.3 用信号灯实现进程的同步234.7 进程同步 4.7.4 生产者消费者问题我们把上面的例子扩充 ,假定缓冲区buffer是一 个有界缓冲区,可存放n 个数据,同时假定有n个 CP进程不断地产生数据 ,并送buffer;有m个IOP 进程从缓冲区中取数据 打印。 在我们生活中有很多这 样的例子。244.7 进程同步 4.7.4 生产者消费者问题对于生产者进程:产生一个数据,当要送入缓冲区 时,要检查缓冲区是否已满,若未满,则可将数 据送入缓

9、冲区,并通知消费者进程;否则,等待 ; 对于消费者进程:当它去取数据时,要看缓冲区中 是否有数据可取,若有则取走一个数据,并通知 生产者进程,否则,等待。 这种相互等待,并互通信息就是典型的进程同步。 同时,缓冲区是个临界资源,因此,诸进程对缓冲 区的操作程序是一个共享临界区,因此,还有个 互斥的问题。254.7 进程同步 4.7.4 生产者消费者问题264.7 进程同步 4.7.4 生产者消费者问题274.7 进程同步 4.7.4 生产者消费者问题28补充题1:有十个读者和两个编辑同时处理一篇文章,对于 读操作是可以同时进行的,若有读者正在读这 篇文章,编辑就不能工作,若编辑正在处理这 篇文

10、章,读者就不能作读操作,编辑与编辑的 工作也是互斥的,试用信号灯及P、V操作写出 读者与编辑之间协同工作的程序描述。2930解: mutex:用于读者与编辑、编辑与编辑的互斥信号灯,初值为1; mutex1:用于对couter操作的互斥的信号灯,初值为1。31补充题2:理发师睡觉问题 理发店里有一位理发师、一把理发椅和n把供顾 客等候理发坐的椅子。如果没有顾客,则理发 师便在理发椅上睡觉,当一顾客来到时,他必 须先叫醒理发师,如果理发师正在理发时又有 顾客来到,则如果有空椅子可坐,他们就坐下 来等,如果没有空椅子,他就离开。用信号灯 和P、V操作写出理发师和顾客行为的程序描述 。32补充题3:

11、哲学家就餐问题五个哲学家围坐在一个园桌周围,每个哲学家面前都有 一盘通心面,由于面条很滑,所以要两把叉子才能夹 住。相邻两个盘子间有一把叉子,餐桌如右图。 哲学家的生活包括两种活动:即吃面条和思考。当哲学 家觉得饿时,他就试图分两次去取他左边和右边的叉 子,每次拿一把,不分先后次序,如果成功,他就开 始吃面条,吃完后放下叉子,继续思考。试用信号灯 及P、V操作写出哲学家行为的程序描述,要求不能让 某个(或某些哲学家饿死)。33补充题3:哲学家就餐问题344.9 UNIX系统的进程管理4.9.1 UNIX系统的进程的图象(image)(一)进程图象的组成1、进程控制块PCB 基本进程控制块 pr

12、oc结构:存放进程的最基本的控制和 管理信息,不论该进程是否处于运行状态,系统都要 访问的信息,必须常驻内存; 扩充进程控制块 user结构:存放进程的管理和控制信息 ,这些信息只有当进程处于运行状态时,系统才访问,不一定常驻内存。354.9 UNIX系统的进程管理 4.9.1 UNIX系统的进程的图象2、正文段(共享正文段 ) 它是进程执行程序的一 部分,可为多个进程共 享执行,作为正文段的 程序必须是可重入的。 3、数据段 包括:正文段程序的处 理对象数据、进程 执行程序(私有)及数 据和ppda(进程数据区) 。 4、用户栈364.9 UNIX系统的进程管理 4.9.1 UNIX系统的进

13、程的图象(二)UNIX系统进程数 据结构 1、proc结构,在UNIX系 统的/sys/proc.h文件中; 2、user结构 ,在UNIX系 统的/sys/user.h文件中; 3、 text结构(用来管理 正文段的数据结构)text结构在UNIX系统 的/sys/text.h文件中374.9 UNIX系统的进程管理 4.9.2 UNIX进程的状态及变迁一、UNIX进程的两种 运行态核心态:指进程正 在执行UNIX核心程序 ;用户态:指进程正 在执行用户程序;384.9 UNIX系统的进程管理 4.9.2 UNIX进程的状态及变迁在UNIX系统中,一个进程有 两种态,在执行用户程序时 称为用

14、户态,当发生中断( 或自陷)时,自动转去处理 中断,即开始执行中断处理 程序(UNIX核心代码),进 程由用户转为核心态,处理 完中断完后返回用户程序执 行,进程又由核心态转为用 户态。在UNIX系统中除0 进程外的所有进程都有两种 态。394.9 UNIX系统的进程管理 4.9.2 UNIX进程的状态及变迁 二、UNIX进程树404.9 UNIX系统的进程管理 4.9.2 UNIX进程的状态及变迁 二、UNIX进程树0进程:系统初启时由系统初启程序建立,完成系统初启 的相应工作后,创建1进程;然后的工作有两项,其一 是进程交换(进程图象的管理);其二是进程切换( 进程调度)。 1 进程:为系

15、统的每个联机终端创建一个终端进程,然 后就做托管工作。 2、3、n、n+1进程:终端进程,执行程序是shell, 该进程执行是接受和执行用户键入的shell命令,或 shell命令程序。 用户创建的进程:用户的shell命令或shell程序所创建的进 程;用户在其程序中创建的进程。414.9 UNIX系统的进程管理 4.9.2 UNIX进程的状态及变迁 三、UNIX进程状态(一)运行状态 运行状态表示进程正在处理机上运行。 其特征是: p_stat 为SRUN p_flag 中号SLOAD位为1,表示该进程图象在内存(在目前的UNIX系 统中表示该进程的U区在内存)。核心态下的内存管理机制的指

16、 针指向ppda,即该进程的USER结构。 核心态运行 用户态运行424.9 UNIX系统的进程管理 4.9.2 UNIX进程的状态及变迁 三、UNIX进程状态(二)就绪状态 在内存中就绪:指进程处于就绪状态,且进程图 象在内存(现代:进程的U区在内存); 就绪且换出:指进程处于运行状态,且进程图象 不在内存。 p_stat为SRUN; p_flag的SLOAD为1,表示在内存中就绪;为0,表示就绪且换出; 核心态下的内存管理机制的指针不指向ppda。434.9 UNIX系统的进程管理 4.9.2 UNIX进程的状态及变迁 三、UNIX进程状态(三)睡眠状态 睡眠状态是进程等待某事件发生而被迫暂时让出处理机 时所取的状态。 p_stat为SSLEEP 高优先级睡眠状态;SWAIT 低优先级睡眠状态; p_flag中的SLOAD为1,表示该进程图象在内存,否则不在内存。 在UNIX系统中,当进程进入睡眠状态时,系统会根据该进程等待 事 件的轻重缓急的程度赋予不同的优先数,该进程在被唤醒后,就以 系统赋予的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号