| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

操作系统课程设计磁盘调度算法

文***享

贡献于2021-01-16

字数:7887

操作系统课程设计磁盘调度算法
目 录
1 课程设计目求……………………………………………………1
2 相关知识…………………………………………………………………1
3 题目分析…………………………………………………………………2
4 概设计…………………………………………………………………2
41 先先服务(FCFS)设计思想………………………………2
42 短寻道时间优先调度(SSTF)设计思想…………………2
43 扫描算法(SCAN)设计思想…………………………………2
44 循环扫描(CSCAN)设计思想………………………………2
5 代码流程………………………………………………………………3
51 流程图……………………………………………………………3
52 源代码……………………………………………………………8
6 运行结果…………………………………………………………………16
7 设计心…………………………………………………………………19
参考文献…………………………………………………………………………19

1 课程设计目求
设计目:加深操作系统原理进步认识加强实践动手力程序开发力培养提高分析问题解决问题力培养合作精神巩固加深磁盘调度概念操作系统门工程性强课程仅求学生掌握操作系统工作原理理知识求学生实际动手力加深学容理解学生熟练掌握计算机操作方法种软件工具加强课程容理解次课程设计通模拟磁臂调度加深操作系统中磁臂调度概念理解学生熟悉磁盘理系统设计方法加深学种磁盘调度算法解算法特点
设计求:编程序实现述磁盘调度算法求出种算法均寻道长度求设计界面灵活选择某算法算法实现
1先先服务算法(FCFS)
2短寻道时间优先算法(SSTF)
3扫描算法(SCAN)
4循环扫描算法(CSCAN)
2 相关知识
数结构:数组
now前磁道号
array[]放置磁道号数组
void FCFS(int array[]int m )先先服务算法(FCFS)
void SSTF(int array[]int m)短寻道时间优先算法(SSTF)
void SCAN(int array[]int m) 扫描算法(SCAN)
void CSCAN(int array[]int m)循环扫描算法(CSCAN)
磁盘调度:进程请求访问磁盘时采种适驱动调度算法进程磁盘均访问(寻道)时间目前常磁盘调度算法:1)闲先服务2)短寻道时间优先3)扫描算法4)循环扫描算法等
3 题目分析
选择熟悉计算机系统程序设计语言模拟操作系统基功设计方法实现程
完成分项功算法实现程中求决定变量应动态变时模块应该合理输出结果具体参实验程序模拟 功程序求行编写程序实现调现操作系统提供模块功函数磁盘调度程序模拟先先服务调度算法 短寻道时间优先调度循环(SCAN)调度算法程序设计语言选终软件(含源代码执行程序)设计报告形式提交课程设计结果磁盘调度限资源发挥更作道程序设计计算机系统中进程会断提出磁盘进行读写操作请求时候进程发送请求速度磁盘响应快必磁盘设备建立等队列
4 概设计
1先先服务(FCFS)设计思想
先请求先响应FCFS策略起似相公请求频率高时候FCFS策略响应时间会延长FCFS策略建立起机访问机制模型假策略反复响应里外请求会消耗量时间量降低寻道时间需等着请求进行适排序简单FCFS策略程做磁盘调度理时候fcfs作简单磁盘调度算法
2短寻道时间优先调度(SSTF)设计思想
短时间优先算法选择样进程求访问磁道前磁头磁道距离次寻道时间短

3扫描算法(SCAN)设计思想
扫描(SCAN)调度算法该算法仅考虑欲访问 磁道前磁道间距离更优先考虑磁头前移动方例磁头正里外移动时SCAN算法考虑访问象应欲访问磁道前磁道外距离样里外访问直更外磁道需访问时磁道换外里移动时样次选择样进程调度访问前位置距离者样磁头逐步外里移动直更里面磁道访问避免出现饥饿现

4循环扫描(CSACN)设计思想
循环扫描(CSCAN)算法:磁头刚里外移动越某磁道时恰进程请求访问磁道时该里程必须等减少种延迟CSCAN算法规定磁头单移动实验程中设计磁头里外移动外里移动时须改方已实验未实现实验已完全演示循环扫描全程
5 代码流程
1先先服务(FCFS)

图 1—1 FCFS流程图



2短寻道时间优先调度(SSTF)

图1—2 SSTF流程图

3扫描算法(SCAN)

图1—3 SCAN流程图
4循环扫描(CSCAN)

图1—4 CSCAN流程图


图1—5 函数流程图
源代码:
#includestdioh
#includestdlibh
#includeiostreamh
#define maxsize 100 定义数组域

先先服务调度算法
void FCFS(int array[]int m)
{
int sum0ji
int avg
printf(\n FCFS调度结果 )
for(i0i{
printf(d array[i])
}
for(i0j1j{
sum+abs(array[j]array[i])累计总移动距离

}
avgsum(m1)计算均寻道长度
printf(\n 移动总道数: d \nsum)
printf( 均寻道长度: d \navg)

}


短寻道时间优先调度算法
void SSTF(int array[]int m)
{
int temp
int k1
int nowlr
int ijsum0
int avg
for(i0i{
for(ji+1j{
if(array[i]>array[j])两磁道号间较
{
temparray[i]
array[i]array[j]
array[j]temp
}
}
}
for( i0i{
printf(d array[i])
}
printf(\n 请输入前磁道号:)
scanf(d&now)
printf(\n SSTF调度结果 )
if(array[m1]{
for(im1i>0i)数组磁道号输出
printf(d array[i])
sumnowarray[0]计算移动距离
}
else if(array[0]>now)判断整数组里数否前磁道号
{
for(i0iprintf(d array[i])
sumarray[m1]now计算移动距离
}
else
{
while(array[k]{
k++
}
lk1
rk
确定前磁道已排序列中位置
while((l>0)&&(r{
if((nowarray[l])<(array[r]now))判断短距离
{
printf(d array[l])
sum+nowarray[l]计算移动距离
nowarray[l]
ll1
}
else
{
printf(d array[r])
sum+array[r]now计算移动距离
nowarray[r]
rr+1
}
}
if(l1)
{
for(jrj{
printf(d array[j])
}
sum+array[m1]array[0]计算移动距离
}
else
{
for(jlj>0j)
{
printf(d array[j])
}
sum+array[m1]array[0]计算移动距离
}
}
avgsumm
printf(\n 移动总道数: d \nsum)
printf( 均寻道长度: d \navg)

}
扫描算法

void SCAN(int array[]int m)先出前磁道号移动臂移动方
{
int temp
int k1
int nowlrd
int ijsum0
int avg
for(i0i{
for(ji+1j{
if(array[i]>array[j])磁道号进行排列
{
temparray[i]
array[i]array[j]
array[j]temp
}
}
}
for( i0i{
printf(d array[i])输出排序磁道号数组
}
printf(\n 请输入前磁道号:)
scanf(d&now)
if(array[m1]{
printf(\n SCAN调度结果 )
for(im1i>0i)
{
printf(d array[i])数组磁道号输出
}
sumnowarray[0]计算移动距离
}
else if(array[0]>now)判断整数组里数否前磁道号
{
printf(\n SCAN调度结果 )
for(i0i{
printf(d array[i])磁道号输出
}
sumarray[m1]now计算移动距离
}
else
{
while(array[k]{
k++
}
lk1
rk
printf(\n 请输入前移动臂移动方 (1 磁道号增加方0磁道号减方) )
scanf(d&d)
printf(\n SCAN调度结果 )
if(d0)
{
for(jlj>0j)
{
printf(d array[j])
}
for(jrj{
printf(d array[j])
}
sumnow2*array[0]+array[m1]计算移动距离
}磁道号减方
else
{
for(jrj{
printf(d array[j])
}
for(jlj>0j)
{
printf(d array[j])
}
sumnowarray[0]+2*array[m1]计算移动距离
}磁道号增加方
}
avgsumm
printf(\n 移动总道数: d \nsum)
printf( 均寻道长度: d \navg)

}

循环扫描算法
void CSCAN(int array[]int m)
{
int temp
int k1
int nowlrd
int ijsum0
int avg
for(i0i{
for(ji+1j{
if(array[i]>array[j])磁道号进行排列
{
temparray[i]
array[i]array[j]
array[j]temp
}
}
}
for( i0i{
printf(d array[i])输出排序磁道号数组
}
printf(\n 请输入前磁道号:)
scanf(d&now)
if(array[m1]{
printf(\n CSCAN调度结果 )
for(i0i{
printf(d array[i])磁道号输出
}
sumnowarray[0]+array[m1]计算移动距离
}
else if(array[0]>now)判断整数组里数否前磁道号
{
printf(\n CSCAN调度结果 )
for(i0i{
printf(d array[i])磁道号输出
}
sumarray[m1]now计算移动距离
}
else
{
while(array[k]{
k++
}
lk1
rk
printf(\n 请输入前移动臂移动方 (1 磁道号增加方0磁道号减方) )
scanf(d&d)
printf(\n CSCAN调度结果 )
if(d0)
{
for(jlj>0j)
{
printf(d array[j])
}
for(jm1j>rj)
{
printf(d array[j])
}
sum2*(array[m1]array[0])array[r]+now计算移动距离
}磁道号减方
else
{
for(jrj{
printf(d array[j])
}
for(j0j{
printf(d array[j])
}
sum2*(array[m1]array[0])+array[r1]now计算移动距离
}
}磁道号增加方
avgsumm
printf(\n 移动总道数: d \nsum)
printf( 均寻道长度: d \navg)
}

操作界面
int main()
{
int c
FILE *fp定义指针文件
int cidao[maxsize]定义磁道号数组
int i0count
fpfopen(cidaotxtr+)读取cidaotxt文件
if(fpNULL)判断文件否存
{
printf(\n 请 先 设 置 磁 道 \n)
exit(0)
}
while(feof(fp))果磁道文件存
{
fscanf(fpd&cidao[i])调入磁道号
i++
}
counti1
printf(\n \n)
printf( 1011年度OS课程设计磁盘调度算法系统\n)
printf( 计算机科学技术二班\n)
printf( 姓名:宋思扬\n)
printf( 学号:0803050203\n)
printf( 电话:************\n)
printf( 2010年12月29日\n)
printf(\n \n)
printf(\n 磁道读取结果:\n)
for(i0i{
printf(5dcidao[i])输出读取磁道磁道号
}
printf(\n )
while(1)
{
printf(\n 算法选择:\n)
printf( 1先先服务算法(FCFS)\n)
printf( 2短寻道时间优先算法(SSTF)\n)
printf( 3扫描算法(SCAN)\n)
printf( 4循环扫描算法(CSCAN)\n)
printf( 5 退出\n)
printf(\n)
printf(请选择:)
scanf(d&c)
if(c>5)
break
switch(c)算法选择
{
case 1
FCFS(cidaocount)先先服务算法
printf(\n)
break
case 2
SSTF(cidaocount)短寻道时间优先算法
printf(\n)
break
case 3
SCAN(cidaocount)扫描算法
printf(\n)
break
case 4
CSCAN(cidaocount)循环扫描算法
printf(\n)
break
case 5
exit(0)
}
}
return 0
}
6 运行结果


图2—1 运行界面

图2—2 运行FCFS界面

图2—3 运行SSTF界面

图2—4 运行SCAN界面



图2—5 运行SCAN界面

图2—6 运行CSCAN界面

图2—7 运行CSCAN界面
运行结果: 四种磁盘调度运行结果正确预期相符
7 设计心
次操作系统课程设计理实践两星期日子里说苦甜学东西时仅巩固前学知识学书没学知识通次课程设计懂理实际相结合重理知识远远够学理知识实践相结合起理中出结真正社会服务提高实际动手力独立思考力
次实验首先解磁盘调度工作原理四种调度方法工作原理课程设计前准备工作时先部分工作做完设计总程序框架时候注意功模块位置量做简洁序功模块程序正确衔接
设计程中遇许问题设计四种调度算法中两种例:初程序设计时两种构思:1)选数结构链表2)选数组初尝试链表觉方便易懂循环扫描处出现问题转变设计思路选数组直接进行排序然联系功模块
时设计程中发现足处前学知识理解够深刻掌握够牢固身知识漏洞实践验较缺乏理联系实际力急需提高说编语言掌握应程序编写太会……通次课程设计定前学知识重新温感谢课程设计程中帮解惑老师学







8 参考文献
[1] 操作系统 民邮电出版社 宗华 宗涛 陈吉 编著
[2] C语言程序设计 清华学出版社 马秀丽 刘志妩 李筠 编著
[3] 操作系统实验指导书 沈阳理工学 唐巍 菀勋 编著

文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

操作系统课程设计磁盘调度算法

《计算操作系统》课程设计报告 姓名: 班级:软件 学号: 指导老师:

文***品 3年前 上传462   0

操作系统实验三磁盘调度算法的实现

XX大学计算机与通信工程学院实验报告2013 至 2014 学年 第 一 学期课程名称操作系统学号 学生姓名 年级 专业 教学班号 实验地点 实验时间 2013年 月 日 第 节 至 月 日 第 节主讲教师 辅导教师 实验( 三 )实验名称磁盘调度算法的

文***享 3年前 上传479   0

进程调度算法的实现计算机操作系统课程设计

题目2 进程调度算法的实现2.1 题目的主要研究内容及预期达到的目标(1)设计进程控制块; (2)设计多个进程队列; (3)设计多个进程(≥20); (4)动态生成时间片、执行时间和优先级,将这些信息输出至文件中; (5)设计基于时间片的多优先级调度算法; (6)动态调度,并把所有调度信息输出至文件中。(7)理解进程调度相关理论;(8)掌握时间片调度原理;(9)掌握高优先级

文***品 3年前 上传585   0

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)实验三 进程调度一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。二、 实验要求1. 设计进程调度算法,进程数不定2. 包含几种调度算法,并加以实现3. 输出进程的调度

文***享 3年前 上传642   0

操作系统课程设计银行家算法报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级:计科班 专 业:计算机科学与技术 指导教师: 时 间: 2009 XX大学 计

文***品 3年前 上传618   0

操作系统课程设计银行家算法的模拟实现

操作系统课程设计报告专业计算机科学与技术学生姓名班级学号指导教师完成日期信息工程学院题目: 银行家算法的模拟实现 一、设计目的本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练,通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。

文***品 3年前 上传686   0

合工大页面置换算法操作系统课程设计报告

计算机与信息学院《操作系统综合设计》报告设计题目:页面置换算法学生姓名:学 号:专业班级:计算机科学与技术班2015 年 X月一、设计题目 3二、开发环境与工具 3三、设计原理 31.最佳(Optimal)置换算法 32.先进先出(FIFO)页面置换算法 43.最近最久未使

文***品 3年前 上传557   0

《操作系统 银行家算法》课程设计报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级: 计科班 专 业:计算机科学与技术 XX大学 计算机科学与信息学院目 录1 课程设计目的 ………………………………………

文***品 3年前 上传812   0

银行家算法《操作系统》课程设计报告

《操作系统》课程设计报告课题: 银行家算法 专业计算机科学与技术学生姓名班级计算机学号指导教师信息工程学院一、实验要求和实验目的实验目的:本课程设计是学生学习完《操作系统原理》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统

文***享 3年前 上传697   0

操作系统课程设计编程序模拟银行家算法

课程设计报告书 课程名称: 操作系统原理 题 目: 编程序模拟银行家算法 系 名: 信息工程系 专业班级: 软件 姓 名: 学 号:

文***品 3年前 上传726   0

实训7 操作系统安装和磁盘管理实训报告

实训7 操作系统安装和磁盘管理实训报告实训内容安装操作系统,利用操作系统自带工具进行磁盘分区、格式化。实训要求1. 熟悉操作系统安装方法2. 熟练利用操作系统自带工具进行磁盘分区和格式化3.了解操作系统安装过程中各项设置的含义实 训 数 据 记 录实训操作系统版本:一、安装操作系统1.设置BIOS,将CD-ROM设为第一启动设备。步骤简述:开机,按DEL进入BIOS,点击

H***t 4年前 上传1085   0

操作系统实验四主存空间的分配与回收首次适应算法和循环首次适应算法

实验报告【实验名称】 首次适应算法和循环首次适应算法 【实验目的】理解在连续分区动态的存储管理方式下,如何实现主存空间的分配与回收。【实验原理】首次适应(first fit,FF)算法FF算法要求空闲分区链以地址递增的次序链接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区即可。然后再按照作业的大小,从该分区中划出一块内存空间,分配给请求者,

文***品 3年前 上传1047   0

数据结构和算法课程设计题目

XX大学课程设计课程名称: 数 据 结 构 与 算 法院(部)名 称: 信息与计算科学学院组长姓名学号 同组人员姓名指导教师姓名: 设 计 时 间: 2010.6.7----2009.6.27一、《数据结构与算法》课程设计参考题目(一)参考题目一(每位同学选作一个,同组人员

文***品 11个月前 上传380   0

操作系统实验报告C语言实现银行家算法

实 验 报 告题 目名 称C语言实现银行家算法院 系信息科学与工程学院班 级完成时间指导老师本次实验成绩组长联系电话邮件地址组员(姓名,学号)主要任务程序算法的编写、实现、运行调试组员(姓名,学号)主要任务实验报告的完成组员(姓名,学号)主要任务实验报告的完成

文***品 3年前 上传469   0

驱动程序实验报告操作系统课程设计报告

操作系统课程设计报告班级: 计科 姓名: 学号: 老师: 时间:2012年X月X日一、设计目的操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学

文***享 1年前 上传300   0

操作系统课程设计动态分区分配存储管理

操作系统课程设计设计题目 动态分区分配存储管理学生姓名号学 号指导教师专业班级计算机班 第一章 课程设计概述1.1 设计任务:动态分区分配存储管理1.2 设计要求建立描述内存分配状况的数据结构;l建立描述进程的数据结构;l使用两种方式产生进程:(a)自动产生, (b)手工输入;l 在屏幕上显示内存的分配状况、每个进程的执行情况

文***品 2年前 上传422   0

哲学家进餐问题操作系统课程设计报告

XX学院 《操作系统》课程设计报告题 目: 哲学家进餐问题 班 级: 学 号: 作者姓名: 指导教师: 2011年X月X日目 录1.

z***u 2年前 上传777   0

操作系统课程设计报告树型目录文件系统

操作系统课程设计报告题目:树型目录文件系统 学 院 计算机学院 专 业 网络工程 年级班别 班 学 号 学生姓名 指导教师

文***享 3年前 上传543   0

数据结构课程设计报告最小生成树Kruskal算法

计算机科学与技术系课程设计报告 2014-2015学年第二学期课程数据结构课程设计名称Kruskal算法求最小生成树学生姓名 学号 专业班级 软件工程指导教师 2014年X月题目:设计程序完成如下功能:对给定过的网和起点,用kruskal算法的基本思想求解其所有的最小生成树1、问题分析和任务定义根据课设题目要求,拟将整体程序分为三大模块

文***品 1年前 上传206   0

生产者与消费者算法模拟课程设计

课程设计说明书题目: 生产者与消费者算法模拟 院 系: 计算机科学与工程 专业班级: 信息安全(xxxx)班 学 号: 学生姓名: xxxx 指导教师: xxxx 2013年 xx月 xx 日 xxxx大学课程设计

文***享 3年前 上传651   0

首次适应算法最佳适应算法

姓名:学号:实验名称:进程调度模拟实验 实验目的:了解动态分区存储管理方式中的数据结构和分配算法,加深对动态分区存储管理方式及其实现技术的理解。实验内容:#include<iostream.h>#include <malloc.h>typedef struct Spare{ int SA; int size;}spare;void init(spare *S,in

文***享 3年前 上传1629   0

用多线程同步方法解决生产者消费者问题操作系统课程设计

题 目用多线程同步方法解决生产者-消费者问题(Producer-Consumer Problem)学 院计算机科学与技术学院专 业软件工程班 级姓 名 指导教师 年月日 目 录目 录 1课程设计任务书 1正 文 21.设计

文***享 3年前 上传487   0

算法与数据结构的商品货架管理课程设计报告(还有程序源代码)

课程设计课 程: 算法与数据结构 题 目: 商品货架管理 专 业: 计算机类 班 级: 座 号: 姓 名: 2012年 X月 X 日一、要解决的问题商店货架以栈

文***品 1年前 上传322   0

备战操作系统

操作系统 操作系统概念:操作系统是控制其他程序运行,管理资源并为用户提供操作界面的系统软件的集合。 操作系统的功能有:处理机管理、存储管理、外围设备管理(又称I/0设备管理)、文件管理和操作系统接口 操作系统的基本特征有:异步性、虚拟性、并发性和共享性 进程 进程的概念:进程是一个可拥有资源的独立单位,又是一个可独立和分配的基本单位。 进程的组成:由程序段,相关的数据段和进程控制块(

t***u 9年前 上传7530   0

粒子群算法(优化算法)毕业设计论文

 毕 业 论 文 题 目 粒子群算法及其参数设置 专 业 信息与计算科学 班 级 学 号 学 生 指导教师

文***品 5年前 上传1468   0