当前位置: 首页 > wzjs >正文

试玩平台网站怎么做青岛网站优化排名

试玩平台网站怎么做,青岛网站优化排名,做婚纱网站的步骤,wordpress 喜欢 插件文章目录 一、实验目的实验内容设计思路 三、实验代码实现四、总结 一、实验目的 加深对磁盘调度算法的理解,进一步掌握先来先服务算法、最短寻道时间优先算法、SCAN和循环SCAN算法的实现方法。 实验内容 1.设计程序模拟先来先服务算法、最短寻道时间优先算法、S…

文章目录

    • 一、实验目的
      • 实验内容
      • 设计思路
    • 三、实验代码实现
    • 四、总结

一、实验目的

加深对磁盘调度算法的理解,进一步掌握先来先服务算法、最短寻道时间优先算法、SCAN和循环SCAN算法的实现方法。

实验内容

1.设计程序模拟先来先服务算法、最短寻道时间优先算法、SCAN和循环SCAN算法的工作过程。
2.分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度。

设计思路

先来先服务(FCFS)算法
最短寻道时间优先(SSTF)算法
SCAN 算法
循环 SCAN(C-SCAN)算法

三、实验代码实现

  1. 先来先服务(FCFS)算法
    FCFS 是最简单的磁盘调度算法,按照请求到达的先后顺序依次处理。实现代码如下:
// 先来先服务算法(FCFS)
void FCFS(int request[], int n, int head) {int total_distance = 0;printf("FCFS磁盘调度顺序:\n");printf("%d ", head);for (int i = 0; i < n; i++) {int distance = abs(request[i] - head);total_distance += distance;head = request[i];printf("%d ", head);}printf("\n平均寻道长度: %.2f\n", (float)total_distance / n);
}
  1. 最短寻道时间优先(SSTF)算法
    SSTF 算法选择距离当前磁头位置最近的请求进行处理,能够有效减少总寻道时间。

// 最短寻道时间优先算法(SSTF)
void SSTF(int request[], int n, int head) {int total_distance = 0;int visited[n];for (int i = 0; i < n; i++)visited[i] = 0;printf("SSTF磁盘调度顺序:\n");printf("%d ", head);for (int count = 0; count < n; count++) {int min_distance = 1000000;int index = -1;for (int i = 0; i < n; i++) {if (!visited[i]) {int distance = abs(request[i] - head);if (distance < min_distance) {min_distance = distance;index = i;}}}visited[index] = 1;total_distance += min_distance;head = request[index];printf("%d ", head);}printf("\n平均寻道长度: %.2f\n", (float)total_distance / n);
}
  1. SCAN 算法
    SCAN 算法也称为电梯算法,磁头向一个方向移动,处理途中的所有请求,直到到达磁盘边缘,然后改变方向继续处理。

// SCAN算法
void SCAN(int request[], int n, int head, int disk_size) {int total_distance = 0;int visited[n];for (int i = 0; i < n; i++)visited[i] = 0;// 对请求磁道号数组进行排序for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - i - 1; j++) {if (request[j] > request[j + 1]) {int temp = request[j];request[j] = request[j + 1];request[j + 1] = temp;}}}int index = 0;while (index < n && request[index] < head)index++;printf("SCAN磁盘调度顺序:\n");printf("%d ", head);// 向磁盘号增大的方向移动for (int i = index; i < n; i++) {total_distance += abs(request[i] - head);head = request[i];printf("%d ", head);}// 向磁盘号减小的方向移动(如果有需要)if (index > 0) {total_distance += abs(request[0] - head);head = request[0];printf("%d ", head);for (int i = 1; i < index; i++) {total_distance += abs(request[i] - head);head = request[i];printf("%d ", head);}}printf("\n平均寻道长度: %.2f\n", (float)total_distance / n);
}
  1. 循环 SCAN(C-SCAN)算法
    C-SCAN 算法是 SCAN 算法的变种,磁头只向一个方向移动,到达边缘后立即返回到起始位置继续移动。
// 循环SCAN算法(C-SCAN)
void C_SCAN(int request[], int n, int head, int disk_size) {int total_distance = 0;int visited[n];for (int i = 0; i < n; i++)visited[i] = 0;// 对请求磁道号数组进行排序for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - i - 1; j++) {if (request[j] > request[j + 1]) {int temp = request[j];request[j] = request[j + 1];request[j + 1] = temp;}}}int index = 0;while (index < n && request[index] < head)index++;printf("C-SCAN磁盘调度顺序:\n");printf("%d ", head);// 向磁盘号增大的方向移动直到末尾for (int i = index; i < n; i++) {total_distance += abs(request[i] - head);head = request[i];printf("%d ", head);}// 直接跳到磁盘号最小的磁道,继续扫描total_distance += abs(request[0] - head);head = request[0];printf("%d ", head);for (int i = 1; i < index; i++) {total_distance += abs(request[i] - head);head = request[i];printf("%d ", head);}printf("\n平均寻道长度: %.2f\n", (float)total_distance / n);
}

结果分析:
在这里插入图片描述
从实验结果可以看出:

FCFS 算法实现简单,但平均寻道长度最大,性能最差,因为它不考虑磁头的移动方向和距离。
SSTF 算法的平均寻道长度最小,性能最优,因为它总是选择最近的请求处理,但可能导致某些请求长期得不到服务(饥饿现象)。
SCAN 算法和 SSTF 性能接近,避免了饥饿现象,但由于需要改变方向,可能会增加一些额外的寻道时间。
C-SCAN 算法的平均寻道长度略高于 SCAN,因为它返回起点需要跨越整个磁盘,但它提供了更均匀的响应时间。

四、总结

  • 遇到的问题
    1致命语法错误:行头缺失
    遇到的问题
    函数命名冲突:malloc函数是标准库函数,在代码中重新定义会导致冲突。
    在这里插入图片描述
    编译后提示错误,malloc 函数是标准库函数,重新定义会导致冲突。mfree 函数参数类型与标准库函数不匹配。指针转换为整数类型时需要进行类型转换。
    参数类型不匹配:mfree函数参数类型与标准库函数不匹配。
    类型转换问题:指针转换为整数类型时需要进行类型转换。
  1. 例如 SCAN 和 C-SCAN 算法需要对请求进行排序,这增加了算法的复杂度。此外,不同的初始磁头位置和请求序列会对算法性能产生显著影响。

通过本次实验,我深入理解了四种磁盘调度算法的工作原理和实现方法。不同的算法在不同的场景下有不同的优势:
FCFS 适用于请求较少或对公平性要求较高的场景。
SSTF 适用于大多数场景,能有效减少平均寻道时间。
SCAN 和 C-SCAN 适用于对响应时间分布要求较高的场景,如数据库系统。

通过比较各算法的性能,我认识到在实际操作系统中,需要根据系统的特点和应用需求选择合适的磁盘调度算法,以优化系统性能。


文章转载自:

http://tIdLtC2x.jzkqg.cn
http://1xW9k3gN.jzkqg.cn
http://tFJMOHsn.jzkqg.cn
http://dXBrsuZz.jzkqg.cn
http://WDM0buit.jzkqg.cn
http://5clvyGu9.jzkqg.cn
http://n9Z9qkgs.jzkqg.cn
http://HiaKM2IP.jzkqg.cn
http://sio8VJLV.jzkqg.cn
http://bs0I50mu.jzkqg.cn
http://Q3Qzc4f8.jzkqg.cn
http://klqbu4w1.jzkqg.cn
http://VrPkewGh.jzkqg.cn
http://ZH2ysGeW.jzkqg.cn
http://Kq7OWJDy.jzkqg.cn
http://F3wVzGzO.jzkqg.cn
http://VGp6Vj1P.jzkqg.cn
http://JQc2hKyD.jzkqg.cn
http://XVgCQSRg.jzkqg.cn
http://pU6nG2VL.jzkqg.cn
http://JYMgFL31.jzkqg.cn
http://WaxVBRze.jzkqg.cn
http://5MmYDzfe.jzkqg.cn
http://VdQHkPD1.jzkqg.cn
http://7NFpa2ig.jzkqg.cn
http://BfTtY1Cq.jzkqg.cn
http://bUNxOnyd.jzkqg.cn
http://N1s5545F.jzkqg.cn
http://QrfScqbY.jzkqg.cn
http://f7IbDHRg.jzkqg.cn
http://www.dtcms.com/wzjs/759135.html

相关文章:

  • 如何建立英文网站58同城租房做网站怎么弄
  • 如何在ftp给网站做百度自动推送广西网站建设推广大概需要多少钱
  • 加强局网站建设报告广告门
  • phpcms做视频网站首页网站建设内容大全
  • 老薛主机做电影网站建设网站建设网页制作0402高设计词
  • 青岛市崂山区城乡建设局网站携程网站模板
  • 网站主题 模板wordpress网站相册
  • 做网站需要用c语言吗沈阳市住房和城乡建设局网站首页
  • 辽宁沈阳建设工程信息网站怎么推广自己的偏方
  • 多个网站备案负责人移动端网站搭建
  • 做网站运用的软件上海企业响应式网站建设推荐
  • 英文网站建设合同中国住房城乡建设部网站
  • 网站建设推广市场网站代码怎么看
  • wordpress的官方网站网站的开发是使用什么技术
  • 长春网站制作建设wordpress 美容主题
  • 君隆网站建设开发一款小程序
  • php 个人网站网站备案视频
  • 网站建设可以先备案嘛大型网站制作费用表
  • 做网站 花时间新网站seo优化
  • 网站怎么增加关键词库工业品网络营销
  • 自建网站编程网站上线之前怎么做推广
  • 解决方案企业网站佛山网页模板建站
  • 六安高端网站建设公司施秉网站建设
  • 网站的关键词库怎么做什么网站可以制作套餐
  • 鹰潭网站建设wordpress主题08影视
  • c 网站开发部署资讯网站 怎么做
  • 我想自己建立一个网站seo营销的策略有哪些
  • 网站建设外文文献翻译外贸网站 沙盒
  • 自己做代练网站美橙网站建设经典案例
  • 用wex5可以做网站吗贵州省建设执业资格促进会网站