过桥问题课设报告.docVIP

  • 2
  • 0
  • 约1.43万字
  • 约 17页
  • 2020-09-01 发布于安徽
  • 举报
. . .. . .. a. .. . . 操作系统 课程设计报告书 题 目 过桥问题 系 别 计算机工程系 专 业 计算机科学与技术 班 级 姓 名 指导教师 下达日期 2013 年 6 月 15 日 设计时间自 2013 年 6 月 17 日 至 2013 年6月 30 日 a. .. . . 第一章 课程设计目的 该课程是在学完《操作系统》课程之后,让学生在掌握基本原理和方法的基础上,运用熟悉的开发工具,在计算机上模拟实现操作系统课程中介绍的操作和算法。以帮助同学切身体验各种操作的过程及效果,同时加深同学对基本原理的理解,提高同学的编程能力、综合应用知识的能力和分析解决问题的能力,初步培养研制简单系统程序开发的能力。 第二章 课程设计内容与要求 掌握并发进程中同步与互斥的机制,基于线程的编程技术开发类似生产者—消费者问题的演示程序。 模拟程序的开发不但要正确体现原算法的基本原理,还要精心设计,充分体现学生自身在演示过程设计中的独特性,使模拟程序演示过程清晰、准确,演示的效果直观、图文并茂,达到能够帮助学生更深入的理解算法的目的。 第三章 过桥Pv操作 过桥的规则:同一方向的可连续过桥,某方向有人过桥时另一方向的人要等待。 //mutex—左右两边过桥的互斥信号量;Lcount, Rcount—左右两边过桥人数 //Lmutex, Rmutex —分别表示对Lcount, Rcount互斥访问的信号量 Var Semaphore mutex,Lmutex,Rmutex=1,0,0; int Lcount=0, Rcount=0; Main() { cobegin Left(); Right(); Coend } Left() { while (true) {P(Lmutex); if Lcount==0 P(mutex); Lcount=Lcount+1; V(Lmutex) 过桥; p(Lmutex); if Lcount==0 V(mutex); Lcount=Lcount-1; V(Lmutex) } } Right() { while (true) {P(Rmutex); if Rcount==0 P(mutex); Rcount=Rcount+1; V(Rmutex) 过桥; p(Rmutex); if Rcount==0 V(mutex); Rcount=Rcount-1; V(Rmutex) } } 第四章 源代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; using System.Collections; namespace CrossBridge { public partial class Form1 : Form { //int bridge = 0;//0:空闲 int leftCount = 0; int rightCount = 0; int time = 3000; IList

文档评论(0)

1亿VIP精品文档

相关文档