📄 banker.h
字号:
#include <vector>#include <list>#include <string>#include <iostream>#include <fstream>using namespace std;list< vector<int> > g_already, g_needed;//已经分配矩阵、仍需要分配矩阵vector<int> g_total, g_allot, g_free;//总的资源g_total、已分配资源g_allot和剩余资源g_freevector<int> empty;//空的资源队列vector<string> g_res;//资源类型int g_res_size;//资源数目list< vector<int> >::iterator g_already_ptr;list< vector<int> >::iterator g_needed_ptr;const int MAX_INSTRUCTION = 5; //指令轮转周期,即每个线程在执行周期内最多执行的指令数目//初始化计算机void init(){ ifstream computer("computer.bin"); if (!computer.is_open()) { cout << "The BIOS can not find the computer.bin, the computer will shut down!"; exit(1); } char tmp[20]; while (!computer.eof()) { computer.getline(tmp, sizeof(tmp)); g_res.push_back(tmp); computer.getline(tmp, sizeof(tmp)); g_total.push_back( atoi(tmp) ); } g_res_size = (int)g_res.size(); //初始化变量empty for (int i=0; i < g_res_size; i++) empty.push_back(0); g_allot = empty; g_free = g_total;}//显示资源的内容void what_are_res(){ cout << "There are " << g_res_size << " kind(s) of resource(s) in this computer:" <<endl; cout << "ID\tName\tNum" <<endl; for (int i=0; i < g_res_size; i++) { cout << i << "\t" << g_res[i] << "\t" << g_total[i] <<endl; }}//显示资源的分配状态void how_res(){ list< vector<int> >::iterator ptr; vector<int>::iterator ptr2; cout << "Total resource(s): "<<endl; for (ptr2 = g_total.begin(); ptr2 != g_total.end(); ptr2++) { cout << *ptr2 << "\t"; } cout << endl; cout << "Alloted resource(s): "<<endl; for (ptr2 = g_allot.begin(); ptr2 != g_allot.end(); ptr2++) { cout << *ptr2 << "\t"; } cout << endl; cout << "Free resource(s): "<<endl; for (ptr2 = g_free.begin(); ptr2 != g_free.end(); ptr2++) { cout << *ptr2 << "\t"; } cout << endl; cout << "The resource(s) already alloted:" << endl; for (ptr = g_already.begin(); ptr != g_already.end(); ptr++) { //vector<int> tmp = *ptr; for (unsigned int i=0; i < (*ptr).size(); i++) { cout << (*ptr)[i] << "\t"; } cout << endl; } cout << "The resource(s) needed to allot:" << endl; for (ptr = g_needed.begin(); ptr != g_needed.end(); ptr++) { //vector<int> tmp = *ptr; for (unsigned int i=0; i < (*ptr).size(); i++) { cout << (*ptr)[i] << "\t"; } cout << endl; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -