Files
disk-scheduling/index.html
T
2024-11-28 22:45:00 +08:00

159 lines
6.2 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta property="og:title" content="磁盘调度算法可视化" />
<meta property="og:description" content="磁盘调度算法可视化" />
<meta
property="og:image"
content="https://proxy.xixu.us.kg/?url=https%3A%2F%2Fxi-xu.me%2Fimages%2Ffavicon.png"
/>
<meta property="og:url" content="https://os.xixu.us.kg" />
<meta name="description" content="磁盘调度算法可视化" />
<meta name="keywords" content="磁盘调度算法可视化" />
<title>磁盘调度算法可视化</title>
<link
rel="icon"
href="https://proxy.xixu.us.kg/?url=https%3A%2F%2Fxi-xu.me%2Fimages%2Ffavicon.png"
type="image/png"
/>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<div class="container">
<h1>磁盘调度算法可视化</h1>
<div class="controls">
<div class="input-row">
<label>磁头初始位置:</label>
<input
type="number"
id="initialHead"
value="70"
min="0"
max="199"
/>
<label>请求队列:</label>
<input
type="text"
id="requestQueue"
value="82,170,43,140,24,16,190"
placeholder="用逗号分隔的数字"
/>
</div>
<div class="buttons-row">
<button onclick="reset()">重置</button>
<button onclick="startFCFS()">开始 FCFS</button>
<button onclick="startSSTF()">开始 SSTF</button>
<button onclick="startSCAN()">开始 SCAN</button>
<label>SCAN 初始方向:</label>
<select id="scanDirection">
<option value="right">向右</option>
<option value="left">向左</option>
</select>
</div>
</div>
<div class="disk-track" id="diskTrack">
<div class="head" id="head"></div>
<div class="track-scale">
<span>0</span>
<span>50</span>
<span>100</span>
<span>150</span>
<span>199</span>
</div>
</div>
<div id="stats">
<div class="stat-item">
<span>总寻道时间:</span>
<span class="stat-value" id="seekTime">0</span>
</div>
<div class="stat-item">
<span>当前位置:</span>
<span class="stat-value" id="currentPos">0</span>
</div>
</div>
<div class="seek-time-comparison">
<div class="comparison-header">
<button
onclick="resetComparisonTable()"
class="reset-table-btn"
>
重置表格
</button>
</div>
<table id="comparisonTable">
<thead>
<tr>
<th>算法</th>
<th>总寻道时间</th>
<th>执行顺序</th>
</tr>
</thead>
<tbody>
<tr id="fcfsRow">
<td>FCFS</td>
<td>-</td>
<td>-</td>
</tr>
<tr id="sstfRow">
<td>SSTF</td>
<td>-</td>
<td>-</td>
</tr>
<tr id="scanRow">
<td>SCAN</td>
<td>-</td>
<td>-</td>
</tr>
</tbody>
</table>
</div>
<details class="algorithm-comparison">
<summary>算法特点比较</summary>
<div class="comparison-content">
<div class="algorithm-card">
<h3>FCFS (先来先服务)</h3>
<ul>
<li>按请求到达的顺序进行服务</li>
<li>实现简单,公平</li>
<li>性能较差,可能造成磁头频繁长距离移动</li>
<li>不会出现饥饿现象</li>
</ul>
</div>
<div class="algorithm-card">
<h3>SSTF (最短寻道时间优先)</h3>
<ul>
<li>优先处理距离当前磁头最近的请求</li>
<li>平均寻道时间较短</li>
<li>可能造成远处请求长时间等待(饥饿)</li>
<li>局部性能优秀</li>
</ul>
</div>
<div class="algorithm-card">
<h3>SCAN (电梯算法)</h3>
<ul>
<li>按一个方向移动直到末端,再反向移动</li>
<li>避免了饥饿现象</li>
<li>对于双向磁盘访问较为公平</li>
<li>性能介于 FCFS 和 SSTF 之间</li>
</ul>
</div>
</div>
</details>
<footer class="copyright">
<p>Copyright &copy; 2024 null. All rights reserved.</p>
</footer>
</div>
<script src="script.js"></script>
</body>
</html>