银行家算法,当时学操作系统的作业:(用 VB 代码写的)希望对你会有点帮助。
Private Sub Form_click()
Const inum = 5, jnum = 4 '5 个进程,4 类资源
Dim n(1 To inum, 1 To jnum) As Integer '进程 inum 对 jnum 类资源
还需求的个数
Dim p(1 To inum, 1 To jnum) As Integer '进程 inum 已经得到 jnum
类资源的个数
Dim m(1 To inum, 1 To jnum) As Integer '进程 inum 对 jnum 类资源
的总的需求个数
Dim a(1 To jnum), index(1 To inum) As Integer 'a,当前可使用的资源
数
Dim f(1 To inum) As Boolean
'数据初始
p(1, 1) = 0: p(1, 2) = 0: p(1, 3) = 1: p(1, 4) = 2
p(2, 1) = 2: p(2, 2) = 0: p(2, 3) = 0: p(2, 4) = 0
p(3, 1) = 0: p(3, 2) = 0: p(3, 3) = 3: p(3, 4) = 4
p(4, 1) = 2: p(4, 2) = 3: p(4, 3) = 5: p(4, 4) = 4
p(5, 1) = 0: p(5, 2) = 3: p(5, 3) = 3: p(5, 4) = 2
m(1, 1) = 0: m(1, 2) = 0: m(1, 3) = 1: m(1, 4) = 2
m(2, 1) = 2: m(2, 2) = 7: m(2, 3) = 5: m(2, 4) = 0
m(3, 1) = 6: m(3, 2) = 6: m(3, 3) = 5: m(3, 4) = 6
m(4, 1) = 4: m(4, 2) = 3: m(4, 3) = 5: m(4, 4) = 6
m(5, 1) = 0: m(5, 2) = 6: m(5, 3) = 5: m(5, 4) = 2
a(1) = 2: a(2) = 1: a(3) = 0: a(4) = 0
s = 1
'初始结束
Print "资源的个数: ": Print
Print "已经分配: "
For i = 1 To inum
Print i & "进程: ";
For j = 1 To jnum
Print p(i, j);
Next
Print
Next
Print: Print "最大需求: "
For i = 1 To inum
评论0