操作系统原理课程设计.pdf
《操作系统原理课程设计.pdf》由会员分享,可在线阅读,更多相关《操作系统原理课程设计.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 操作系统原理课程设计操作系统原理课程设计 提优论文提优论文 题 目:“哲学家就餐问题”模拟系统 姓 名:尹岩,刘宇凡,丁磊 学 院:信息科技学院 专 业:计算机科学技术系 班 级:计科 61 学 号:1926103、1926110、1926101 指导教师:姜海燕 职称:副教授 2009 年 3 月 12 日 “哲学家就餐问题”模拟系统 计科 61 丁磊,尹岩,刘宇凡 指导教师:姜海燕 摘要:现代操作系统引入并发程序设计技术之后,程序的执行不再是顺序的。在多个进程并发运行的过程中,进程之间可能产生相互制约的关系,即竞争和协作。而如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能
2、引发的事件,就会出现死锁。操作系统中经典的 5 位哲学家吃面问题正反映了进程并发执行这一情况。在问题中,哲学家思考就餐等待的过程正体现了进程在并发执行中对临界资源的互斥访问,同时也因此可能出现死锁现象。本课程设计所完成的正是对“哲学家就餐问题”的模拟。此系统根据操作系统中并发进程、临界区、同步等基本概念及理论进行设计,用 C#语言实现,在模拟实现“哲学家就餐问题”的基础上还提供了解决死锁的三种基本方法。本系统较好的模拟了“哲学家就餐问题”,对于进程互斥、临界区、死锁等问题的深入理解有重要意义。关键字:操作系统 哲学家就餐问题 模拟 c#The Simulation System of The
3、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 mus
4、t 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
5、 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.一、研究目的与意义:本课程设计通过模拟计算机操作系统中经典的“哲学家就餐问题”,巩固在操作系统原理课上所学的知识,加深对操作系统中
6、进程互斥、临界区、死锁等问题的认识和理解,同时又了解了软件生成的流程、方法以及思想,提高了分析设计以及编程的能力,最后将此作品用于课堂理论教学的演示之用,增强课堂教学的趣味性。二、理论分析:现代操作系统引入并发程序设计技术之后,程序的执行不再是顺序的,一个程序为执行完而另一个程序就已经开始执行,程序外部的顺序特性消失,程序与计算不再一一对应。于是人们引入进程来描述这种变化。一组进程在执行时间上是重叠的,进程即并发执行。在多个进程并发运行的过程中,进程之间可能是无关的,也可能是交互的。交互进程之间可能产生的关系,包括竞争和协作。并发进程中与共享变量有关的程序段成为临界区,共享变量所代表的资源成为
7、临界资源。有多种方法可以实现对临界区、临界资源的管理。其中最基本的方法是设置相应的信号量和P、V操作。在并发进程执行的过程中,对共享资源的竞争可能产生死锁问题,既一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限期陷入僵持的局面。解决死锁问题的方法包括:通过指定资源申请占有及释放的策略来彻底防止死锁的发生;根据特殊算法决定资源分配和去配策略,避免死锁的发生;对死锁情况进行检测并解除。综上,本模拟程序应当模拟进程的并发执行,对临界资源的互斥访问和死锁情况的发生和防止。三、核心技术:本模拟程序的核心技术是模拟进程的并发执行和对临界资源的互斥访问。模拟程序的编写过程所使用
8、的技术路线为:由于算法简单,不定义独立的 P、V 操作,而是将之融入对资源的申请及释放操作之中。对于进程的模拟对象即“哲学家”只定义必要的状态包括“思考”(不申请资源的状态)、“等待”(申请资源但无法获得全部资源的等待状态)和“吃面”(获得所申请的所有资源的运行状态)以及占有资源的数量。而对于资源即“筷子”,除了确定资源是否被利用的状态之外定义了资源是否有其他的申请者这一状态值。所有状态值都是用枚举表示。防止死锁产生的策略采用方法为:如果不能申请并占有到两支“筷子”(所有的资源),那么就不占有任何一支。这个方法实际上是破坏了产生死锁的第二个条件即“占有和等待条件”。对于 Windows 界面应
9、用程序中的绘图(及重绘),采用了根据“哲学家”和“筷子”的状态信息进行操作的方法。四、功能设计及结构设计:1)功能设计:在这个模拟程序中,使用者需要的功能非常简单:根据使用者控制“哲学家拿筷子”和“哲学家放下筷子”这两个动作,实现五位“哲学家”和五支“筷子”状态的变化。同时,使用者可以选择改变资源分配策略,防止死锁或不防止死锁。最后,使用者还可以退出程序或重置“哲学家”及“筷子”的状态。下图为模拟系统(程序)的用例图:2)结构设计:A.基本数据结构、枚举类型及类的定义:哲学家结构体以及筷子结构体。public struct Phi/哲学家:状态和持有资源状态 status Phi_status
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 原理 课程设计
限制150内