int Safe() //处理传过来的第几个进程 { int i=0; int k=0; int m; int apply,Finish[50]={0}; int j,flag=0; for(i=0;i cout< void dijkstra() { char ch; int i=0,j=0; ch='y'; cout<<\请输入你要请求的资源进程号(0-\ cin>>i; } cout<<\请输入进程\请求Request变量\for(i=0;i for(i=0;i int main() { int c; Create(); Print(); Safe(); while(c) { } } cout<<\ 银行家算法\cout<<\ 1 分配资源\cout<<\ 2 离开 \cout<<\请选择功能号:\cin>>c; switch(c) { case 1:dijkstra();break; case 0:c=0;break; default:cout<<\请正确选择功能号(0--1)\} return 1; 实验五 文件管理 (一)实验目的 掌握文件的存取方法;掌握文件的逻辑结构和物理结构;掌握存储空间的分配和回收;掌握磁盘管理与调度。 (二)实验内容 用程序模拟磁盘的调度过程,并计算各磁盘调度算法包括先来先服务算法、最短寻道时间优先算法、扫描算法和循环扫描算法的平均寻道长度。 本实验是模拟操作系统的磁盘寻道方式,运用磁盘访问顺序的不同来设计磁盘的调度算法。实现的磁盘调度算法有FCFS,SSTF,SCAN,CSCAN和 NStepSCAN算法。设定开始磁道号寻道范围,依据起始扫描磁道号和最大磁道号数,随机产生要进行寻道的磁道号序列。选择磁盘调度算法,显示该算法的磁道访问顺序,计算出移动的磁道总数和平均寻道总数。按算法的寻道效率进行排序,并对各算法的性能进行分析比较。 实验指导: #include void FCFS(int b[],int n,int init) { int i,s,sum; int a[20]; for(i=0;i void SSTF(int b[],int n,int k) { int i,j,s,sum=0,p; int a[20]; for(i=0;i