145 lines
5.7 KiB
HTML
145 lines
5.7 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>
|
|
|
|
<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">
|
|
<h3>算法性能比较</h3>
|
|
<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 © 2024 null. All rights reserved.</p>
|
|
</footer>
|
|
</div>
|
|
<script src="script.js"></script>
|
|
</body>
|
|
</html>
|