银行家算法java_操作系统课程设计--银行家算法java实现回溯与递归法实现银行家算法.docx...

这篇博客介绍了樊廷峰同学的《操作系统》课程设计,主要实现了银行家算法的Java版,包括安全性算法。设计中涉及了可利用资源向量、最大需求矩阵等数据结构,并通过回溯法寻找安全序列。博客还详细记录了设计过程中遇到的问题及其解决方案,如空指针异常、JTable数据更新等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作系统课程设计--银行家算法java实现回溯与递归法实现银行家算法

课程设计报告

课程名称:操作系统课程设计

姓 名: 樊廷峰

指导教师:刘丽敏

学 院:信息科学与工程学院

专业班级: 物联网1402班

2017年3月11日

PAGE \* MERGEFORMATII

目录

TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc477027984" 银行家算法 PAGEREF _Toc477027984 \h 1

HYPERLINK \l "_Toc477027985" 一 设计要求 PAGEREF _Toc477027985 \h 1

HYPERLINK \l "_Toc477027986" 二 设计思想 PAGEREF _Toc477027986 \h 1

HYPERLINK \l "_Toc477027987" 2.1 银行家算法 PAGEREF _Toc477027987 \h 1

HYPERLINK \l "_Toc477027988" 2.2 安全性算法 PAGEREF _Toc477027988 \h 1

HYPERLINK \l "_Toc477027989" 三 数据结构 PAGEREF _Toc477027989 \h 2

HYPERLINK \l "_Toc477027990" 3.1 可利用资源向量Available PAGEREF _Toc477027990 \h 2

HYPERLINK \l "_Toc477027991" 3.2 最大需求矩阵Max PAGEREF _Toc477027991 \h 2

HYPERLINK \l "_Toc477027992" 3.3 分配矩阵Allocation PAGEREF _Toc477027992 \h 3

HYPERLINK \l "_Toc477027993" 3.4 需求矩阵 PAGEREF _Toc477027993 \h 3

HYPERLINK \l "_Toc477027994" 四 总体设计 PAGEREF _Toc477027994 \h 3

HYPERLINK \l "_Toc477027995" 4.1 输入量 PAGEREF _Toc477027995 \h 3

HYPERLINK \l "_Toc477027996" 4.2 输出量 PAGEREF _Toc477027996 \h 3

HYPERLINK \l "_Toc477027997" 4.3 部分界面 PAGEREF _Toc477027997 \h 4

HYPERLINK \l "_Toc477027998" PAGEREF _Toc477027998 \h 5

HYPERLINK \l "_Toc477027999" 五 详细设计 PAGEREF _Toc477027999 \h 5

HYPERLINK \l "_Toc477028000" 5.1类Bank(主类) PAGEREF _Toc477028000 \h 5

HYPERLINK \l "_Toc477028001" 5.2 类Request_or_Max(用于获取Request或Max表数据) PAGEREF _Toc477028001 \h 6

HYPERLINK \l "_Toc477028002" 5.3 类Show(显示输出结果) PAGEREF _Toc477028002 \h 6

HYPERLINK \l "_Toc477028003" 5.4 算法(寻找安全序列的方法:回溯法) PAGEREF _Toc477028003 \h 7

HYPERLINK \l "_Toc477028004" 5.5 流程图 PAGEREF _Toc477028004 \h 9

HYPERLINK \l "_Toc477028005" 六 遇到的问题及解决方法 PAGEREF _Toc477028005 \h 12

HYPERLINK \l "_Toc477028006" 6.1 问题一(空指针异常) PAGEREF _Toc477028006 \h 12

HYPERLINK \l "_Toc477028007" 6.2 问题二(监听JTable数据跟新) PAGEREF _Toc477028007 \h 12

HYPERLINK \l "_Toc477028008" 6.3 问题三(JTable中单元格数据的获取) PAGEREF _Toc477028008 \h 12

HYPERLINK \l "_Toc477028009" 6.4 问题四(键盘输入的数据转化为数字) PAGEREF

设计一个n个并发进程共享m个系统资源的程序以实现银行家算法。要求: 1) 简单的选择界面; 2) 能显示当前系统资源的占用和剩余情况。 3) 为进程分配资源,如果进程要求的资源大于系统剩余的资源,不分配并且提示分配不成功; 4) 撤销作业,释放资源。 编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁的发生。 银行家算法分配资源的原则是:系统掌握每个进程对资源的最大需求量,当进程要求申请资源时,系统就测试该进程尚需资源的最大量,如果系统中现存的资源数大于或等于该进程尚需求资源最大量时,就满足进程的当前申请。这样就可以保证至少有一个进程可能得到全部资源而执行到结束,然后归还它所占有的全部资源供其它进程使用。 银行家算法中的数据结构 (1)可利用资源向量Available(一维数组) 是一个含有m个元素,其中的每一个元素代表一类可利用的资源数目,其初值是系统中所配置的该类全部可用资源数目。如果Available[j]=k, 表示系统中现有Rj类资源k个。 (2)最大需求矩阵Max(二维数组) m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max(i,j)=k, 表示进程i需要Rj类资源的最大数目为k。 (3)分配矩阵Allocation(二维数组) m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocation(i,j)=k, 表示进程i当前已分得Rj类资源k个。 (4)需求矩阵Need (二维数组) 是一个含有n*m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need(i,j)=k, 表示进程i还需要Rj类资源k个,方能完成其任务。 Need(i,j)= Max(i,j)-Allocation(i,j)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值