资源简介
8
题目二 磁盘调度算法的模拟实现及对比
一、课程设计目的
通过磁盘调度算法的模拟设计,了解磁盘调度的特点。
二、课程设计内容
模拟实现FCFS、SSTF、电梯LOOK、C-SCAN 算法,并计算及比较磁头移动道数。
三、要求及提示
本题目必须单人完成。
1、首先假设磁盘磁道数为1500,磁头初始位置可任意设置。
2、用随机数生成函数产生“磁道号”序列(即磁盘请求的位置),共产生400 个。其中
50%位于0~499,25%分布在500~999,25%分布在1000~1499。具体的产生方法可参考
“题目一 页面置换算法的模拟实现及命中率对比”。
3、计算及比较每种磁盘调度算法下的磁头移动道数。
注:本题目要求给出图形可视化界面,并且能够动态模拟每个算法的调度过程,可采用
从上一个请求到下一个请求进行连线的方式。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender EventArgs e)
{
int i = 0 k = 0;
int n1 = 0;
int n2 = 0;
int n3 = 0;
while (i < 400)
{
k = ran.Next(1501);
if (k >= 0 && k <= 499)
{
if (n1 <= 200)
{
n1++;
a[i] = k;
i++;
}
}
if (k >= 500 && k <= 999)
{
if (n2 <= 100)
{
n2++;
a[i] = k;
i++;
}
}
if (k >= 1000 && k <= 1499)
{
if (n3 <= 100)
{
n3++;
a[i] = k;
i++;
}
}
}
for (int g = 0; g < 400; g++)
a1[g] = a[g];
Array.Sort(a);
}
int[] a = new int[400];//程序中的唯一一组随机数,用于模拟磁盘道数,已排序
int[] a1 = new int[400];//a数组未排序之前的拷贝,用于FIFO算法
int[] b = new int[401];//用于SSTF算法,按最短时间排序
Random ran = new Random();
int s1 = 0 s2 = 0 s3 = 0 s4 = 0;
int c1 = 0;
int c2 = 0;
int c3 = 0;
int c4 = 0;
int j = 0;
int s = 0 ss = 0;
int u = 0 uu = 0;
private void FCFS_Click(object sender EventArgs e)
{
int k y z;
for (int i = 0; i < 500; i++)
{
y = ran.Next(400);
z = ran.Next(400);
k = a1[y];
a1[y] = a1[z];
a1[z] = k;
}
this.chart1.Series[0].Points.AddXY(0 580);
c1++;
timer1.Start();
FCFS.Enabled = false;
}
private void SSTF_Click(object sender EventArgs e)
{
int left = 0 right = 0;
b[0] = 580;
this.chart1.Series[1].Points.AddXY(0 580);
c2++;
while (true)
{
if (a[j] > 580)
break;
else
j++;
}
for (int i = 0; i < 400; i++)
{
if (j - 1 - left >= 0 && j + right <= 399)
{
if (((b[i] - a[j - 1 - left]) - (a[j + right]
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16896 2014-12-19 11:49 磁盘调度算法\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe
文件 32256 2014-12-19 11:49 磁盘调度算法\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.pdb
文件 11600 2014-12-19 12:51 磁盘调度算法\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.vshost.exe
文件 490 2012-06-06 02:06 磁盘调度算法\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.vshost.exe.manifest
文件 8903 2014-12-19 11:49 磁盘调度算法\WindowsFormsApplication1\Form1.cs
文件 13860 2014-12-19 11:49 磁盘调度算法\WindowsFormsApplication1\Form1.Designer.cs
文件 6994 2014-12-19 01:28 磁盘调度算法\WindowsFormsApplication1\Form1.resx
文件 6272 2014-12-19 10:00 磁盘调度算法\WindowsFormsApplication1\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6579 2014-12-19 11:49 磁盘调度算法\WindowsFormsApplication1\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 2232 2014-12-19 12:51 磁盘调度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.csproj.FileListAbsolute.txt
文件 975 2014-12-19 01:28 磁盘调度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.csproj.GenerateResource.Cache
文件 10016 2014-12-19 10:12 磁盘调度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.csprojResolveAssemblyReference.cache
文件 16896 2014-12-19 11:49 磁盘调度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.exe
文件 180 2014-12-19 01:28 磁盘调度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.Form1.resources
文件 32256 2014-12-19 11:49 磁盘调度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.pdb
文件 180 2014-12-18 18:13 磁盘调度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.Properties.Resources.resources
文件 505 2014-12-18 18:09 磁盘调度算法\WindowsFormsApplication1\Program.cs
文件 1398 2014-12-18 18:09 磁盘调度算法\WindowsFormsApplication1\Properties\AssemblyInfo.cs
文件 2900 2014-12-18 18:09 磁盘调度算法\WindowsFormsApplication1\Properties\Resources.Designer.cs
文件 5612 2014-12-18 18:09 磁盘调度算法\WindowsFormsApplication1\Properties\Resources.resx
文件 1111 2014-12-18 18:09 磁盘调度算法\WindowsFormsApplication1\Properties\Settings.Designer.cs
文件 249 2014-12-18 18:09 磁盘调度算法\WindowsFormsApplication1\Properties\Settings.settings
文件 3775 2014-12-18 18:13 磁盘调度算法\WindowsFormsApplication1\WindowsFormsApplication1.csproj
文件 914 2014-12-18 18:09 磁盘调度算法\WindowsFormsApplication1.sln
..A..H. 20480 2014-12-19 12:52 磁盘调度算法\WindowsFormsApplication1.suo
目录 0 2014-12-18 18:09 磁盘调度算法\WindowsFormsApplication1\obj\x86\Debug\TempPE
目录 0 2014-12-19 12:56 磁盘调度算法\WindowsFormsApplication1\obj\x86\Debug
目录 0 2014-12-19 12:56 磁盘调度算法\WindowsFormsApplication1\bin\Debug
目录 0 2014-12-19 12:56 磁盘调度算法\WindowsFormsApplication1\obj\x86
目录 0 2014-12-19 12:56 磁盘调度算法\WindowsFormsApplication1\bin
............此处省略7个文件信息
相关资源
- 分区分配与回收算法模拟实现
- 模拟实现采用二级目录结构的磁盘文
- CSMA/CD 协议的模拟实现
- 在Linux环境下模拟实现命令解释器--操
- Linux C利用多进程或多线程模拟实现生
- 消息的发送与接受模拟实现
- 网络 arq 模拟实现
- 模拟实现采用二级目录结构的磁盘文
- 一个n个并发进程共享m个资源的银行家
- 模拟实现操作系统进程管理
- 操作系统基于动态优先权的进程调度
- 操作系统-页面置换算法的模拟实现及
- 动态分区存储管理的模拟实现
- 请求调页存储管理系统的模拟实现
- 一个电梯运行的简单模拟实现
- 操作系统的课程设计、请求调页存储
- 模拟实现单级目录、单级索引的索引
- 在Linux环境下模拟实现简单命令解释器
- 设计一个可变式分区分配的存储管理
- 5种进程调度算法的模拟实现实验报告
- 模拟实现单级目录的FAT文件系统.doc
- 基于反馈Feed Back,FB排队算法的CPU调度
- io流模拟实现银行登录,注册,存取转
- 基本段式存储管理的模拟实现
- linux下模拟实现命令解释器shell
- 在Linux环境下模拟实现命令解释器
- 在Linux环境下模拟实现命令解释器
- 模拟实现十字路口的交通灯管理系统
- 进程调度算法的模拟实现
评论
共有 条评论