操作系统教学中进程同步控制模型的设计

时间:2023-04-21 10:06:08 手机站 来源:网友投稿

摘要操作系统课程中进程的同步控制设计是一个难点,本文通过分析单向生产消费过程,提取出单向同步控制模型并进行了模型拓展,模型成功运用于实际问题的解决,教学实践证明这个模型的可用性。模型的设计与使用,简化了学生对同步控制的理解和应用过程,收到了很好的教学效果。

关键词进程同步同步控制模型

中图分类号:G40-034文献标识号:A

The Application of Research Study in Teaching

Process Synchronization Control

PAN Lin[1], HE Xueyun[2], YANG Changhui[3]

([1]Institute of Command Automation, PLA UNIVERSITY OF

SCIENCE AND TECHNOLOGY, Nanjing, Jiangsu 210007;

[2]Nanjing University of posts and Telecommunications, Nanjing, Jiangsu 210003;

[3]Chongqin University of Technology,Chongqing 400054)

AbstractSynchronization control design is a difficulty during operating system teaching. We distill the unilateralism synchronization model from odd production-consumption course, and reasoning bidirectional model. The model are exerted in practice problem. Teaching practice prove the model’s usability. The mode simplify students’ understandability and application, and bring good teaching effect.

Key wordsprocess synchronization; synchronization control; model

0 引言 进程同步控制的复杂性

进程同步,是指为完成共同任务的一组并发进程,基于某个条件来协调它们的活动顺序,即一个进程的执行依赖于另一个进程的消息或信号,进程或者等待消息或信号,或者获得消息或信号而继续执行。①进程的同步主要是采用信号量机制来实现同步控制的。①②

不同的同步问题涉及的同步进程数量是不同,而且同步的形式变化多样,问题描述也往往比较繁琐。教师在教的过程中,没有一个统一的方法可以简化同步控制的形式和过程,收到的效果很差;学生学习得很痛苦,解决实际问题时很茫然,常常觉得无从下手。

1 进程同步控制基本模型的设计

同步进程之间的推进顺序是进程之间的一组必然联系,那么如何才能安全、正确地实现这组必然的推进顺序呢?我们以经典的生产—消费问题为基础,从其中抽取基本同步模型,在基本模型的基础上规律化进程的同步控制。

在面对各种各样的进程同步的问题时,我们首先要分析并画出其中的同步关系图,然后利用基本同步模型,把同步关系图转换为具体同步控制模型,即定义信号量和安排同步控制,最后按照模型实现同步算法。

1.1 基本单向同步控制模型的抽取

我们以典型的一次生产和消费过程来抽取基本同步模型。

问题描述:生产者把产品生产出来,送入仓库。给消费者发信号,消费者得到信号后,到仓库取产品。这是一个单向同步问题,从生产到消费的状态变化如表1所示。

表1单向生产消费状态变化情况

其同步推进顺序可以用图1(a)表示:

图1(a)单向同步关系图

为确保生产消费推进顺序,需要用product表示是否有产品,PV操作来控制同步,状态变化如表2所示。

表2 单向生产消费同步变化情况

从表2可以抽取出基本单向同步控制模型,如图1(b)。这个模型中,用有向边表示同步关系,其方向就是同步进程的推进顺序,传送一个信号量m,其初始值为0,对m的PV操作分散在两个进程中,且先V后P。

图1(b)基本单向同步控制模型图

1.2 推导:基本双向同步模型

问题描述:多次生产消费,这是一个双向同步问题,生产者把产品生产出来,送入仓库,给消费者发信号;消费者得到信号后,到仓库取产品,给生产者发信号;循环往复。从生产到消费、再又从消费回到生产的状态变化如表3所示。

表3双向生产消费状态变化情况

双向同步推进顺序可用图2(a)表示:

图2(a)双向同步关系图

为实现双向同步,需要用product表示是否有产品,room表示是否有空间,PV操作来控制同步,状态变化如表4所示。

表4双向生产消费同步变化情况

从表4可以抽取出基本双向同步控制模型,如图2(b)。这个模型中,传送一个信号量m1(初值为0)和m2(初值为1),m2初值必须为1以确保反向的同步。

图2(b)基本双向同步控制模型图

2 案例应用

2.1 问题描述及分析

问题描述:桌上有一空盘,最多可容纳2个水果,但每次仅允许放入或者取出一个水果。爸爸专向盘中放苹果,妈妈专向盘中放桔子,两个儿子专等吃盘中的桔子,两个女儿专等吃盘中的苹果。用信号量和 PV操作实现爸爸、妈妈、女儿、儿子间的同步。

问题分析:这是生产—消费的一个变形,父亲和女儿之间有一对双向同步,母亲和儿子之间也有一对双向同步,盘子相当于一个大小为2的缓冲区;但是这两对双向同步不会同时出现,因为限定每次只放或取一,放或取的动作可以看作是临界资源,需要进行互斥;其同步关系用图3(a)表示:

图3(a) 吃水果同步关系图

2.2 构建同步关系模型

本同步问题中,需要传递3个信号量分别表示Or(盘是否有橘子)、a(盘中是否有苹果)、e(盘子是否空),初始值分别为Or = 0、a = 0、e = 2;其同步模型用图2(b)表示:

图3(b)吃水果同步控制模型图

2.3 同步控制算法的设计与实现

在本问题中,父亲、母亲、儿子、女儿之间,无论谁从盘子中取或放水果,取或放的动作是互斥的,因此,还需要一个互斥信号量mutex,初始值为1。

semaphore e=2,Or=0, a=0;

semaphore mutex=1;

cobegin

3 总结

在同步控制模型的分析设计过程中,我们采用了研究性学习方法,③向学生提出了构建基本同步模型和应用模型解决实际问题④⑤的任务,由教师引导学生分析单向同步问题,抽取基本同步模型并推导出双向同步模型,最后由学生独立运用同步模型解决实际问题。这个模型的设计,简化了学生对进程同步控制的理解,在实际同步问题的应用中设计思路更加清晰,课堂教学过程更加生动,教学效果明显。

注释

①孙钟秀等.操作系统教程(第4版)[M].北京:高等教育出版社,2008:168.

②[荷]塔嫩鲍姆著.现代操作系统(第3版)[M].北京:机械工业出版社,2009:73.

③杨保雄.CMC的特征与网络研究性学习指导策略[J].中国远程教育,2002.3:14.

④董翔英等.问题意识与大学计算机教育[J].计算机教育,2005.6.

⑤章雅娟.问题意识在操作系统课程中的实践[J].科技资讯,2007(1):192.

“本文中所涉及到的图表、公式、注解等请以PDF格式阅读”

推荐访问:模型 进程 同步 操作系统 控制

版权声明 :以上文章中选用的图片文字均来源于网络或用户投稿 ,如果有侵权请立即联系我们 , 我们立即删除 。