作业4 参考解答

发布 2022-09-14 17:10:28 阅读 3176

提示:作业任选三题完成。下周一前完成。

2023年3月16日星期三。

姓名: 班级: 学号:

1. 图书馆有100个座位,有一张登记表,要求:

阅读者进入时登记,先取得座位;

出来时,注销;登记表同时只能由一个人使用;

用p、v原语描述一个读者的使用过程。

参考解答:int main(void)

int mutex=1,**ail=100; /mutex用于登记表互斥使用的信号量,初值为1,表示登记表可用,没有被阅读者占用;*/

p(**ail);

p(mutex);

登记…v(mutex);

reading…

p(mutex);

注销登记…v(mutex);

v(**ail);

2. 桌上有一个空盘,盘内只允许放一个水果。爸爸专向盘内放苹果,妈妈专向盘内放桔子。

儿子等吃盘中的苹果,女儿专等吃盘中的桔子。 若盘内已有水果,放者必须等待,若盘内没有水果,吃者必需等待。用pv操作来协调四人的关系。

定义信号量:

mutex用于放水果用的盘子互斥使用的信号量,初值为1,表示盘子中没有水果。

appneed是父亲使用的私用信号量,表示盘中没有苹果,可以向其中放苹果了,app**ail是儿子所使用的私用信号量,表示盘中已经有苹果了可以取苹果了,orgneed是妈妈使用的私用信号量,表示盘中没有桔子,可以向其中放桔子了,org**ail是女儿所使用的私用信号量,表示盘中已经有桔子了可以取桔子了;

int main(void)

int mutex=1,appneed=0,app**ail=0,orgneed=0,org**ail=0;

cobegin

papa();mama();

son();daughter();

coendpapa()

p(mutex);

放苹果…v(app**ail);

v(mutex);

mama()

p(mutex);

放桔子…v(org**ail);

v(mutex);

son()p(app**ail)

p(mutex);

取苹果….v(mutex);

吃苹果…v(appneed);

daughter()

p(org**ail)

p(mutex);

取桔子….v(mutex);

吃桔子…v(orgneed);

3. 设公共汽车上,司机和售票员的活动分别是:

司机: 启动车辆售票员上乘客关车门。

正常行车售票。

到站停车。下乘客开车门。

在汽车不断地到站,停车,行使过程中,这两个活动有什么同步关系?并用pv原语描述司机和售票员操作。

参考解答:定义信号量:

start用于司机使用的私用信号量, 表示是否可以启动车辆,初值为1。

stop用于售票员的私用信号量, 表示是否可以关闭车门,初值为0。

int startcar=0,closedoor=0;

int main(void)

cobegin

busdriver();

service();

coendbusdriverstart()

p(start);

启动车辆…正常行驶。

到站停车。v(closedoor);

conductor()

关车门。v(start));

售票。p(closedoor);

开车门。上下客。

4. 某处有一东、西向单行道,其上交通并不繁忙。试用p、v操作正确实现该东、西向行道的管理:

当有车由东向西(或由西向东)行驶时,另一方向的车需要等待;同一方向的车可连续通过;当某一方向已无车辆在行道行驶时,则另一方向的车可以驶入单行道。用pv原语描述该过程。

int main(void)

mutex:=1 ; 两个方向车辆的互斥信号灯 */

count:=0 ; 计数变量 */

mutexr:=1 ; 对计数变量操作的互斥信号灯 */

cobegin

fromeasttowest();fromwesttoeast();

coend由东向西行驶的车辆: 由西向东行驶的车辆:

fromeasttowest()

p(mutexr);

count:=count+1;

if(count==1)

then p(mutex);

v(mutexr);

driving from east to west…..

p(mutexr);

count:=count1-1;

if(count==1)

then p(mutex);

v(mutexr);

fromwesttoease()

p(mutext);

count=count+1;

if(count==1)

thenp(mutex);

v(mutex);

driving from west to east…

p(mutex);

count = count – 1

if(count==1)

then p(mutex);

v(mutex);

pi ()表示有多个由东向西行驶的车; pj ()表示有多个由西向东行驶的车。

作业解答参考

1.将原问题转化为标准形式 原问题最优解为 x 0,1,7 mins 34 2.设仓库ai运到工地bj的建筑材料运量分别为xij,i,j 1,2,3 约束条件 x11 x12 x13 56 x21 x22 x23 82 x31 x32 x33 77 x11 x21 x31 72 x12 x22 x3...

电路作业参考解答

电路分析基础 作业参考解答。第一章 p26 31 1 5 试求题1 5图中各电路中电压源 电流源及电阻的功率 须说明是吸收还是发出 a 解 标注电压如图 a 所示。由有。故电压源的功率为。发出 电流源的功率为。吸收 电阻的功率为。吸收 b 解 标注电流如图 b 所示。由欧姆定律及有。故电压源的功率为...

作业9 参考解答

2011年4月25日星期一。姓名 班级 学号 1.某段式存储管理中采用下表所示的段表。1 简述地址变换过程 2 计算 0,430 1,10 2,500 3,400 4,20 5,100 的内存地址,其中方括号内的第一元素为段号,第二元素是段内地址。3 存取主存中的一条指令或数据至少需要几次访问内存。...