资源简介
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
相关资源
- 数据结构与C语言综合习题集
- C语言进阶源码---基于graphics实现图书
- filtfilt C语言实现,可直接运行验证
- 用C语言实现一个火车站的订票系统
- C语言通讯录管理系统彩色界面
- AES-128-CBC算法C语言源码已经修改,可
- c语言课程设计-职工信息管理系统-单
- C语言考研真题汇编完整版.txt
- 飞机票订购系统C语言课程设计报告全
- 页面置换算法(fifolruopt) C语言编写
- 四子棋c语言程序
- 仿射密码C语言程序代码
- 正则表达式(regex)C语言源码,超强
- c语言 Windows_程序设计_第五版
- 常用算法程序集C语言描述 第三版pd
- 游戏开发 c语言 程序设计 飞机大战
- 简易图书管理系统C语言
- 编译原理课程设计-C语言子集编译器
- 练习:基于c语言的8位二进制原码一位
- (严版C语言版数据结构源码.rar
- 一个C语言编译器源码
- C语言模糊控制程序
- 多表代换 加密解密 C语言实现
- C语言版经纬度与高斯投影相互转换函
- 宾馆客房管理系统-C语言
- 数据结构大作业 停车场管理 C语言
- 高质量程序设计指南:C++/C语言第
- 北航991数据结构与C语言程序设计历年
- C语言考研真题汇编 高清PDF
- C语言彩票管理系统
评论
共有 条评论