📄 banker.h
字号:
// 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -