假定一个移动头磁盘的磁头在50柱面位置,正向大号运动,其后的请求服务柱面序列为:86,147,91,177,132,100,32,50,70,15,189,用电梯调度算法时,臂的总移动柱面数是多少
时间: 2024-04-02 08:36:58 浏览: 204
根据电梯调度算法,移动头磁盘的磁头在50柱面位置开始正向大号运动,服务请求柱面序列中的请求按照升序排列,直到没有服务请求为止,因此移动头磁盘的磁头在每个服务请求柱面中,只会按照升序移动,直到达到最大的服务请求柱面,然后就会掉头向反方向运动,继续处理后面的服务请求。
按照以上算法,移动头磁盘处理请求的顺序为:50 -> 70 -> 86 -> 91 -> 100 -> 132 -> 147 -> 177 -> 189 -> 15 -> 32,总移动柱面数为:
(70-50) + (86-70) + (91-86) + (100-91) + (132-100) + (147-132) + (177-147) + (189-177) + (189-15) + (32-15) = 925
因此,移动头磁盘的磁头总共需要移动925个柱面。
相关问题
用python算法写下面题目 驱动调度-采用电梯调度算法排列出磁盘请求响应次序 题目描述: 要求输入一个柱面访问请求序列以及当前磁头所在柱面号和移动方向,输出采用电梯调度算法时移动臂响应的柱面访问序列 输入格式: 程序要求输入3行,以回车符号作为分隔 第1行是2个整数n、m,之间用空格隔开,n表示当前磁头所在的柱面号;m表示第二行输入m个数 第2行是m个整数,数之间以空格作为分隔,表示柱面访问请求序列 第3行是数字 -1 或 1,当为 -1 时表示移动臂向柱面号减小方向移动,当为 1 时表示移动臂向柱面号增大方向移动 输出格式: 输出m个整数,数之间以空格作为分隔,采用电梯调度算法时移动臂响应的柱面访问序列。 测试数据: 样例输入1: 15 10 24 38 2 110 43 36 5 11 6 180 -1 样例输出1: 11 6 5 2 24 36 38 43 110 180
以下是Python代码实现。
```python
n, m = map(int, input().split())
request = list(map(int, input().split()))
direction = int(input())
# 初始方向为向右,即增大方向
move_direction = 1
# 将请求按照方向排序
if direction == -1:
request = sorted(request, reverse=True)
move_direction = -1
else:
request = sorted(request)
# 加入起始点
request.append(n)
request.insert(0, n)
cur_pos = request.index(n)
result = []
while len(request) > 2:
if move_direction == 1:
for i in range(cur_pos+1, len(request)):
result.append(request[i])
for i in range(cur_pos-1, -1, -1):
result.append(request[i])
else:
for i in range(cur_pos-1, -1, -1):
result.append(request[i])
for i in range(cur_pos+1, len(request)):
result.append(request[i])
cur_pos = 0
request = result.copy()
result = []
print(" ".join(str(x) for x in request[1:-1]))
```
算法流程如下:
1. 读取输入数据,将请求按照方向排序,并加入起始点和终止点。
2. 初始化当前位置为起始点的位置,初始化结果列表为空。
3. 当请求列表长度大于2时,根据移动方向依次遍历请求列表,将结果添加到结果列表中。
4. 更新当前位置为起始点的位置,将请求列表替换为结果列表,清空结果列表。
5. 输出结果列表中除起始点和终止点的所有元素。
注意:这里没有考虑请求列表为空的情况,需要根据实际情况进行处理。
、某磁盘系统有 200 个柱面,由外向里升序编号,假定当前磁头向里移动后停在 100 号柱 面。现有如下访问磁盘请求序列:190、10、160、80、90、125、30、20、140、25,试给出 分别采用 SSTF 和 CSCAN 磁盘调度算法时响应上述请求的次序,
采用 SSTF 算法时,每次选择离当前磁头最近的请求进行访问,因此响应次序为:
100 -> 90 -> 80 -> 30 -> 25 -> 20 -> 10 -> 125 -> 140 -> 160 -> 190
采用 CSCAN 算法时,磁头按照柱面编号升序移动,当到达最后一个柱面时,磁头立即返回到第一个柱面继续扫描。因此响应次序为:
100 -> 125 -> 140 -> 160 -> 190 -> 10 -> 20 -> 25 -> 30 -> 80 -> 90
阅读全文
相关推荐














