2024年最全磁盘调度算法(FIFO、SSTF、SCAN、CSCAN(1),字节鸿蒙面试题

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

void show()
{
sum = 0;
cout <<" 被访问的下一磁道号 移动距离(磁道数)\n";
for(int i = 0;i < n; ++i)
{
printf(" %3d %3d\n", sp[i], lenp[i]);
sum += lenp[i];
}
cout <<" 平均寻道长度: “<<(double)sum/n <<”\n";
}
//先来先服务
void FCFS()
{
for(int i = 0;i < n; ++i)
{
sp[i] = p[i];
if(i) lenp[i] = abs(sp[i-1] - sp[i]);
else lenp[i] = abs(now - sp[i]);
}
}
//最短寻道优先
void SSTF()
{
nnow = now;
int fl[maxn] = {0};
for(int i = 0;i < n; ++i)
{
int minx = 999999, pp;
for(int j = 0;j < n; ++j)
{
if(!fl[j] && abs(nnow - p[j]) < minx)
{
minx = abs(nnow - p[j]);
pp = j;
}
}
sp[i] = p[pp];
lenp[i] = minx;
nnow = p[pp];
fl[pp] = 1;
}
}
//扫描算法
bool cmp(int a, int b)
{
return a > b;
}
void SCAN()
{
nnow = now;
int aa[maxn], bb[maxn], ak = 0, bk = 0;
for(int i = 0;i < n; ++i)
{
if(p[i] < nnow) aa[ak++] = p[i];
else bb[bk++] = p[i];
}
sort(aa, aa+ak,cmp);
sort(bb, bb+bk);
int i = 0;
for(int j = 0;j < bk; ++j)
{
sp[i] = bb[j];
lenp[i++] = bb[j] - nnow;
nnow = bb[j];
}
for(int j = 0;j < ak; ++j)
{
sp[i] = aa[j];
lenp[i++] = nnow - aa[j];
nnow = aa[j];
}
}
//循环扫描算法
void CSCAN()
{
nnow = now;
int aa[maxn], bb[maxn], ak = 0, bk = 0;
for(int i = 0;i < n; ++i)
{
if(p[i] < nnow) aa[ak++] = p[i];
else bb[bk++] = p[i];
}
sort(aa, aa+ak);
sort(bb, bb+bk);
int i = 0;
for(int j = 0;j < bk; ++j)
{
sp[i] = bb[j];
lenp[i++] = bb[j] - nnow;
nnow = bb[j];
}
for(int j = 0;j < ak; ++j)
{
sp[i] = aa[j];
lenp[i++] = abs(aa[j] - nnow);
nnow = aa[j];
}
}
int main()
{
xbegin:
cout<<"请输入被访问的总磁道数: ";
cin >> n;
if(n <= 0 || n > 100)
{
cout <<“输入不合法,请重新输入!\n”;
goto xbegin;
}
nowCD:
cout <<"请输入当前磁道: ";
cin >> now;

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

dn.net/topics/618636735)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值