• 中国计算机学会会刊
  • 中国科技核心期刊
  • 中文核心期刊

J4 ›› 2016, Vol. 38 ›› Issue (02): 269-276.

• 论文 • 上一篇    下一篇

哲学家就餐问题的算法实现

高升,陈月峰   

  1. (广东海洋大学信息学院,广东 湛江 524088)
  • 收稿日期:2015-04-29 修回日期:2015-07-17 出版日期:2016-02-25 发布日期:2016-02-25
  • 基金资助:

    广东海洋大学卓越计划项目

Implementation of an algorithm for the
dining philosophers problem 

GAO Sheng,CHEN Yuefeng   

  1. (College of Information,Guangdong Ocean University,Zhanjiang 524088,China)
  • Received:2015-04-29 Revised:2015-07-17 Online:2016-02-25 Published:2016-02-25

摘要:

针对哲学家就餐问题这一操作系统中进程间通信的经典范例,设计了该范例的一个具有代表性的算法的技术实现方案。方案以Linux操作系统作为运行平台,通过进程而不是线程来体现哲学家的并发行为特征,以自动和随机相结合的灵活自然的人机交互模式模拟哲学家的状态,控制其状态切换;提出了两种形式的哲学家状态监控程序,它们能够生动、直观、准确地表达出哲学家状态的变化过程。字符形式的监控程序在字符终端和图形终端中均可使用,主要面向以超级终端登录到多用户Linux系统的用户;利用QT5开发的动画形式的监控程序适合在桌面Linux的图形终端中使用。

关键词: 操作系统, 进程同步与互斥, 信号量, 共享存储器, 哲学家就餐问题, 状态监控程序

Abstract:

Aiming at the dining philosophers problem, a wellknown classical example of the inter process of communication in the operating system field, this paper designs and presents a technical implementation scheme for a representative algorithm. The scheme takes Linux as its supporting platform, and the scheme reflects the characteristics of the concurrent behaviors of philosophers through processes rather than threads. The state of the philosophers and the switch between two states are emulated and controlled by the combination of automatic and random modes, which is a flexible and natural humancomputer interaction mode. Two forms of state monitoring programs are presented, which can express the state of philosophers in a vivid, direct and accurate way. The characterbased monitoring program can be used in both the character terminal and the graphic terminal, and is mainly used for those users who log in the multiuser Linux systems. The animationbased monitoring program is suitable for the desktop Linux users with graphic terminal.

Key words: operating system;process synchronization and mutual exclusion;semaphore;shared memory;dining philosophers problem;state monitoring program