一、意思不同
distribution:n. 分布;分配;供应。
allocation:n. 分配,配置;安置。
二、用法不同
1、distribution有分发的意思,是指分给每一个人的;也有分布的意思。
例句:How do I know its charge distribution?。
译文:我怎么知道它的电荷分布呢?
2、allocation 它的分发常常是指分配(任务,东西等),这个分配有一定的目的。
例句:A State Department spokeswoman said that the aid allocation for。
Pakistan was still under review.。
译文:国务院的一位女发言人说对巴基斯坦的援助配置仍在审核之中。
扩展资料
distribution与allocation的近义词:assignment , positioning。
一、assignment
读音:英 [ə'saɪnm(ə)nt] 美 [ə'saɪnmənt]。
意思是:n. 分配;任务;作业;功课。
短语:
1、government assignment 政府划拨 ; 当局划拨。
2、Same Assignment 同一批货 ; 统一批货。
3、channel assignment 信道指配 ; 信道分配 ; 通道分配。
例句:How do you gauge his assignment?。
译文:你怎么评价他的作业?
二、positioning
1、n. [计] 定位;配置,布置;站位,走位(游戏术语)
2、v. [计] 定位(position的现在分词);放置。
例句:Do what you like and what you are good at , and what benefits you and the。
society. This is how Idefine positioning.。
译文:做你喜欢的工作,做你擅长的工作,做对你自己及社会有益的工作。这就是我关于定位的三合一定义。
银行家算法是最有代表性的避免死锁算法,是Dijkstra提出的银行家算法。这是由于该算法能用于银行系统现金贷款的发放而得名。
银行家可以把一定数量的资金供多个用户周转使用,为保证资金的安全,银行家规定:。
(1)当一个用户对资金的最大需求量不超过很行家现有的资金时可接纳该用户.。
(2)用户可以分期贷款,但贷款的总数不能超过最大需求量;。
(3)当银行家现有的资金不能满足用户的尚需总数时,对用户的贷款可推迟支付,但总能使用户在有限的时间里得到贷款;。
(4)当用户得到所需的全部资金后,一定能在有限的时间里归还所有资金。
银行家算法是通过动态地检测系统中资源分配情况和进程对资源的需求情况来决定如何分配资源的,在能确保系统处于安全状态时才能把资源分配给申请者,从而避免系统发生死锁。
要记住的一些变量的名称
1 Available(可利用资源总数)
某类可利用的资源数目,其初值是系统中所配置的该类全部可用资源数目。
2 Max:某个进程对某类资源的最大需求数。
3 Allocation: 某类资源已分配给某进程的资源数。
4 Need:某个进程还需要的各类资源数。
Need= Max-Allocation。
系统把进程请求的资源(Request)分配给它以后要修改的变量。
Available:=Available-Request;。
Allocation:=Allocation+Request;。
Need:= Need- Request;。
你这段代码有输出,怎么没有包含 stdio.h 头文件,你打错单词了吧 。
'studio.h' studio是 套件、工作室 的意思吧 。
应该是包含<stdio.h>,std是‘标准 standard’的缩写,io是 in/out 输出输入。
在华为三层交换机5700交换机上开启DHCP服务,然后配置好地址池为192.168.2.254网段,排除掉192.168.2.200到192.168.2.199这个范围的所有IP,具体命令如下:
dhcp enable
ip address 192.168.2.200 255.255.255.0。
interface vlanif10。
dhcp server excluded-ip - address 192.168.2.200 192.168.2.199。
dhcp select interface。
dhcp server lease day 30 hour 0 minute 0。
dhcp server dns-list X.X.X.X。
其dns和租期要根据实际情况配置。
扩展资料:
DHCP有三种机制分配IP地址:
1、(Automatic Allocation)自动分配方式,DHCP服务器为主机指定一个永久性的IP地址,DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性地使用该地址。
2、(Dynamic Allocation)动态分配方式,DHCP服务器给主机指定具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
3、(Manual Allocation)手工分配方式,客户端的IP地址是由网络管理员指定的,DHCP服务器只能将指定的IP地址告诉客户端主机。
三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。
参考资料来源:百度百科-DHCP-功能概述。
我给你个程序,你复制粘贴为五个文件,然后编译运行就行了。
这是我改编自己以前的一个程序而得,能力有限。
功能:支持任意个进程和资源
具有功能界面和错误处理。
//-------------------------main.cpp。
#include <cstdlib>。
#include "Banker.h"。
//----#include "Banker.cpp" 若用dev c++等老牌编译器,就要去掉注释。若用vc++就保留注释。
int main()
Banker OneBanker;。
if (!OneBanker.InitBanker())。
return false; 。
if (!OneBanker.InitProgram())。
return false;。
while(1)
OneBanker.Menu();。
system("pause");。
return 0;
//----------------process.cpp。
#include <iostream>。
#include <cassert>。
#include "process.h"。
bool Process::AllocMemory(int rNum)。
State = 0;。
Request = new int [rNum];。
Max = new int [rNum];。
Alloc = new int [rNum];。
Need = new int [rNum];。
return true;
//------------------process.h。
#ifndef _PROCESS_H。
#define _PROCESS_H。
class Process
public:
bool AllocMemory(int);。
//bool IsSafe();。
int *Max,//------------最大需求 。
*Alloc,//-------------目前已分配 。
*Request, 。
*Need;//--------------目前需求 。
int State;。
//int Id;。
};
#endif
//---------------------banker.h。
#ifndef _BANKER_H。
#define _BANKER_H。
#include "process.h"。
#define M 20;
class Banker
public:
int Menu(); 。
bool Check();。
bool IsSafe();。
bool InitBanker();。
bool InitProgram();。
bool AllocMemory(int,int);。
bool IsAlloc(int);。
//------------为方便、效率等因素,以下设置为共有 。
int pNum; //-------进程数 。
int rNum; //-------资源数 。
int *m_iSafe; //---------------保存可行序列 。
int *Avail,//--------------系统可用资源 。
*Work;//-----------系统可用资源。
Process *m_pProcess;//---------------保存系统中个资源对象的地址的数组。
};
#endif
//--------------banker.cpp。
#include <iostream>。
#include <cstdlib>。
#include "process.h"。
#include "Banker.h"。
//------#include "process.cpp" //-------dev c++等编译器需要,vc++不需要。
#define M 20;
using namespace std;。
bool Banker::IsAlloc(int Id)。
int i;
for (i=0; i<rNum; i++)。
{
if(m_pProcess[Id].Request[i]>m_pProcess[Id].Need[i])。
{
cout << "请求失败,"<<Id<<"号进程的Request["<<i<<"] > Need["<<i<<"]!"<<endl;。
return false; 。
}
if(m_pProcess[Id].Request[i] > Work[i])。
{
cout << "请求失败,系统资源不够!"<<endl; 。
return false;。
}
}
for (i=0; i<rNum; i++)。
{
//---------------------暂时响应请求,并分配资源 。
Work[i] -= m_pProcess[Id].Request[i];。
Avail[i] = Work[i]; //-----------------使Avail与Work同步。
m_pProcess[Id].Need[i] -= m_pProcess[Id].Request[i];。
m_pProcess[Id].Alloc[i] +=m_pProcess[Id].Request[i];。
}
for(i=0; i<pNum; i++)。
{
m_pProcess[i].State = 0;。
}
if (!IsSafe())。
{
//---------------------还原资源;
for (i=0; i<rNum; i++)。
{
Work[i] +=m_pProcess[Id].Request[i];。
Avail[i] = Work[i]; //-----------------使Avail与Work同步。
m_pProcess[Id].Need[i] += m_pProcess[Id].Request[i]; 。
m_pProcess[Id].Alloc[i] -=m_pProcess[Id].Request[i];。
}
cout <<"为了系统的安全运行,不能响应请求。";。
return false;。
}
else
{
return true; 。
}
bool Banker::InitBanker()。
cout << "请输入进程总数:\n"; /*输入进程总数*/。
cin >> pNum; 。
if(!cin)
{
cout<<"输入错误,请输入整型数!";。
cin.clear();//---------清楚cin的错误状态。
cin.sync(); //------------刷新缓冲区 。
} 。
cout << "请输入资源种类总数:\n"; /*输入资源种类总数*/。
cin >> rNum;。
if(!cin)
{
cout<<"输入错误,请输入整型数!";。
cin.clear();//---------清楚cin的错误状态。
cin.sync(); //------------刷新缓冲区 。
}
if (!AllocMemory(pNum,rNum))。
{
cout << "overflow!"<<endl;。
return false; 。
}
return true; 。
bool Banker::AllocMemory(int pNum, int rNum)。
m_iSafe = new int[pNum]; //------------------状态栈,进程如果被分配资源则把相应序号入栈。
Avail = new int [rNum];。
Work = new int [rNum];。
m_pProcess = new Process[pNum];。
for (int i=0; i<pNum; i++)。
{
if (!m_pProcess[i].AllocMemory(rNum))。
{
cout << "进程"<<i<<"分配资源失败"<<endl;。
return false; 。
}
//m_pProcess[i].Id = i;。
}
return true;。
bool Banker::InitProgram()。
int i,j;
cout << "请输入最大需求矩阵:\n"; 。
for(i=0;i<pNum;i++)。
for(j=0;j<rNum;j++)。
cin >> m_pProcess[i].Max[j];。
cout << "\n请输入已分配矩阵:\n";。
for(i=0;i<pNum;i++)。
for(j=0;j<rNum;j++)。
{
cin>> m_pProcess[i].Alloc[j]; 。
while(m_pProcess[i].Alloc[j]>m_pProcess[i].Max[j])。
{
。
cout << "Alloc["<<i<<"]["<<j。
<<"]分配矩阵给值不合理!\n请重新输入:\n";。
cin.clear();。
cin.sync();。
cin>>m_pProcess[i].Alloc[j];。
}
}
cout << "\n则,需求矩阵为:\n";。
for(i=0;i<pNum;i++)。
{
cout<<"p"<<i<<": ";。
for(j=0;j<rNum;j++)。
{
m_pProcess[i].Need[j] = m_pProcess[i].Max[j] - m_pProcess[i].Alloc[j];。
cout<<m_pProcess[i].Need[j]<<" "; 。
}
cout<<endl; 。
}
cout <<"\n请输入可利用资源矩阵:\n";。
for(j=0;j<rNum;j++)。
if(!(cin>>Avail[j]))。
return false;。
for (i=0;i<rNum; i++)//---------------初始化Work和State数组 。
Work[i] = Avail[i]; 。
return true; 。
int Banker::Menu()。
int choose=0;。
system("cls"); 。
cout <<"系统初始化成功,............\n";。
cout <<"-------------1,查看当前拥有进程数--------------------\n";。
cout <<"-------------2,查看最大需求(Max)矩阵-----------------\n";。
cout <<"-------------3,查看当前已分配(Alloc)矩阵-------------\n";。
cout <<"-------------4,查看当前需求(Need)矩阵----------------\n";。
cout <<"-------------5,查看当前可用(Work)矩阵----------------\n";。
cout <<"-------------6,查看当前系统是否存在安全序列?-------\n";。
cout <<"-------------7,是否请求分配(Request)资源?------------\n";。
cout <<"-------------8,清屏------------------------------------------\n";。
cout <<"-------------9,退出系统-------------------------------------\n";。
cout << "请选择:"; 。
cin>>choose;。
while(!cin||choose<1||choose>8)。
{
cout << "输入错误,请重新输入:";。
cin.clear();//-------------清除错误状态 。
cin.sync();//------------刷新缓冲区 。
cin >> choose; 。
}
switch(choose)。
{
int i,j;
case 1:。
cout <<"当前进程数:" <<pNum <<endl;。
break;。
case 2:。
cout <<"最大需求矩阵(Max)为:\n"; 。
for (i=0;i<pNum;i++)。
{
for (j=0;j<rNum;j++)。
{。
cout << m_pProcess[i].Max[j]<<" "; 。
}。
cout<<endl;。
}
break;。
case 3:。
cout << "当前已分配矩阵(Alloc)为:\n";。
for (i=0;i<pNum;i++)。
{
for (j=0;j<rNum;j++)。
{。
cout << m_pProcess[i].Alloc[j]<<" "; 。
}。
cout<<endl;。
}
break; 。
case 4:。
cout << "当前需求矩阵(Need)为:\n";。
for (i=0;i<pNum;i++)。
{
for (j=0;j<rNum;j++)。
{。
cout << m_pProcess[i].Need[j]<<" "; 。
}。
cout<<endl;。
}
break;。
case 5:。
cout << "当前可用矩阵(Work)为:\n";。
for(i=0;i<rNum;i++)。
cout << Work[i]<<" "; 。
cout << endl;。
break;。
case 6:。
if (!IsSafe())。
{
cout << "此刻系统不安全!"<<endl; 。
}
else。
{
cout << "此刻系统是安全的!"<<endl;。
cout << "可行序列为:";。
for(int k=0;k< pNum;k++)。
{。
cout<<"p"<<m_iSafe[k]<<"->";。
}。
cout<<"end"<<endl; 。
}
break;。
case 7:。
int Id;。
cout << "请输入请求资源的进程号:";。
cin >> Id;。
cout << "请输入请求分配矩阵:"<<endl; 。
for(i=0; i<rNum; i++)。
{
cin >> m_pProcess[Id].Request[i]; 。
}
if (!IsAlloc(Id))。
{
cout << "请求资源失败!\n"; 。
}
else。
{
cout << "可请求资源!"<<endl;。
cout << "可行序列为:";。
for(int k=0;k< pNum;k++)。
{。
cout<<"p"<<m_iSafe[k]<<"->";。
}。
cout<<"end"<<endl; 。
cout <<".....分配完成!\n";。
}
break;。
case 8:。
system("cls");//---------------系统清屏 。
case 9:。
exit(0);。
default:。
break;。
}
system("pause");。
return 0; 。
bool Banker::IsSafe()。
static int Num = 0; //------------设置为静态 。
int i =0;
while (i<pNum)。
{
if(m_pProcess[i].State ==1)。
{
i++;。
continue;。
}
int j;
for(j=0; j<rNum; j++)。
{
if(Work[j] < m_pProcess[i].Need[j])。
break;。
}
if(j!=rNum)。
{
if(i==pNum-1)。
{
return false; 。
}
i++; 。
continue; 。
}
else if(Num==pNum-1&&i==pNum-1)。
{
m_pProcess[i].State = 1; //---------暂时分配资源。
m_iSafe[Num++] = i;。
Num = 0;。
//cout << Num <<endl;。
return true; 。
}
//-----------------------------暂时分配资源 。
for(int k=0; k<rNum; k++)。
{
//------------该进程完成后释放资源。
Work[k] += m_pProcess[i].Alloc[k];。
Avail[k] = Work[k];//-----------使Avail与Work同步 。
}
m_pProcess[i].State = 1; //---------暂时分配资源 。
m_iSafe[Num++] = i; //--------入顺序栈(数组实现)
if(!IsSafe()) //------------利用递归,判断分配资源后系统是否安全。
{
Num--; 。
m_iSafe[Num]=0; //------------弹出顺序栈 。
m_pProcess[i].State = 0; 。
//----------------------------返还资源。
for(int k=0; k<rNum; k++)。
{
Work[k] -= m_pProcess[i].Alloc[k];。
Avail[k] = Work[k];//-----------使Avail与Work同步 。
}
i++; 。
}
else
{
for(int k=0; k<rNum; k++)。
{
Work[k] -= m_pProcess[i].Alloc[k];。
Avail[k] = Work[k];//-----------使Avail与Work同步 。
}
return true; 。
} 。
}
for(i=0; i<pNum; i++)。
{
if(m_pProcess[i].State !=1 )。
break; 。
}
if (i==pNum)。
{
return true; 。
}
else
{
return false; 。
}