• 大小: 1.17MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-04
  • 语言: C/C++
  • 标签: C语言  Bankers  Algorithm  

资源简介

c语言实现的银行家算法 有界面 基本满足了要求 是操作系统书上的大实验

资源截图

代码片段和文件信息

/*
*银行家算法Bankers Algorithm
*组员:林丽燕 胡嫄 张灯 赖彬彬 陈顺帆 崔北辰 陈阿强
*/
#include 
#include 
#include  
#include“interface_and_cursor.h“

#define m 50
#define FALSE 0
#define TRUE 1

int process_num;  //进程数
int resource_num;  //资源数
int Allocation[m][m]Need[m][m]Available[m]Max[m][m]; 


/*主界面输入*/                         
void input()
{
view_form(21);
view_form(104);
gotoxy(272);
printf(“  **欢迎进入银行家算法**“);
view_labal(21692“请输入进程总数:“);
view_edit(42662);
    ui_tools_gotoxy(487);
scanf(“%d“&process_num);
view_labal(211092“请输入资源种类数:“);
view_edit(421062);
    view_labal(191572“确定(Enter)“);
view_labal(421572“取消(Esc)“);
    ui_tools_gotoxy(4811);
    scanf(“%d“&resource_num); system(“cls“);
}



/*安全算法函数*/
void safety_check()   
{
int kfv=0ij;
int work[m]a[m];
bool Finish[m];
TRUE;
for(i=0;i Finish[i]=false;   // 初始化进程均没得到足够资源数并完成
for(i=0;i work[i]=Available[i];//work[i]表示可提供进程继续运行的各类资源数
k=process_num;
do{
for(i=0;i {
if(Finish[i]==false)
{
f=1;
for(j=0;j if(Need[i][j]>work[j])
f=0;//f=0为false,f=1为true

if(f==1)      //找到还没有完成且需求数小于可提供进程继续运行的资源数的进程
{
Finish[i]=true;
a[v++]=i;   //记录安全序列号
for(j=0;j work[j]+=Allocation[i][j];  //释放该进程已分配的资源
}
}
}
k--;      //每完成一个进程分配,未完成的进程数就减1
}while(k>0);
f=1;
for(i=0;i {
if(Finish[i]==false)   
{
f=0;
break;
}
}
if(f==0)       //若有进程没完成,则为不安全状态
{
gotoxy(1315);
printf(“系统处在不安全状态!“);
FALSE;
}
else
{
gotoxy(1315);
printf(“系统当前为安全状态,安全序列为:“);
for(i=0;i printf(“p%d  “a[i]);  //输出安全序列
printf(“\n“);
}
}



/*输出函数*/
void output() 
{
int ijs=0;
printf(“\n“);
gotoxy(136);
printf(“******************此时刻资源分配情况*******************\n“);
gotoxy(137);
printf(“进程名    |     Max     |  Allocation  |     Need     |\n“);
    gotoxy(138);
for (i = 0; i < process_num; i++)
{
        if(s<5){{
gotoxy(138+s);
}
printf(“  p%d       “i);
s++;
}
for (j = 0; j < resource_num; j++)
{
printf(“ %d   “Max[i][j]);
}

for (j = 0; j < resource_num; j++)
{
printf(“ %d   “Allocation[i][j]);
}

for (j = 0; j < resource_num; j++)
{
printf(“ %d   “Need[i][j]);
}

printf(“\n“);
}
printf(“\n“);
gotoxy(1314);
printf(“各类资源可利用的资源数为:“);
for (j = 0; j < resource_num; j++) 
{
printf(“ %d“Available[j]);
}
}



/*主函数*/
void main(){
    void safety_check();
void output();
    int row_index=0;
int i=0jp=0q=0n=0r=0;
char c;//为后面的c=getche()服务
int Request[m]Allocation1[m][m]Need1[m][m]Available1[m];

input();
view_form(21);
view_form(104);
    gotoxy(203);
    printf(“矩阵输入时隔位请用空格键,隔行请用Enter键!“

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6885  2013-12-23 23:46  Bankers Algorithm\Bankers Algorithm.cpp

     文件       4570  2013-12-21 04:14  Bankers Algorithm\Bankers Algorithm.dsp

     文件        542  2013-12-21 04:14  Bankers Algorithm\Bankers Algorithm.dsw

     文件      50176  2013-12-25 16:56  Bankers Algorithm\Bankers Algorithm.ncb

     文件      48640  2013-12-25 16:56  Bankers Algorithm\Bankers Algorithm.opt

     文件        978  2013-12-25 12:33  Bankers Algorithm\Bankers Algorithm.plg

     文件       3069  2013-12-21 16:06  Bankers Algorithm\Interface_and_Cursor.cpp

     文件        485  2013-12-21 04:15  Bankers Algorithm\Interface_and_Cursor.h

     文件     208980  2013-12-25 12:33  Bankers Algorithm\Debug\Bankers Algorithm.exe

     文件     318892  2013-12-25 12:33  Bankers Algorithm\Debug\Bankers Algorithm.ilk

     文件      25366  2013-12-25 12:33  Bankers Algorithm\Debug\Bankers Algorithm.obj

     文件    3574872  2013-12-22 00:40  Bankers Algorithm\Debug\Bankers Algorithm.pch

     文件     541696  2013-12-23 23:46  Bankers Algorithm\Debug\Bankers Algorithm.pdb

     文件      16533  2013-12-21 16:12  Bankers Algorithm\Debug\Interface_and_Cursor.obj

     文件     148480  2013-12-25 12:39  Bankers Algorithm\Debug\vc60.idb

     文件      77824  2013-12-23 23:46  Bankers Algorithm\Debug\vc60.pdb

     目录          0  2013-12-28 23:38  Bankers Algorithm\Debug

     目录          0  2013-12-28 23:38  Bankers Algorithm

----------- ---------  ---------- -----  ----

              5027988                    18


评论

共有 条评论