SSTF 调度算法 磁盘
来源:互联网 发布:泰牛程序员学费多少 编辑:程序博客网 时间:2024/06/01 23:44
/*SSTF调度*/
#include <stdio.h>
#include <math.h>
#define N 100
#define MAX 10001
typedef struct Pro{
float aim;
float change;
bool loc;
}Pro;
Pro P[N];
void InputData(Pro a[],int n){
for(int i=0;i<n;i++){
printf("第%d进程位置",i+1);
scanf("%f",&a[i].aim);
a[i].loc=false;
}
}
float OutPutFinal(Pro a[],int n){
float sum=0;
for(int i=0;i<n;i++){
sum=sum+a[i].change;
}
return sum/n;
}
void Print(Pro a[],int i){
printf(" %d %3.0f %3.0f\n",i+1,a[i].aim,a[i].change);
}
int FindAim(Pro a[],int n,float location){
float mix=MAX;
int tag=0;
for(int i=0;i<n;i++){
if(mix>=abs(location-a[i].aim)&&!a[i].loc){
tag=i;
mix=abs(location-a[i].aim);
}
}
return tag;
}
bool Check(Pro a[],int n){
for(int i=0;i<n;i++){
if(!a[i].loc)
return true;
}
return false;
}
int main(){
int n,location,k;
int i=0;
printf("输入进程的个数:");
scanf("%d",&n);
printf("当前位置:");
scanf("%d",&location);
k=location;
InputData(P,n);
printf(" 起始位置%d\n",location);
printf(" 进程 目标位置 改变位置\n");
while(Check(P,n)){
i=FindAim(P,n,location);
P[i].loc=true;
P[i].change=abs(P[i].aim-location);
location=P[i].aim;
Print(P,i);
}
printf("ave=平均移动为%.2f\n",OutPutFinal(P,n));
return 0;
}
#include <stdio.h>
#include <math.h>
#define N 100
#define MAX 10001
typedef struct Pro{
float aim;
float change;
bool loc;
}Pro;
Pro P[N];
void InputData(Pro a[],int n){
for(int i=0;i<n;i++){
printf("第%d进程位置",i+1);
scanf("%f",&a[i].aim);
a[i].loc=false;
}
}
float OutPutFinal(Pro a[],int n){
float sum=0;
for(int i=0;i<n;i++){
sum=sum+a[i].change;
}
return sum/n;
}
void Print(Pro a[],int i){
printf(" %d %3.0f %3.0f\n",i+1,a[i].aim,a[i].change);
}
int FindAim(Pro a[],int n,float location){
float mix=MAX;
int tag=0;
for(int i=0;i<n;i++){
if(mix>=abs(location-a[i].aim)&&!a[i].loc){
tag=i;
mix=abs(location-a[i].aim);
}
}
return tag;
}
bool Check(Pro a[],int n){
for(int i=0;i<n;i++){
if(!a[i].loc)
return true;
}
return false;
}
int main(){
int n,location,k;
int i=0;
printf("输入进程的个数:");
scanf("%d",&n);
printf("当前位置:");
scanf("%d",&location);
k=location;
InputData(P,n);
printf(" 起始位置%d\n",location);
printf(" 进程 目标位置 改变位置\n");
while(Check(P,n)){
i=FindAim(P,n,location);
P[i].loc=true;
P[i].change=abs(P[i].aim-location);
location=P[i].aim;
Print(P,i);
}
printf("ave=平均移动为%.2f\n",OutPutFinal(P,n));
return 0;
}
0 0
- SSTF 调度算法 磁盘
- 磁盘调度算法(FCFS&&SSTF)
- 磁盘调度算法(FCFS,SSTF,SCAN)
- 磁盘调度算法剖析(FIFO、SSTF、SCAN、CSCAN、FSCAN)
- 磁盘调度算法剖析(FIFO、SSTF、SCAN、CSCAN、FSCAN)
- 磁盘调度算法剖析(FIFO、SSTF、SCAN、CSCAN、FSCAN)
- 磁盘调度算法剖析(FIFO、SSTF、SCAN、CSCAN、FSCAN)
- 磁盘调度算法FIFO、SSTF、SCAN、CSCAN、FSCAN
- [Python]磁盘调度算法FCFS,SSTF,SCAN,CSCAN
- 操作系统实验之磁盘调度算法模拟(最短寻道时间优先SSTF 和 扫描算法SCAN)
- 操作系统中磁盘调度算法(FIFO,SSTF,SCAN,C-SCAN)
- 操作系统中磁盘调度算法(FIFO,SSTF,SCAN,C-SCAN)
- 磁盘调度算法(FIFO、SSTF、SCAN、CSCAN)(已经更新bug)
- 磁盘调度算法
- 磁盘调度算法集锦
- 磁盘调度算法
- 浅谈 磁盘调度算法
- 磁盘调度算法
- Oracle RAC
- QT程序在发布的时候应注意的地方
- php的Mysql数据库连接类
- Android中的Serializable和Parcelable
- 原生js拖拽
- SSTF 调度算法 磁盘
- 移动端固定输入框在底部会被键盘遮挡的解决方法
- QT中获取选中的radioButton的两种方法
- 如何快速转载CSDN上的博客
- GOTURN 算法
- js值类型和引用类型
- Flow Tables
- 【脚本语言系列】关于Python文本解析XML,你需要知道的事
- 配置Tomcat/Resin 支持TLS 1.2