资源简介

多级反馈队列进程调度GUI实现,使用Swing编写的一个可视化界面,支持进程的动态创建,进程调度过程可视化。

资源截图

代码片段和文件信息

package com.wuchangi;

/*
 * @program: MFQ
 * @description: MFQSimulation
 * @author: WuchangI
 * @create: 2018-05-20-22-04
 **/


import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.util.Arrays;
import java.util.linkedList;


public class MFQSimulation
{
    private static Jframe frame = new Jframe(“进程调度模拟(多级反馈队列)“);
    private static JPanel panel = new JPanel();
    private static JScrollPane scrollPane = new JScrollPane(panel ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

    //菜单组件
    private static JMenuBar menuBar = new JMenuBar();
    private static JMenu processSettingsMenu = new JMenu(“Process Settings“);
    private static JMenuItem createProcessItem = new JMenuItem(“Create A Process“);
    private static JMenuItem startMFQItem = new JMenuItem(“Start Scheduling“);
    private static JMenuItem stopMFQItem = new JMenuItem(“Stop Scheduling“);
    private static JMenuItem setTimeSliceItem = new JMenuItem(“Set Time Slice“);
    private static JMenuItem exitSystemItem = new JMenuItem(“Exit“);
    private static JMenu helpMenu = new JMenu(“Help“);
    private static JMenuItem aboutItem = new JMenuItem(“About“);

    //设置优先级最高(即49)的队列的时间片大小默认值(单位:秒)
    public static double timeSlice = 0.5;

    public static double PCBsQueuesTimeSlice[] = new double[50];

    //多级反馈队列
    public static PCBsQueue[] PCBsQueues = new PCBsQueue[50];

    //记录已经使用的pid
    public static int[] pidsUsed = new int[101];

    //当前内存中的进程数
    public static int currentPCBsNum = 0;

    //内存中能够容纳的最大进程数(这里取决于可分配的pid的个数)
    public static final int PCBS_MAX_NUM = 100;

    //是否停止调度
    public static boolean isStopScheduling;

    //很短的main函数
    public static void main(String[] args)
    {
        new MFQSimulation().initWindow();
    }



    //执行窗口初始化
    public void initWindow()
    {
        //设置窗口风格为Windows风格
        setWindowsstyle();

        //创建菜单栏
        processSettingsMenu.add(createProcessItem);
        processSettingsMenu.addSeparator();
        processSettingsMenu.add(startMFQItem);
        processSettingsMenu.addSeparator();
        processSettingsMenu.add(stopMFQItem);
        processSettingsMenu.addSeparator();
        processSettingsMenu.add(setTimeSliceItem);
        processSettingsMenu.addSeparator();
        processSettingsMenu.add(exitSystemItem);

        helpMenu.add(aboutItem);

        menuBar.add(processSettingsMenu);
        menuBar.add(helpMenu);

        frame.setJMenuBar(menuBar);

        initMemory();

        panel.setBorder(BorderFactory.createLineBorder(Color.BLACK));

        frame.setContentPane(scrollPane);
        frame.setSize(800 700);
        frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
        frame.setVisible(true);


        //为控件绑定监听器
        setComponentsListen

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        289  2018-05-26 00:19  MFQTest\.idea\artifacts\MFQTest_jar.xml

     文件        277  2018-05-24 09:02  MFQTest\.idea\misc.xml

     文件        254  2018-05-24 09:02  MFQTest\.idea\modules.xml

     文件      46524  2018-05-26 00:25  MFQTest\.idea\workspace.xml

     文件        423  2018-05-24 09:02  MFQTest\MFQTest.iml

     文件        644  2018-05-24 12:25  MFQTest\out\production\MFQTest\com\wuchangi\DrawLinePanel.class

     文件        639  2018-05-24 12:25  MFQTest\out\production\MFQTest\com\wuchangi\MFQSimulation$1.class

     文件        644  2018-05-24 12:25  MFQTest\out\production\MFQTest\com\wuchangi\MFQSimulation$2.class

     文件        643  2018-05-24 12:25  MFQTest\out\production\MFQTest\com\wuchangi\MFQSimulation$3.class

     文件        638  2018-05-24 12:25  MFQTest\out\production\MFQTest\com\wuchangi\MFQSimulation$4.class

     文件        660  2018-05-24 12:25  MFQTest\out\production\MFQTest\com\wuchangi\MFQSimulation$5.class

     文件        889  2018-05-24 12:25  MFQTest\out\production\MFQTest\com\wuchangi\MFQSimulation$6.class

     文件       2298  2018-05-24 12:25  MFQTest\out\production\MFQTest\com\wuchangi\MFQSimulation$7.class

     文件       9156  2018-05-24 12:25  MFQTest\out\production\MFQTest\com\wuchangi\MFQSimulation.class

     文件       1261  2018-05-24 09:07  MFQTest\out\production\MFQTest\com\wuchangi\PCB.class

     文件       1042  2018-05-24 09:07  MFQTest\out\production\MFQTest\com\wuchangi\PCBsQueue.class

     文件         65  2018-05-26 00:19  MFQTest\out\production\MFQTest\meta-INF\MANIFEST.MF

     文件      15848  2018-05-24 12:23  MFQTest\src\com\wuchangi\MFQSimulation.java

     文件       1215  2018-05-24 09:06  MFQTest\src\com\wuchangi\PCB.java

     文件        751  2018-05-24 09:07  MFQTest\src\com\wuchangi\PCBsQueue.java

     文件         65  2018-05-26 00:19  MFQTest\src\meta-INF\MANIFEST.MF

     目录          0  2018-05-24 12:25  MFQTest\out\production\MFQTest\com\wuchangi

     目录          0  2018-05-24 09:07  MFQTest\out\production\MFQTest\com

     目录          0  2018-05-26 00:19  MFQTest\out\production\MFQTest\meta-INF

     目录          0  2018-05-26 00:24  MFQTest\out\artifacts\MFQTest_jar

     目录          0  2018-05-26 00:19  MFQTest\out\production\MFQTest

     目录          0  2018-05-24 12:23  MFQTest\src\com\wuchangi

     目录          0  2018-05-26 00:19  MFQTest\.idea\artifacts

     目录          0  2018-05-24 09:03  MFQTest\.idea\inspectionProfiles

     目录          0  2018-05-26 00:19  MFQTest\out\artifacts

............此处省略10个文件信息

评论

共有 条评论