编程模拟多进程共享临界资源概要

上传人:今*** 文档编号:108090691 上传时间:2019-10-22 格式:DOCX 页数:21 大小:144.59KB
返回 下载 相关 举报
编程模拟多进程共享临界资源概要_第1页
第1页 / 共21页
编程模拟多进程共享临界资源概要_第2页
第2页 / 共21页
编程模拟多进程共享临界资源概要_第3页
第3页 / 共21页
编程模拟多进程共享临界资源概要_第4页
第4页 / 共21页
编程模拟多进程共享临界资源概要_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《编程模拟多进程共享临界资源概要》由会员分享,可在线阅读,更多相关《编程模拟多进程共享临界资源概要(21页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计课程设计名称:编程模拟多进程共享临界资源专 业 班 级 : xxx 学 生 姓 名 : xxx 学 号 : xxx 指 导 教 师 : xxx 课程设计时间: xxx 软件工程 专业课程设计任务书学生姓名专业班级学号题 目编程模拟多进程共享临界资源课题性质其它课题来源自拟课题指导教师刘於勋同组姓名主要内容要求产生3 个进程:1、两个进程模拟需要进入临界区的用户进程,当需要进入临界区时,显示:“进程x请求进入临界区”,同时向管理进程提出申请;申请返回,表示进入了临界区。在临界区中等待一段随机时间,并显示:“进程x 正在临界区”;当时间结束,显示:“进程x 退出临界区”,同时向管理进

2、程提出退出申请;当申请返回,显示:“进程x 已退出临界区。”2、一个进程作为原语的管理进程,接受其他进程的临界区进入请求:如果允许进入,则设置相应变量,然后返回;如果不允许进入,则进入循环等待,直到允许为止;3、对临界区的访问应遵循空闲让进、忙则等待、有限等待、让权等待的准则。4、进程间通信可以采用信号、消息传递、管道或网络通信方式。任务要求 理解多进程共享临界资源的原理,并编程实现参考文献任满杰等操作系统原理实用教程 电子工业出版社 2006汤子瀛 计算机操作系统(修订版)西安电子科技大学出版社 2001张尧学 史美林计算机操作系统教程实验指导 清华大学出版社 2000 罗宇等 操作系统课程

3、设计机械工业出版社 2005审查意见指导教师签字:教研室主任签字: 2015 年 7 月 6 日 信息科学与工程 学院课程设计成绩评价表课程名称:操作系统原理设计题目:编程模拟多进程共享临界资源专业:软件工程 班级: 姓名: 学号:序号评审项目分 数满分标准说明1内 容思路清晰,语言表达准确,概念清楚,论点正确;设计方法科学,分析归纳合理;结论严谨,设计有应用价值。任务饱满,工作量适中2创 新内容新颖,设计能反映新技术,对前人工作有改进或突破,或有独特见解3完整性、实用性整体构思后合理,理论依据充分,设计完整,实用性强4数据准确、可靠数据准确,算法设计合理5规 范 性设计格式、绘图、实验数据、

4、标准的运用等符合有关标准和规定6纪 律 性遵守课程设计纪律,听从指导教师安排,设计过程态度认真7答 辩准备充分,思路清晰、论点正确、对设计方案理解深入,问题回答有理有据,简明正确总 分综合意见 指导教师 2015 年 7 月 12 日1 需求分析要求产生3 个进程:1、两个进程模拟需要进入临界区的用户进程,当需要进入临界区时,显示:“进程x请求进入临界区”,同时向管理进程提出申请;申请返回,表示进入了临界区。在临界区中等待一段随机时间,并显示:“进程x 正在临界区”;当时间结束,显示:“进程x 退出临界区”,同时向管理进程提出退出申请;当申请返回,显示:“进程x 已退出临界区。”2、一个进程作

5、为原语的管理进程,接受其他进程的临界区进入请求:如果允许进入,则设置相应变量,然后返回;如果不允许进入,则进入循环等待,直到允许为止;3、对临界区的访问应遵循空闲让进、忙则等待、有限等待、让权等待的准则。4、进程间通信可以采用信号、消息传递、管道或网络通信方式。2 概要设计流程图:图3 运行环境运行环境:Windows 84 开发工具和编程语言开发工具:JDK1.7,EditPlus3.8编程语言:java5 详细设计5.1程序界面import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;

6、import javax.swing.border.LineBorder;public class MainFrame extends JFrame implements FocusListener JTextArea jta = new JTextArea();/多行文本框static JTextField jtf = new JTextField2;/单行文本框static JButton jb = new JButton2;/按钮ThreadShow ts = new ThreadShow();/ 界面设计public MainFrame() super(模拟多进程共享临界资源);/题目

7、命名JLabel jl = new JLabel2;for (int i = 0; i jtf.length; i+) jtfi = new JTextField(12);jtfi.addFocusListener(this);jl0 = new JLabel(第一进程的名称 : );/设置标签名称,显示进程jl1 = new JLabel(第二进程的名称 : );jb0 = new JButton(模拟开始);/设置按钮名称,控制程序的开始和结束jb1 = new JButton(模拟结束);JMenuBar mb = new JMenuBar();Container cont = this

8、.getContentPane();/初始化一个容器cont.setLayout(new BorderLayout();/设置布局管理器JPanel jp1 = new JPanel();JPanel jp2 = new JPanel();jp1.setLayout(new GridLayout(0, 1);for (int i = 0; i jtf.length; i+) /添加文本区JPanel temp = new JPanel();temp.add(jli);temp.add(jtfi);jp1.add(temp);for (int i = 0; i jb.length; i+)/添加

9、按钮jp2.add(jbi);jp1.add(jp2);jp1.setBorder(new LineBorder(new Color(0, 0, 0), 10);jp1.setBorder(new LineBorder(new Color(238, 238, 238), 10);cont.setLayout(new BorderLayout();cont.add(jp1, BorderLayout.NORTH);jta.setEnabled(true);JScrollPane js = new JScrollPane(jta,ScrollPaneConstants.VERTICAL_SCROL

10、LBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); jta.setBorder(new LineBorder(new Color(34, 57, 12), 1);js.setBorder(new LineBorder(new Color(238, 238, 238), 10);cont.add(js, BorderLayout.CENTER);this.setSize(335, 435);/ 定义界面大小this.setDefaultCloseOperation(3);/ 设置当前界面显示时相对屏幕的位置this.s

11、etLocation(Toolkit.getDefaultToolkit().getScreenSize().width / 2 - 175,Toolkit.getDefaultToolkit().getScreenSize().height / 2 - 200);this.setResizable(false);/窗口大小不可变this.setVisible(true);/显示当前窗口jb1.addActionListener(new ActionListener() / jb1添加监听器public void actionPerformed(ActionEvent arg0) if (ts

12、.tu1 != null & ts.tu1.isAlive()ts.tu1.interrupt();if (ts.tu2 != null & ts.tu2.isAlive()ts.tu2.interrupt();System.exit(0););jb0.addActionListener(new ActionListener() / jb0添加监听器public void actionPerformed(ActionEvent arg0) for (int i = 0; i jtf.length; i+)jtfi.setEditable(false);MainFrame.jb0.setEnab

13、led(false);jta.setText();ts.run(jtf0.getText().trim(), jtf1.getText().trim(), jta););public static void main(String ares) new MainFrame();public void focusGained(FocusEvent arg0) / 当用户点击文本框时,文本框就把当前内容清空JTextField jtf = (JTextField) arg0.getSource();jtf.setText();public void focusLost(FocusEvent arg0) 5.2临界区及进程管理模块class ThreadManager implements Runnable / 指向要管理得临界资源ThingSome obj;/ 记录obj是否已有使用者

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号