- 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)