基于Java的操作系统课程设计(作业调度,内存管理、进程调度、进程阻塞)

目录
一、课程设计目的 1
二、课程设计内容和要求 1
三、软、硬件环境 1
四、设计步骤 2

  1. 题目分析 2
    5.主要算法和代码: 5
    /** 5
    6.运行结果截图(内容太多,仅展示关键部分): 11
    7.运行结果的分析: 14
    8.心得体会: 14
    二、课程设计内容和要求
    提交一批作业(>=10),按先来先服选择一部分作业(最多5个)进入内存
    为每个作业创建一个进程,并分配内存(用户内存:0—1024K,采用可变连续分配方式)
    进程调度功能(时间片轮转)
    随机阻塞进程,并在一段时间后唤醒进程(选做)
    显示相关信息:后备作业队列、内存分配情况、进程信息、完成作业情况
    这些功能要有机地连接起来
    三、软、硬件环境
    软件:Windows 10, JDK1.8,IntelliJ IDEA
    硬件:Intel® Core™ i5-8300H , 2.30GHz, RAM: 8.00GB

四、设计步骤

  1. 题目分析
    本次课程设计是将作业调度,内存管理、进程调度、进程阻塞等功能有机结合起来的一道题目。首先,需要使用随机数初始化10个作业,放入后备队列中,然后使用先来先服务(FCFS)进行作业调度,使用时间片轮转算法进行进程调度。其中,最多只能有五个作业能同时进入内存,本实验假设阻塞状态的进程依然在内存中。也就是说,处于就绪、运行、阻塞三种状态的进程数目之和最多为5个,即并发进程数最多为5个,在进程结束后,就会被调出内存,使用FCFS算法从后备队列中调入新的作业。在内存中的几个非阻塞状态的进程使用时间片轮转(RR)算法进行调度。而作业在进入内存之前,是要申请内存的,这时使用首次适应(FF)算法申请内存,从空闲分区链中找到合适的空闲分区并分配给该进程。在进程结束时,要回收其占用的内存,并进行相应的空闲分区合并。如此,便可以将作业调度、内存管理、进程调度和进程阻塞与唤醒这几个功能有机地连接起来了。
package com.chenchichao.www;

/**
 * @author ChenZhichao
 * @mail [email protected]
 */
public class PCB {
    // 进程名
    String name;
    // 所需内存
    int needMemory;
    // 主存起始位置
    int address;
    // 到达时间
    double arriveTime;
    // 需要运行时间
    double needTime;
    // 已用时间
    double hasUsedTime;
    // 进程状态:运行中、就绪、阻塞(Running、 Waiting、 Blocking)
    String status;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sheziqiong/article/details/130900256