-
大小: 56KB文件類(lèi)型: .rar金幣: 2下載: 0 次發(fā)布日期: 2024-02-01
- 語(yǔ)言: 其他
- 標(biāo)簽: 模擬實(shí)現(xiàn)??
資源簡(jiǎn)介
8
題目二 磁盤(pán)調(diào)度算法的模擬實(shí)現(xiàn)及對(duì)比
一、課程設(shè)計(jì)目的
通過(guò)磁盤(pán)調(diào)度算法的模擬設(shè)計(jì),了解磁盤(pán)調(diào)度的特點(diǎn)。
二、課程設(shè)計(jì)內(nèi)容
模擬實(shí)現(xiàn)FCFS、SSTF、電梯LOOK、C-SCAN 算法,并計(jì)算及比較磁頭移動(dòng)道數(shù)。
三、要求及提示
本題目必須單人完成。
1、首先假設(shè)磁盤(pán)磁道數(shù)為1500,磁頭初始位置可任意設(shè)置。
2、用隨機(jī)數(shù)生成函數(shù)產(chǎn)生“磁道號(hào)”序列(即磁盤(pán)請(qǐng)求的位置),共產(chǎn)生400 個(gè)。其中
50%位于0~499,25%分布在500~999,25%分布在1000~1499。具體的產(chǎn)生方法可參考
“題目一 頁(yè)面置換算法的模擬實(shí)現(xiàn)及命中率對(duì)比”。
3、計(jì)算及比較每種磁盤(pán)調(diào)度算法下的磁頭移動(dòng)道數(shù)。
注:本題目要求給出圖形可視化界面,并且能夠動(dòng)態(tài)模擬每個(gè)算法的調(diào)度過(guò)程,可采用
從上一個(gè)請(qǐng)求到下一個(gè)請(qǐng)求進(jìn)行連線的方式。

代碼片段和文件信息
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];//程序中的唯一一組隨機(jī)數(shù),用于模擬磁盤(pán)道數(shù),已排序
????????int[]?a1?=?new?int[400];//a數(shù)組未排序之前的拷貝,用于FIFO算法
????????int[]?b?=?new?int[401];//用于SSTF算法,按最短時(shí)間排序
????????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]
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件??????16896??2014-12-19?11:49??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe
?????文件??????32256??2014-12-19?11:49??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.pdb
?????文件??????11600??2014-12-19?12:51??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.vshost.exe
?????文件????????490??2012-06-06?02:06??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.vshost.exe.manifest
?????文件???????8903??2014-12-19?11:49??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\Form1.cs
?????文件??????13860??2014-12-19?11:49??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\Form1.Designer.cs
?????文件???????6994??2014-12-19?01:28??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\Form1.resx
?????文件???????6272??2014-12-19?10:00??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????6579??2014-12-19?11:49??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????2232??2014-12-19?12:51??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.csproj.FileListAbsolute.txt
?????文件????????975??2014-12-19?01:28??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.csproj.GenerateResource.Cache
?????文件??????10016??2014-12-19?10:12??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.csprojResolveAssemblyReference.cache
?????文件??????16896??2014-12-19?11:49??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.exe
?????文件????????180??2014-12-19?01:28??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.Form1.resources
?????文件??????32256??2014-12-19?11:49??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.pdb
?????文件????????180??2014-12-18?18:13??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.Properties.Resources.resources
?????文件????????505??2014-12-18?18:09??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\Program.cs
?????文件???????1398??2014-12-18?18:09??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\Properties\AssemblyInfo.cs
?????文件???????2900??2014-12-18?18:09??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\Properties\Resources.Designer.cs
?????文件???????5612??2014-12-18?18:09??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\Properties\Resources.resx
?????文件???????1111??2014-12-18?18:09??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\Properties\Settings.Designer.cs
?????文件????????249??2014-12-18?18:09??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\Properties\Settings.settings
?????文件???????3775??2014-12-18?18:13??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\WindowsFormsApplication1.csproj
?????文件????????914??2014-12-18?18:09??磁盤(pán)調(diào)度算法\WindowsFormsApplication1.sln
????..A..H.?????20480??2014-12-19?12:52??磁盤(pán)調(diào)度算法\WindowsFormsApplication1.suo
?????目錄??????????0??2014-12-18?18:09??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86\Debug\TempPE
?????目錄??????????0??2014-12-19?12:56??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86\Debug
?????目錄??????????0??2014-12-19?12:56??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\bin\Debug
?????目錄??????????0??2014-12-19?12:56??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\obj\x86
?????目錄??????????0??2014-12-19?12:56??磁盤(pán)調(diào)度算法\WindowsFormsApplication1\bin
............此處省略7個(gè)文件信息
評(píng)論
共有 條評(píng)論