《操作系统》实验指导书2017 下载本文

cout<

cout<<\

cout<<\缺页次数是:\缺页率是:\}

void LRU() { }

for(i=0;i0;j--) mem[j]=mem[j-1]; mem[0]=page[i]; for(j=0;j

cout<

cout<<\算法结果------------\for(i=0;i

for(i=0;i

cout<

cout<<\

cout<<\缺页次数是:\缺页率是:\

实验四 设备管理

(一)实验目的

掌握独占设备的使用方式,以及设备的分配和回收;掌握用死锁避免方法来处理申请独占设备可能造成的死锁。

(二)实验内容

用死锁避免方法来处理申请独占设备可能造成的死锁,程序实现对银行家算法的模拟。 设计五个进程{P0,P1,P2,P3,P4}共享三类资源{A,B,C}的系统,{A,B,C}的资源数量分别为10,5,7。进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源号以及为某进程分配资源后的有关资源数据的情况。

实验指导:

#include #include #include #include #define n 10 #define true 1 #define false 0

int N ; // 资源总类

int M; //总进程数 int Available[50]; int Max[50][50];

int Allocation[50][50]={0}; int Need[50][50]={0}; int Work[50]={0};

int Temp[50]={0}; //存放安全序列号 char Name[50]={0}; int Sum[50]={0}; int Request[50]={0};

void Print() { int k=0; cout<<\ ***********资源分配表***********\ cout<<\ Process \ Max \ Allocation \ Need \ Available\ cout<<\ A B C \ A B C \ A B C \ A B C\ for(int i=0;i

cout<<\ P\ \ for(int j=0;j

void Create() { int i,j; k1:

cout<<\请输入您要创建进程的数量:\cin>>M;

cout<<\请输入各类资源的总数:(\个)\for(i=0;i>Sum[i]; cout<

cout<<\请输入各类进程所需要资源最大数目:(\个)\for(i=0;i>Max[i][j]; if(Max[i][j]>Sum[j]) { cout<<\占有资源超过了声明的该资源总数,请重新输入!\ goto k1; } } k2: cout<

for(i=0;i>Allocation[i][j]; if(Allocation[i][j]>Max[i][j]) { cout<<\占有资源超过了声明的该资源总数,请重新输入!\ goto k2; } } int p; for(i=0;i

void restore(int i) { int j; for(j=0;j

int changedata(int i) { int j; for(j=0;j