进程管理系统

本文档详述了一个进程管理系统的设计,涵盖了FCFS(先来先服务)、SPF(最短处理时间优先)和RR(时间片轮转)三种调度算法。系统包含至少5个进程,并强调了PCB(进程控制块)的定义。通过示例代码,阐述了如何体现进程的动态申请和调度过程,同时要求输出包括进程调度序列、进入系统时间、运行时间、完成时间、周转时间和带权周转时间在内的关键信息,以展示各种算法的特性。
摘要由CSDN通过智能技术生成

要求:

  1. 设计一个完整的进程调度系统,至少包含三种常用的算法(FCFS、SPF、静态优先权、响应比、时间片轮转),系统中至少包含5个进程,并且能够体现进程的动态申请;
  2. 定义PCB;
  3. 结果要能够显示出进程的调度序列及进入系统的时间、运行时间、完成时间、周转时间、带权周转时间、优先权等必要信息;
  4. 设计的输入数据要能体现算法的思想

Code:

PCB:

package pms_os.entity;

public class PCB {
   
    private String Name;  //进程名称
    private boolean has_serviced;  //标记是否执行
    private int arrive_Time;  //进程到达时间
    private int service_Time;  //进程服务时间
    private int serviced_Time;  //进程已服务时间
    private int start_Time;  //进程服务开始时间
    private int end_Time;  //进程服务结束时间
    private double around_Time;  //进程周转时间
    private double around_Right_Time;  //带权周转时间

    //重新toString方法,便于输出
    @Override
    public String toString() {
   
        return "进程名称:" + Name +
                ", 到达时间:" + arrive_Time +
                ", 服务时间:" + service_Time +
                ", 开始执行时间:" + start_Time +
                ", 完成时间:" + end_Time +
                ", 周转时间:" + around_Time +
                ", 带权周转时间:" + around_Right_Time;
    }

    //各属性的set, get方法
    public String getName() {
   
        return Name;
    }

    public void setName(String name) {
   
        Name = name;
    }

    public boolean ishas_serviced() {
   
        return has_serviced;
    }

    public void sethas_serviced(boolean has_serviced) {
   
        this.has_serviced = has_serviced;
    }

    public int getArrive_Time() {
   
        return arrive_Time;
    }

    public void setArrive_Time(int arrive_Time) {
   
        this.arrive_Time = arrive_Time;
    }

    public int getService_Time() {
   
        return service_Time;
    }

    public void setService_Time(int service_Time) {
   
        this.service_Time = service_Time;
    }

    public int getServiced_Time() {
   
        return serviced_Time;
    }

    public void setServiced_Time(int serviced_Time) {
   
        this.serviced_Time = serviced_Time;
    }

    public int getStart_Time() {
   
        return start_Time;
    }

    public void setStart_Time(int start_Time) {
   
        this.start_Time = start_Time;
    }

    public int getEnd_Time() {
   
        return end_Time;
    }

    public void setEnd_Time(int end_Time) {
   
        this.end_Time = end_Time;
    }

    public double getAround_Time() {
   
        return around_Time;
    }

    public void setAround_Time(double around_Time) {
   
        this.around_Time = around_Time;
    }

    public double getAround_Right_Time() {
   
        return around_Right_Time;
    }

    public void setAround_Right_Time(double around_Right_Time) {
   
        this.around_Right_Time = around_Right_Time;
    }
}

Main:

package pms_os;

import pms_os.entity.PCB;
import pms_os.service.*;

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
   
    static ArrayList<PCB> p_list = new ArrayList<PCB>();  // 用于存储进程的列表
    static Scanner input = new Scanner(System.in);  // 用于键盘输入

    // 主程序
    public static void main(String[] args) {
   
        // 创建Main对象便于调用方法
        Main os_main = new Main();

        // 提示信息
        System.out.println("欢迎使用进程管理系统,请按照提示输入进程信息。");

        boolean is_exit = false;  // 标记是否选择退出
        boolean is_firsr = true;  // 标记是第一次运行
        boolean is_restar = false;  // 标记是否重新输入数据

        while (true) {
   
            if (is_firsr || is_restar) {
     // 若为第一次或重新输入数据
                p_list.clear();  // 清空列表
                os_main.Input();  // 调用Input方法,获取数据
            }
            while (true) {
   
                is_firsr = false;  // 第一次更改为false
                is_restar = false;  // 重新输入初始化为false

                os_main.show();  // 调用方法提示系统信息
                int choose = Integer.parseInt(input.nextLine());  // 输入选择执行的选项

                ArrayList<PCB> list1 <
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java进程管理系统是一个用于管理操作系统中的进程的软件程序。它提供了一组功能来创建、终止、调度和监视进程。 首先,Java进程管理系统可以创建新的进程。它允许用户使用一些指定的参数和设定来启动新的进程。这些参数可能包括进程的优先级、内存分配、代码路径等。通过Java进程管理系统,用户可以方便地创建并管理多个进程。 其次,Java进程管理系统可以终止进程。在某些情况下,用户可能需要中止正在运行的进程,例如当进程出现错误或者需要释放系统资源时。Java进程管理系统允许用户通过指定进程的标识符或其他特定信息,来终止指定进程。 此外,Java进程管理系统还提供了进程调度功能。它可以基于一些调度算法,如先来先服务(FCFS)、时间片轮转等,来决定进程的执行顺序。用户可以通过Java进程管理系统设置进程的优先级,从而影响进程的调度顺序。 最后,Java进程管理系统可以监视进程的运行状态。它可以提供进程的一些重要信息,如进程的ID、执行状态等。通过Java进程管理系统,用户可以实时监视进程,并及时获得相关信息。 总结而言,Java进程管理系统是一个用于管理操作系统进程的软件程序。它提供了创建、终止、调度和监视进程的功能。通过Java进程管理系统,用户可以方便地控制和管理进程,并有效地利用系统资源。这种管理系统可以在各种操作系统上运行,并且具有良好的扩展性和灵活性。 ### 回答2: Java进程管理系统是一种基于Java编程语言开发的操作系统实验,用于管理和控制计算机上的进程。该系统主要包含进程创建、进程调度、进程同步和进程通信等功能。 首先,进程创建是指在系统中生成新的进程。Java进程管理系统可以通过调用Java的进程相关类和方法来创建进程,例如使用ProcessBuilder类来创建新的进程对象,并通过该对象执行指定的进程命令。 其次,进程调度是指根据一定的策略和算法,决定哪些进程可以获得执行时间。在Java进程管理系统中,可以通过使用多线程技术来实现进程调度。通过创建不同的线程对象,并分配不同的优先级给每个线程,可以实现简单的进程调度功能。 进程同步是指保证进程按照一定的顺序执行,避免出现竞争条件和进程间的冲突。Java进程管理系统可以使用锁、信号量等同步机制来实现进程同步。通过加锁和解锁等操作,可以控制进程对共享资源的访问,避免数据的不一致性和错误。 最后,进程通信是指进程之间通过一定的方式和机制进行信息交换和共享。Java进程管理系统可以使用Java的线程间通信机制,如共享内存、消息队列、信号量等来实现进程之间的通信。通过共享内存可以实现进程间的数据共享,通过消息队列可以实现进程间的异步通信,通过信号量可以实现进程间的同步通信。 总之,Java进程管理系统可以通过Java编程语言实现进程的创建、调度、同步和通信等功能。它为我们提供了一个实验平台,使我们能够了解和学习操作系统进程管理的基本原理和机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值