【源码+文档】基于Java实现银行家算法

该实验旨在通过模拟处理器调度、存储管理和磁盘分配等,深入理解操作系统资源管理。实验一涉及优先数调度算法的实现,使用Java编程创建PCB对象,维护就绪队列并按优先级运行进程。
摘要由CSDN通过智能技术生成

实验目的

本实验分为五个小实验,实验一的目的是模拟在单处理器环境下的处理器调度,加深了解处理器调度的工作。实验二的目的是理解在不同的存储管理方式下应怎样进行存储空间的分配和回收。实验三的目的是掌握磁盘存储空间的分配和回收算法。实验四的目的是了解进程的创建过程,进一步理解进程的概念,明确进程和程序的区别。实验五的目的是了解死锁的避免,掌握银行家算法。

实验意义

通过完成本实验,深入了解操作系统的处理器调度,存储调度,进程线程调度,从而了解操作系统对各类资源的分配方式以及是如何利用各类算法提高系统对资源的利用率。

本实验有两个选题,我选择了第一题:设计一个按优先数调度算法实现处理器调度的程序。

实验原理

每个进程用一个 PCB 来代表,PCB 有进程名;要求运行时间:假设进程需要运行的单位时间数;优先数:赋予进程的优先数,调度时总是选取优先数大的进程先执行;状态:就绪和结束,用 R 表示就绪,用 E 表示结束。初始状态都为就绪状态。

实验方案

采用 Java 来完成本实验,设计了四个类分别为 Service, Main, PCB 及 PCBCreator. Main 类为输入输出相关的类。PCB 类定义了每个进程的数据结构,包含进程名,要求运行时间,优先级及状态,并且包含一个将进程信息打印出来的方法。PCBCreator 类是用来创建 PCB 对象的类。

Service 类包含一个用来表示就绪队列的存储 PCB 对象的链表,包含一个进程运行的方法,每次运行将就绪队列的第一个进程的优先级和要求运行时间减 1,再判断该进程的要求运行时间是否为 0,为零则从就绪队列删除。运行一次后调用排序方法根据优先级进行排序。

  源码和文档都托管在了【WRITE-BUG数字空间】上面了,有需要的可自取~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值