网站地图| 免费获取|
毕业论文网
  • 网站首页|
  • 论文范文|
  • 论文降重|
  • 职称论文发表|
  • 合作期刊|
  • 论文下载|
  • 计算机论文|
  • 外文翻译|
  • 免费论文|
  • 原创论文|
  • 论文开题报告
搜索

当前位置:毕业论文网 -> 免费论文 -> 财务管理 -> 银行家算法 (一)
金融论文资料| 财务管理| 会计专业| 国贸论文| 市场营销论文| 电子商务论文| 财务会计论文| 电子商务| 会计论文| 财务论文| 金融论文| 电子商务论文| 经济学论文| 营销论文

银行家算法 (一)

最新活动:微信集50个赞就可获取任意一篇钻石会员论文。详情见微信集赞换论文
银行家算法 (一)

 

  一、目的和要求 银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。
二、实验内容 1.设计进程对各类资源最大申请表示及初值确定。 2.设定系统提供资源初始状况。 3.设定每次某个进程对各类资源的申请表示。 4.编制程序,依据银行家算法,决定其申请是否得到满足。
  三、说明 1.数据结构 假设有M个进程N类资源,则有如下数据结构: AVAIL[N] 系统可用资源数 ALLOC[M*N] M个进程已经得到N类资源的资源量 NEED[M*N] M个进程还需要N类资源的资源量
  2.银行家算法 设进程I提出请求Request[N],则银行家算法按如下规则进行判断。 (1)如果Request[N]<=NEED[I,N],则转(2);否则,出错。 (2)如果Request[N]<=AVAIL,则转(3);否则,出错。 (3)系统试探分配资源,修改相关数据: AVAIL=AVAIL-REQUEST ALLOC=ALLOC+REQUEST NEED=NEED-REQUEST (4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。
3.安全性检查 (1)设置两个工作向量WORK=AVAIL;FINISH[M]=FALSE (2)从进程集合中找到一个满足下述条件的进程, FINISH[i]=FALSE NEED<=WORK 如找到,执行(3);否则,执行(4) (3)设进程获得资源,可顺利执行,直至完成,从而释放资源。 WORK=WORK+ALLOC FINISH=TRUE GO TO 2 (4)如所有的进程Finish[M]=true,则表示安全;否则系统不安全。

四、源程序清单 #include
struct claim
{
    int user;
    int num[3];
}claims;
int input()
{
    printf("please input your request:user(0~4):\n");
    scanf("%d",&claims.user);
    printf("input the number of resource a:\n");
    scanf("%d",&claims.num[0]);
    printf("input the number of resource b:\n");
    scanf("%d",&claims.num[1]);
    printf("input the number of resource c:\n");
    scanf("%d",&claims.num[2]);
    return 1;
}
int safety_chk(int alloc[][3],int need[][3],int avail[3])
{   int p,i,j;
    int work[3],finish[5];
    for(p=0;p<5;p++)
    {
        work[p]=avail[p];
        finish[p]=0;
    }
    for(i=0;i<5;i++)  
    {
        if(finish[i]==0&&
            need[i][0]<=work[0]&&
            need[i][1]<=work[1]&&
            need[i][2]<=work[2]    )
        {
            for(j=0;j<3;j++)
                work[j]=alloc[i][j]+work[j];
            finish[i]=1;
            i=-1;
        }
    }
    for(i=0;i<5;i++)
    {
        if(finish[i]==0)
            return 0;
    }
    return 1;
}
int process(int alloc[][3],int need[][3],int avail[3])
{   int ret,i;
    input();
    for(i=0;i<3;i++)
 &n

首页 上一页 1 2 下一页 尾页 1/2/2

银行家算法 (一)由毕业论文网(www.huoyuandh.com)会员上传。
原创论文资料流程 相关论文
上一篇:财经法规与会计职业道德考试大纲 下一篇:我国财政收入的超收原因及如何使..
推荐论文 本专业最新论文
Tags:银行家 算法 【返回顶部】
精彩推荐
发表论文

联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士论文资料


毕业论文网提供论文范文,论文代发,原创论文资料

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 毕业论文网 版权所有