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

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>Request[i]; }

for(i=0;iNeed[j][i]) { cout<<\进程\申请的资源大于他需要的资源\ cout<<\分配不合理,不予分配!\ ch='n'; break; } else if(Request[j]>Available[j]) { cout<<\进程\申请的资源大于系统可利用的资源\ cout<<\分配出错,不予分配!\ ch='n'; break; } if(ch='y') changedata(i); Print(); Safe(); if(Safe()==1) restore(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 #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=0;i--){