- 3
- 0
- 约3.6千字
- 约 7页
- 2017-11-07 发布于福建
- 举报
哲学家就餐问题探究和模拟
哲学家就餐问题探究和模拟 摘要:如今良好的交互性、并行性、同步性早已是大多数计算机操作系统不可或缺的功能,无论是基于单核还是多核计算机,倘若没有以上几个性能,则毫无疑问是糟糕的操作系统。哲学家就餐问题是操作系统研究领域中一个著名而有趣的问题,是从计算机实现伪同步并行功能研究中演化而来的经典进程间通讯问题,对研究同步性有很大的帮助和启发。该文探究了哲学家问题的原理,并使用C语言对其进行了模拟。
关键词:操作系统同步性;死锁竞争;哲学家就餐问题
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)15-3516-06
1965年,著名的数学家Dijkstra提出了一个他称为“哲学家就餐”的问题,并亲自解决之。自那时起,每个发明同步原语的人都希望通过解决此问题来展示其同步原语的精妙之处。
同步原语这一概念,被用于描述进程的执行动作,在操作系统中的地位举足轻重,其对实现操作系统程序的并行性和同步性有着奠基性的作用。那么,什么是同步原语呢?
在计算机的操作系统中,程序一般被抽象成进程这一概念。在一台计算机中,所有存在的进程要实现计算、访问资源等一系列复杂的操作。
当今计算机能够依靠相当少的CPU(相对于进程庞大的数量来说,一两个或者四个CPU简直少得可怜)实现程序并行的功能正是基于同步原语:计算机内的进程都被分为运行时间相同的原子执行动作,即一个复杂的动作由许多子动作组成,这些子动作不能再分成更小的子动作。同步原语中的原语便是指这些子动作。
对于CPU来说,每次只执行一个原子动作,这个原子动作不一定是来自于相同的进程,一般按照某种规则来运行原子动作,比如在一段时间内,一个进程只能占用CPU运行若干个属于它自已的原子动作。由于CPU的运行速度非常快,当下普通CPU其一秒内的运算速度都可以以亿为单位计量,因此在一段时间内,可以让很多进程都完成一部分原子动作,在人类的角度看来,就好像程序并行运行了。
在这里,就可以看到同步原语的必要性。若无同步原语的话,进程便会胡作非为了,因为计算机没有规定一个进程能执行动作到何种地步,对于进程间的竞争问题和通讯问题,即使有了很好的策略也无法控制进程执行的结果。例如,对于一个缓冲区,一个进程获得了它的修改权,但是操作系统没有确定原子动作,这个进程不知道会执行到哪一步,于是,在操作系统还没有来得及告知其他进程时,就可能会有另一个无知的进程也获得了该缓冲区的修改权,从而与前一个进程一同修改缓冲区的内容,这将会导致世界大乱。
同时,毫无疑问,在这里,存在一个很现实的问题。
正如上所述,计算机中的进程数往往多得惊人,光是操作系统本身就需要并行运行众多进程,再加上用户开启的各种应用进程(比如用户想听MP3歌曲,便开启了一个MP3播放器,这一个播放器可能包含不止一个进程),其数目可能会非常大。然而,计算机的硬件设备却极其有限,例如,目前的普通计算机只有一或者两个中央处理器(CPU),只有有限的内存,只有一个显示器,这么多进程要同时使用这些相对来说少得可怜的硬件设备,若没有一个优秀的访问机制,程序间便会出乱子。例如客户开启了一个文本编辑进程用来编写一篇文章,在某个时候,这篇文章的代码被保存在内存中的一些位置上,过了一段时间,这个客户又开启了一个视频播放器,而原先的文本编辑进程仍没有关闭,播放器要使用的内存位置正好与编辑器所占用的位置有冲突,此时该如何是好?当文本编辑程序不适用CPU而让视屏播放器使用CPU时,该如何保存文本编辑器的记录?文本编辑器修改了内存上的内容,视屏播放器如何知道?如果这些进程不相互沟通各自的信息,那相信该用户不久便会精神崩溃。
因此,进程间必须实现良好的信息共享策略,哲学家就餐问题便是研究这类策略的一个经典抽象数学问题。
1 哲学家就餐问题分析
说起哲学家就餐问题,就不得不与计算机操作系统中的进程间通讯(ipc)问题挂上钩。
在进程间通讯问题中,有一个简单而基本的模型,就是存在多个进程,而只存在一个缓冲区。非常明显,这个缓冲区的数据可以被多个进程读取,这不会造成任何后果。但是,一旦有进程要改写这个缓冲区的内容,那麻烦就来了,首先,不能允许多个进程同时改写缓冲区的内容,因为一旦有多个进程同时修改,那该以哪个进程的操作为准呢?并且每个进程获取的缓冲区内容都不是最新的,每个进程也不知道其他进程相对缓冲区内容做什么手脚,最终缓冲区中的内容也不知道会是什么,因为这些进程会不顾进程的感受,自顾自的往缓冲区储存自已修改后的数据。
对于上文所描述的进程通讯问题,早已有众多的研究和解决方案诞生于世,在这里就不一一赘述。
哲学家就餐问题则是对进程间通讯问题的一个发展,其有利于解决进程间由竞争而产
您可能关注的文档
最近下载
- 如何做到血液透析充分性.ppt VIP
- 2025年吉林事业单位招聘考试卫生类医学影像专业知识试卷.docx VIP
- 2026版事业单位笔试-吉林-吉林医学影像(医疗招聘)历年参考题库含答案解析5套试卷版.docx VIP
- 电外科安全知识课件下载.pptx VIP
- 2025年吉林省卫生事业单位招聘考试(医学影像专业)历年参考题库含答案详解(5卷).docx VIP
- 中国影视音乐——哪吒电影音乐+课件-2025-2026学年高中音乐人音版(2019)+必修+音乐鉴赏.pptx VIP
- 哪吒V汽车说明书.docx VIP
- 人教版高中英语必修三单词默写版.doc VIP
- 2020新人教版高中英语必修三单词中译英默写.pdf VIP
- DB22T 2287-2015 蓝莓矿质营养诊断技术要求.docx VIP
原创力文档

文档评论(0)