资源简介

实验一 进程调度 实验二 银行家算法 实验三 内存管理 实验四 磁盘调度

资源截图

代码片段和文件信息

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;


public class Banker {

    int available_resour[] = {10 15 12};


    int PCB_NUM = 5;//进程数
    int RESOURCE_NUM = 3;//资源种类数
    PCB[] pcb = new PCB[PCB_NUM];

    double pTime;     //时间片
    int run;       //当前运行的进程,没有则为-1
    long lastTime;  //每次调度程序都记录当前时间
    long beginTime;//程序开始时间

    private class PCB {
        String name; //进程名
        int need_resour[] = new int[RESOURCE_NUM];   //需要的资源
        int allocated_resour[] = new int[RESOURCE_NUM];   //已用资源
        int apply_resour[] = new int[RESOURCE_NUM];//当前申请的资源

        char state;     //进程状态

        void applyResource() {
            Random r = new Random();
            for (int i = 0; i < apply_resour.length; i++) {
                if (need_resour[i] <= 1) {//需要的剩下1或0时直接申请,不随机
                    apply_resour[i] = need_resour[i];
                } else {
                    apply_resour[i] = r.nextInt(need_resour[i] + 4);
                }
            }
            System.out.printf(name + “申请了“ + arrayToString(apply_resour) + “: “);
        }
    }

    boolean isAllFinished() {
        for (int i = 0; i < PCB_NUM; i++) {
            if (pcb[i].state != ‘F‘) return false;
        }
        return true;
    }

    boolean isFinished(int check) {
        for (int i = 0; i < RESOURCE_NUM; i++) {
            if (pcb[check].need_resour[i] != 0) return false;
        }
        return true;
    }


    void init() {

        run = -1;

        Random r = new Random();

        for (int n = 0; n < PCB_NUM; n++) {
            pcb[n] = new PCB();
            pcb[n].name = Character.toChars(65 + n)[0] + ““;
            for (int m = 0; m < RESOURCE_NUM; m++) {
                pcb[n].need_resour[m] = r.nextInt(available_resour[m] / 2) + 1;//需要的资源
            }

        }

        for (int n = 0; n < PCB_NUM; n++) {
            for (int m = 0; m < RESOURCE_NUM; m++) {
                pcb[n].allocated_resour[m] = 0;
                pcb[n].apply_resour[m] = 0;
            }
            pcb[n].state = ‘W‘;
        }
    }


    String arrayToString(int[] array) {
        String result = ““ + array[0];
        for (int i = 1; i < array.length; i++) {
            result += “ “ + array[i];
        }
        return result;
    }


    void print() {
        System.out.println(“\n====================================================“);
        System.out.printf(“进程名  需要资源(A B C)  已用资源(A B C)  进程状态\n“);
        for (int i = 0; i < PCB_NUM; i++) {
            System.out.printf(“%-6s  %-17s  %-17s  %-8s\n“ pcb[i].name arrayToString(pcb[i].need_resour)
                     arrayToString(pcb[i].allocated_resour) pcb[i].state);
        }
        System.out.println(“此时系统资源(A B C):“ + arrayToString(available_resour));
        System.out.println(“====================================================\n“);
        lastTime = Syst

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-01-20 13:09  操作系统实验报告\
     目录           0  2017-11-20 16:31  操作系统实验报告\out\
     文件         166  2017-11-17 09:38  操作系统实验报告\out\Banker$1.class
     文件        1522  2017-11-17 09:38  操作系统实验报告\out\Banker$PCB.class
     文件        7182  2017-11-17 09:38  操作系统实验报告\out\Banker.class
     文件       76361  2017-11-20 16:19  操作系统实验报告\out\disc.exe
     文件        7856  2017-11-20 16:19  操作系统实验报告\out\disc.o
     文件          82  2017-11-19 13:48  操作系统实验报告\out\input.txt
     文件       74281  2017-11-17 22:32  操作系统实验报告\out\memory.exe
     文件        6128  2017-11-17 22:32  操作系统实验报告\out\memory.o
     文件         199  2017-11-16 10:40  操作系统实验报告\out\ProcessController$1.class
     文件         763  2017-11-16 10:40  操作系统实验报告\out\ProcessController$PCB.class
     文件        7716  2017-11-16 10:40  操作系统实验报告\out\ProcessController.class
     目录           0  2017-12-10 16:43  操作系统实验报告\src\
     文件       11024  2017-11-20 17:13  操作系统实验报告\src\Banker.java
     文件        5350  2017-11-20 16:19  操作系统实验报告\src\disc.c
     文件        4713  2017-11-20 17:12  操作系统实验报告\src\memory.c
     文件       10465  2017-11-20 17:13  操作系统实验报告\src\ProcessController.java
     文件       10695  2017-12-10 16:41  操作系统实验报告\src\ProcessMemoryController.java
     文件     1193472  2018-01-20 13:07  操作系统实验报告\实验报告.doc

评论

共有 条评论