武汉理工大学--进程同步模拟设计-——吃水果问题.docx

武汉理工大学--进程同步模拟设计-——吃水果问题.docx

进程同步模拟设计 ——吃水果问题 1需求分析 吃水果问题的描述 桌子上有一只盘子,最多可容纳两个水果,每次只能放入或者取出一个水 果。爸爸专门向盘子中放苹果,妈妈专门向盘子中放橘子,两个儿子专门等 待吃盘子中的橘子,两个女儿专门等吃盘子中的苹果。 问题的转换 这是进程同步问题的模拟,可以把向盘子放或取水果的每一个过程可以转 为一个进程的操作,这些进程是互斥的,同时也存在一定的同步关系。通过 编程实践时,实际是随机的调用人一个进程的操作,而这些进程的操作相当 于程序中的函数调用。而计算机在执行时每一个时刻只能执行一个操作,这 就默认了互斥。同步的模拟可以类似于函数调用时的前提关系即先决条件。 这样进程同步模拟就完全可以通过函数的调用来实现。 具体的每一个操作的对应的函数的关系: 爸爸向盘子中放一个苹果:FatherO 妈妈向盘子中放一个橘子:MOther() 儿子1从盘子取一个橘子:SOnl () 儿子2从盘子取一个橘子:Son2() 女儿1从盘子取一个苹果:DaUgtherl () 儿子1从盘子取一个苹果:DaUgther2() 2功能设计 数据结构 用一个整型变量Plate_Size表示盘子,初始值为0,当放水果时 PIate SiZe加1,取水果时PIate_SiZe减1。变量PIate_SiZe的最大值为2, 当为2时表示盘子已经满,此时若进行放水果操作,放水果将处于等待状态

文档评论(0)

1亿VIP精品文档

相关文档