操作系统原理课程设计
经常论文资料 免费奉献
操作系统原理课程设计
题 目: 姓 名: 学 院: 专 业: 班 级: 学 号: 指导教师:
“哲学家就餐问题”模拟系统
尹岩,刘宇凡,丁磊
信息科技学院 计算机科学技术系
计科61
1926103、1926110、1926101 姜海燕 职称: 副教授 2009 年3月 12 日
提优论文
经常论文资料 免费奉献
“哲学家就餐问题”模拟系统
计科61 丁磊,尹岩,刘宇凡
指导教师:姜海燕
摘要:
现代操作系统引入并发程序设计技术之后,程序的执行不再是顺序的。在多个进程并发运行的过程中,进程之间可能产生相互制约的关系,即竞争和协作。而如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,就会出现死锁。操作系统中经典的5位哲学家吃面问题正反映了进程并发执行这一情况。在问题中,哲学家思考就餐等待的过程正体现了进程在并发执行中对临界资源的互斥访问,同时也因此可能出现死锁现象。本课程设计所完成的正是对“哲学家就餐问题”的模拟。此系统根据操作系统中并发进程、临界区、同步等基本概念及理论进行设计,用C#语言实现,在模拟实现“哲学家就餐问题”的基础上还提供了解决死锁的三种基本方法。本系统较好的模拟了“哲学家就餐问题”,对于进程互斥、临界区、死锁等问题的深入理解有重要意义。
关键字:操作系统 哲学家就餐问题 模拟 c#
The Simulation System of The Philosophers Eating Problem
Yin Yan Liu Yufan Ding Lei
Abstract: Programs have executed with not orders since concurrent programming was used in OS. Concurrent processes should have two relationships during a program is running: competing and cooperation. If each process is waiting for a event which must be called by other processes, then deadlock appears. The Five Philosophers Eating Problem conducts the concurrent conditions. Philosophers refer to the processes and chopsticks refer to the critical resources. This course emulates the problem. There is the conception of synchronism, concurrent processes and critical region in this system. At the same time, we provide three methods to prevent deadlock. Our program is accomplished with C#. Our course helps us to improve the apprehension of critical region, deadlock and other problems in OS.
一、 研究目的与意义:
本课程设计通过模拟计算机操作系统中经典的“哲学家就餐问题”,巩固在操作系统原理课上所学的知识,加深对操作系统中进程互斥、临界区、死锁等问题的认识和理解,同时又了解了软件生成的流程、方法以及思想,提高了分析设计以及编程的能力,最后将此作品用于课堂理论教学的演示之用,增强课堂教学的趣味性。
二、 理论分析:
现代操作系统引入并发程序设计技术之后,程序的执行不再是顺序的,一个程序为执行完而另一个程序就已经开始执行,程序外部的顺序特性消失,程序与计算不再一一对应。于是人们引入进程来描述这种变化。
一组进程在执行时间上是重叠的,进程即并发执行。在多个进程并发运行的过程中,进程之间可能是无关的,也可能是交互的。交互进程之间可能产生的关系,包括竞争和协作。
经常论文资料 免费奉献
并发进程中与共享变量有关的程序段成为临界区,共享变量所代表的资源成为临界资源。
有多种方法可以实现对临界区、临界资源的管理。其中最基本的方法是设置相应的信号量和P、V操作。
在并发进程执行的过程中,对共享资源的竞争可能产生死锁问题,既一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限期陷入僵持的局面。
解决死锁问题的方法包括:通过指定资源申请占有及释放的策略来彻底防止死锁的发生;根据特殊算法决定资源分配和去配策略,避免死锁的发生;对死锁情况进行检测并解除。
综上,本模拟程序应当模拟进程的并发执行,对临界资源的互斥访问和死锁情况的发生和防止。
三、 核心技术:
本模拟程序的核心技术是模拟进程的并发执行和对临界资源的互斥访问。 模拟程序的编写过程所使用的技术路线为:
由于算法简单,不定义独立的P、V操作,而是将之融入对资源的申请及释放操作之中。对于进程的模拟对象即“哲学家”只定义必要的状态包括“思考”(不申请资源的状态)、“等待”(申请资源但无法获得全部资源的等待状态)和“吃面”(获得所申请的所有资源的运行状态)以及占有资源的数量。而对于资源即“筷子”,除了确定资源是否被利用的状态之外定义了资源是否有其他的申请者这一状态值。所有状态值都是用枚举表示。
防止死锁产生的策略采用方法为:如果不能申请并占有到两支“筷子”(所有的资源),那么就不占有任何一支。这个方法实际上是破坏了产生死锁的第二个条件即“占有和等待条件”。
对于Windows界面应用程序中的绘图(及重绘),采用了根据“哲学家”和“筷子”的状态信息进行操作的方法。
四、
功能设计及结构设计:
1) 功能设计:
在这个模拟程序中,使用者需要的功能非常简单:根据使用者控制“哲学家拿筷子”和“哲学家放下筷子”这两个动作,实现五位“哲学家”和五支“筷子”状态的变化。同时,使用者可以选择改变资源分配策略,防止死锁或不防止死锁。最后,使用者还可以退出程序或重置“哲学家”及“筷子”的状态。 下图为模拟系统(程序)的用例图:
经常论文资料 免费奉献
2) 结构设计:
A. 基本数据结构、枚举类型及类的定义: 哲学家结构体以及筷子结构体。
public struct Phi//哲学家:状态和持有资源状态 {
status Phi_status;//哲学家所处的状态 R_status Phi_resource;//拥有筷子的数量
public status Phi_Status//取得或设置对应属性值的方法 { get {
return Phi_status; } set {
Phi_status = value; } }
public R_status Phi_Resource { get {
return Phi_resource;
经常论文资料 免费奉献
} set {
Phi_resource = value; } } }
public struct KuaiZi//筷子 {
K_status exist;//存在状态 K_status ordered;//预约状态
public K_status Exist { get {
return exist; } set {
exist = value; } }
public K_status Ordered { get {
return ordered; } set {
ordered = value; } …… 此处隐藏:3084字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用文档]李践-有效提升销售的12大黄金法则8-大
- [实用文档]党支部换届工作方案
- [实用文档]2013年下期电子商务专业部宣传工作计划
- [实用文档]方庄一矿通风、钻探绩效工资考核管理办
- [实用文档]项目一 认识企业物流认识企业物流
- [实用文档]MBI_Display_产品蓝图规画
- [实用文档]北京市建筑业劳务作业人员普法维权培训
- [实用文档]锅炉燃烧调整与运行优化
- [实用文档]4支付结算业务的核算
- [实用文档]米什金_货币金融学_第9版各章学习指导
- [实用文档]水泥混凝土路面硬化工程施工组织设计
- [实用文档]钢筋工程安全技术交底书
- [实用文档]关于公布华中师范大学本科毕业论文
- [实用文档]太原市园林绿化施工合同范本 2
- [实用文档]周日辅导 初中英语分类复习单项选择题(
- [实用文档]第四章 文化经纪人的管理形式 第二节
- [实用文档]学宪法讲宪法竞赛题库
- [实用文档]《数值计算方法》期末考试模拟试题二
- [实用文档]爱词霸学英语:每日一句( 十月)
- [实用文档]2014年国家公务员面试:无领导小组讨论
- 新课程主要理念和教学案例分析汇编(24
- 英国人的快乐源于幸福的家庭生活
- 七年级上册第一次月考模拟数学试卷
- 真丝及仿真丝的种类有哪些?
- 【最新】华师大版八年级数学下册第十六
- 高中英语3500个必背单词
- 我可以接受失败,但我不能接受放弃!
- 最近更新沪科版八年级物理上册期末试卷
- 绿化工作先进乡镇事迹材料
- 鲁教版九年级上册思想品德教学计划
- 英语音标的分类
- 地下室底板无梁楼盖与普通梁板结构形式
- 美容师黄金销售话术
- 雅思写作满分作文备考方法
- 血清甲状腺激素测定与高频彩色多普勒超
- 1度浅析装修对室内空气品质的影响
- 2017-2022年中国汞矿行业深度分析与投
- 计算机二级VB公共基础知识
- (何勇)秸秆禁烧_重在寻找出路
- 内外墙抹灰工程分包施工合同1




