banker.h
来自「利用银行家算法避免死锁。掌握银行家算法中的数据结构」· C头文件 代码 · 共 52 行
H
52 行
// Banker.h -- definitions for the Banker's algorothm
// David L. Clarke 6 June 1998
// Modified by Steve Skrabacz Nov 1998 again September 1999
#ifndef BankerH
#define BankerH
#include <map>
using namespace std;
class BankerUnsafeException {};
class BankerUnsafePidException : public BankerUnsafeException{};
class BankerUnsafeContractException : public BankerUnsafeException{};
class BankerUnsafeTotalException : public BankerUnsafeException{};
class BankerUnsafeCommittedException : public BankerUnsafeException{};
struct Resources
{
int iFiles;
int iPages;
int iMutex;
};
typedef map< int, Resources, less<int> > ResourcesMap;
class Banker
{
private:
Resources RMax; // total availabled in whole system
Resources RInUse; // total in use in whole system
ResourcesMap RMapMax; // total contracted with each PID
ResourcesMap RMapInUse; // total in use for a given PID
void isSafe(int iPid, int iFiles, int iPages, int iMutices);
public:
Banker(int iFiles, int iPages,int iMutices);
~Banker();
void openAccount(int iPID,int iFiles, int iPages,int iMutices);
void closeAccount(int iPID);
void request(int iPID, int iFiles,int iPages,int iMutices);
void relinquish(int iPID, int iFiles, int iPages, int iMutices);
void showLimits();
void helloWorld();
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?