资源简介
采用C++对操作系统课程中的LOOK电梯调度算法进行简单的描述,望采纳
代码片段和文件信息
/*
操作系统实验3-电梯调度算法
算法思想:每次总是选择沿移动臂的移动方向最近的那个柱面;如果同一柱面有多个请求,还需进行旋转优化。
如果当前移动方向没有但是相反方向有访问请求时,就改变移动臂的移动方向,然后处理最近的I/O请求。
实现方案:首先设置一个List1存放输入的一组访问序列,对List1进行从小到大排序,用户输入当前停留的柱面,
把当前的柱面存入顺序队列Queue1当中,在List当中找到当前柱面的位置,将其和上一个、下一个元素分别做差
比较大小,选择移动方向,之后就是从当前位置开始读取List中的数存到Queue当中,最后输出一组电梯调度算法的序列。
实验时间:2018.6.8
实验人:高耀
*/
#include
#include
#include
#include
#include
using namespace std;
int main() {
queue Queue1;
list List1;
int SUM = 0;
int a b c;
cout << “请输入柱面访问请求个数(包括当前访问的柱面):“ << endl;
cin >> c;
cout << “请输入柱面访问请求序列(包括当前访问的柱面):“ << endl;
for (int i = 0; i < c; i++) {
cin >> a;
List1.push_front(a);
}
List1.sort();
cout << “请输入当前柱面的位置(从之前输入的序列中选取一个):“ << endl;
cin >> b;
if (b == List1.front()) {
cout << “电梯调度算法后的访问序列为:“;
for (list::iterator it = List1.begin(); it != List1.end();it++) {
cout << *it << setw(4);
}
cout << endl;
system(“pause“);
exit(0);
}
else if (b==List1.back()) { //b 为LIST的最大元素
stackstack;
cout << “电梯调度算法后的访问序列为:“;
for (list::iterator iter = List1.begin(); iter != List1.end(); iter++) {
stack.push(*iter);
}
while (!stack.emp
- 上一篇:c语言程序设计_销售管理系统
- 下一篇:简单编译器
相关资源
- Linux操作系统下C语言编程从零开始
- 操作系统存储管理实验报告c/c++
- BORLAND C++ 3.1精简版
- 操作系统课程设计(银行家算法)附
- 现代操作系统第三版高清
- C++操作系统课设-进程管理
- C语言电梯调度算法
- 哲学家进餐问题的c++模拟实现
- 操作系统课程设计(生产者-消费者存
- 操作系统——5个实验.zip
- 操作系统进程管理实验
- 段页式存储管理地址转换
- 操作系统—页面置换算法C++实现
- 操作系统 内存管理 模拟 图形界面
- 银行家算法 mfc 含源代码 界面 操作系
- 操作系统生产者消费者问题MFC动态实
- 操作系统课程设计:Windows 命令接口之
- 操作系统课程大作业-文件管理系统
- CMFCOutlookBar
- C语言实现最低松弛度优先算法源代码
- 操作系统信号量PV经典问题:沉睡的理
- 基于C++的银行家算法模拟实现
- 生产者消费者问题源码-MFC实现-进程模
- 操作系统实验 进程调度 高响应比优先
- 操作系统文件管理C++代码实现
- 嗜睡的理发师进程同步与实现c++
- 安徽大学操作系统实验八基于扫描的
- 安徽大学操作系统实验四主存空间的
- 操作系统——银行家算法
- 操作系统_生产者消费者c++、mfc实现
评论
共有 条评论