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


    
    XX学

    计算机通信工程学院


    实验报告


    2013 2014 学年 第 学期








    课程名称
    操作系统
    学号

    学生姓名

    年级

    专业

    教学班号

    实验点

    实验时间
    2013年 月 日 第 节 月 日 第 节
    讲教师

    辅导教师





    实验( 三 )
    实验名称
    磁盘调度算法实现
    软件环境


    VC++60
    硬件环境


    PC机
    实验目
    操作系统计算机科学技术专业信息计算科学专业科教学计划中门重专业基础课程计算机系统硬﹑软件资源进行理系统软件计算机系统理指挥中心通课程实验学生综合运程序设计基础语言数结构计算机原理接口等先行课程知识操作系统课程知识种资源理调度策略设计操作系统资源理模拟程序学生加深解操作系统工作机理操作系统功结构设计更加深入实践开发系统软件应软件基础
    实验容(应包括实验题目实验求实验务等)
    实验容:
    1实验模拟操作系统磁盘寻道方式运磁盘访问序设计磁盘调度算法
    2实现磁盘调度算法FCFSSSTFSCANCSCAN NStepSCAN算法
    3设定开始磁道号寻道范围起始扫描磁道号磁道号数机产生进行寻道磁道号序列
    4选择磁盘调度算法显示该算法磁道访问序计算出移动磁道总数均寻道总数
    5算法寻道效率进行排序算法性进行分析较
    实验求:
    学生应正确设计关数结构功模块画出程序流程图编写程序程序执行结果应正确
    实验程实验结果(包括实验实施步骤算法描述流程结等)
    VC++60编写代码
    #include
    #include
    using namespace std
    void FCFS(int a[]int n)
    void SSTF(int a[]int n)
    void SCAN(int a[]int n)
    void CSCAN(int a[]int n)
    int main()
    {
    int n磁道数
    int s功号
    cout<<请输入磁道数:< cin>>n
    int *anew int[n]
    cout<<生成机磁道号< srand((unsigned)time(NULL))
    for(int i0i {
    a[i](rand()100)+1
    cout< cout< while(1) {
    cout< cout<<1先先服务算法(FCFS)< cout<<2短寻道时间算法(SSTF)< cout<<3扫描算法(SCAN)< cout<<4循环扫描算法(CSCAN)< cout<<0退出< cout< cout<<请选择功号
    cin>>s
    if(s>4){
    cout<<输入误< else{
    switch(s){ case 0 exit(0)break
    case 1FCFS(an) break
    case 2SSTF(a n)break
    case 3SCAN(a n)break
    case 4CSCAN(an)break } }}
    return 0 }
    先先服务调度算法(FCFS)
    void FCFS(int a[]int n){
    int sum0jifirst0now
    cout<<请输入前磁道号:
    cin>>now确定前磁头位置
    cout<<磁盘调度序:<for( i0i{
    cout<计算sum
    for(i0j1j first+abs(a[j]a[i])外围磁道里面磁道距离
    }
    sum+first+abs(nowa[0])
    cout<cout<<移动总磁道数: <短寻道时间算法(SSTF)
    void SSTF(int a[]int n){
    int temp
    int k1
    int nowlr
    int ijsum0
    磁道号递增排序
    for(i0ifor(ji+1j if(a[i]>a[j])
    {
    tempa[i]
    a[i]a[j]
    a[j]temp }}
    cout<<递增序排磁道:<for( i0icout<}
    cout<cout<<请输入前磁道号:
    cin>>now确定前磁头位置
    cout<<磁盘调度序:<if(a[n1]{
    for(in1i>0i)
    cout< sumnowa[0]}
    else
    if(a[0]>now)前磁头位置里欲访问磁道
    {
    for(i0i cout< suma[n1]now}
    else{
    while(a[k] {
    k++
    }
    lk1磁头位置前欲访问磁道
    rk磁头欲访问磁道
    while((l>0)&&(r if((nowa[l])<(a[r]now))选择离磁头磁道
    {
    cout< sum+nowa[l]
    nowa[l]
    ll1 }
    else{
    cout< sum+a[r]now
    nowa[r]
    rr+1} }
    if(l1)磁头位置里侧磁道已访问完
    {
    for(jrj {
    cout< sum+a[n1]a[0]}
    if(rn)磁头位置外侧磁道已访问完
    {
    for(jk1j>1j) 访问磁头位置里侧磁道
    {
    cout< sum+a[n1]a[0]} }
    cout< cout<<移动总道数<}
    扫描算法(SCAN)
    void SCAN(int a[]int n)
    {
    int temp
    int k1
    int nowlr
    int ijsum0
    for(i0i for(ji+1j{
    if(a[i]>a[j])
    {
    tempa[i]
    a[i]a[j]
    a[j]temp
    }
    }
    cout<<递增序排磁道:<for( i0i{
    cout<}
    cout<cout<<请输入前磁道号:
    cin>>now
    算法确定磁道访问序
    if(a[n1] {
    for(in1i>0i)
    cout< sumnowa[0]
    }
    else
    if(a[0]>now) 磁头位置里欲访问磁道
    {
    for(i0i cout< suma[n1]now
    }
    else 磁头位置里侧磁道外侧磁道间
    { int d
    while(a[k] { 确定前磁道已排序列中位置
    k++
    }
    lk1磁头位置前欲访问磁道
    rk 磁头欲访问磁道
    cout<<请输入前磁头移动方 (0 表示 1表示外)
    cin>>d 确定磁头访问方
    cout<<磁盘调度序:
    if(d0||d1)
    {
    if(d0) 磁头
    {
    for(jlj>0j)
    {
    cout< }
    for(jrj {
    cout< }
    sumnow2*a[0]+a[n1]
    }
    if(d1) 磁头外
    {
    for(jrj {
    cout< }
    for(jlj>0j)
    {
    cout< }
    sum2*a[n1]nowa[0]
    }
    }
    else

    cout<<请输入01< }
    cout< cout<<移动总道数: <}
    循环扫描算法(CSCAN)
    void CSCAN(int a[]int n)
    {
    int temp
    int nowlr
    int ijsum0
    int k1
    for(i0i for(ji+1j {
    if(a[i]>a[j])
    {
    tempa[i]
    a[i]a[j]
    a[j]temp
    }
    }
    cout<<递增序排磁道:< for( i0i {
    cout< }
    cout<cout<<请输入前磁道号:
    cin>>now确定前磁道号
    if(a[n1]{
    for(i0i cout< sumnow2*a[0]+a[n1]
    }
    else
    if(a[0]>now)磁头位置里欲访问磁道
    {
    for(i0i cout< suma[n1]now
    }
    else 磁头位置里侧磁道外侧磁道间
    { int d
    while(a[k] {
    k++
    }
    lk1磁头位置前欲访问磁道
    rk 磁头欲访问磁道
    cout<<请输入前磁头移动方 (0 表示 1表示外)
    cin>>d 确定磁头访问方
    cout<<磁盘调度序:
    if(d0||d1)
    {
    if(d1) 磁头外侧访问
    {
    for(jrj {
    cout< }
    for(j0j {
    cout< }
    sum2*a[n1]now2*a[0]+a[l]
    }
    if(d0) 磁头侧访问
    {
    for(jr1j>0j)
    {
    cout< }
    for(jn1j>rj)
    {
    cout< }
    sum2*a[n1]2*a[0]+nowa[r]
    }
    }
    else
    cout<<请输入01
    }
    cout< cout<<移动总道数: <}
    实验结果:
    1先先服务算法(FCFS)测试结果

    2短寻道时间算法(SSTF)测试结果

    3循环扫描算法(SCAN)测试结果

    4循环扫描算法(CSCAN)测试结果


    测试结果知相实验前提SSTF移动总道数少性优







    附录(包括源程序清单说明)
    天jing理工学


    文档香网(httpswwwxiangdangnet)户传

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

    下载文档到电脑,查找使用更方便

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

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

    下载文档

    相关文档

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

    操作系统课程设计磁盘调度算法目 录1 课程设计目的及要求……………………………………………………12 相关知识…………………………………………………………………13 ...

    3年前   
    552    0

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

    《计算操作系统》课程设计报告 姓名: ...

    3年前   
    469    0

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

    操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)实验三 进程调度一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处...

    3年前   
    651    0

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

    题目2 进程调度算法的实现2.1 题目的主要研究内容及预期达到的目标(1)设计进程控制块; (2)设计多个进程队列; (3)设计多个进程(≥20); (4)动态生成时间片、执行时间和优先级,...

    3年前   
    591    0

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

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

    3年前   
    475    0

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

    操作系统课程设计报告专业计算机科学与技术学生姓名班级学号指导教师完成日期信息工程学院题目: 银行家算法的模拟实现 一、设计目的本课程设计是学习完“操作系统原理”课程后进...

    3年前   
    695    0

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

    实验报告【实验名称】 首次适应算法和循环首次适应算法 【实验目的】理解在连续分区动态的存储管理方式下,如何实现主存空间的分配与回收。【实验原理】首次适应(first fit,FF...

    3年前   
    1056    0

    计算机操作系统实验三页面置换算法模拟实验

    计算机工程学院实验报告书课程名:《 操作系统原理A 》 题 目: 虚拟存储器管理 页面置换算法模拟实验...

    4年前   
    656    0

    操作系统实验心得

    操作系统实验心得  每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在...

    12年前   
    988    0

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

    实训7 操作系统安装和磁盘管理实训报告实训内容安装操作系统,利用操作系统自带工具进行磁盘分区、格式化。实训要求1. 熟悉操作系统安装方法2. 熟练利用操作系统自带工具进行磁盘分区和格式化3.了...

    4年前   
    1092    0

    查找算法的程序实现「学生版」

    查找算法的程序实现【学生版】【例1】 在数组元素a(1)到a(8)中查找键值为key的数,其顺序查找的VB程序段如下,请在划线处填写正确的语句。for i=1 to 8if ①        ...

    2年前   
    518    0

    操作系统 七次实验报告 常用页面置换算法模拟实验

    操作系统课程第七次实验报告姓名学号系计算机任课教师指导教师评阅教师实验地点 综合楼B102 实验时间2012-9-26实验课表现出勤和个人表现Q1(15+15(组长评分)=30分)得...

    4年前   
    749    0

    实验6FFT算法的应用

    实验6 FFT算法的应用实验目的:加深对离散信号的DFT的理解及其FFT算法的运用。实验原理:N点序列的DFT和IDFT变换定义式如下: , 利用旋转因子具有周期性,可以得到快速算法(FF...

    1年前   
    393    0

    自己编写算法的功率谱密度的三种matlab实现方法

    功率谱密度的三种matlab实现方法一:实验目的:(1)掌握三种算法的概念、应用及特点;(2)了解谱估计在信号分析中的作用;(3) 能够利用burg法对信号作谱估计,对信号的特点加以分析。二;...

    3年前   
    885    0

    查找算法的程序实现「教师版」

    查找算法的程序实现【教师版】【例1】 在数组元素a(1)到a(8)中查找键值为key的数,其顺序查找的VB程序段如下,请在划线处填写正确的语句。for i=1 to 8if ①        ...

    2年前   
    425    0

    —基于机器学习的人脸识别算法的设计与实现

    人脸识别技术是一种新型的生物特征认证技术。人脸识别技术也是一个非常活跃的研究领域,涵盖了许多领域,例如数字图像处理。随着人们对应用程序需求的增长,面部识别技术趋向于大量使用,使用微芯片和标准化。

    3年前   
    839    0

    大数据处理算法研究与实现

    因为要适应不同的人的上网要求,提供一些企业的一些网络地址,是网上比较重要的一部分、成套动力设备中起主要作用的机器、寄件系统、系统控制在内的完整的网络平台服务。我们有一个自己的平台,现如今数据发展...

    4年前   
    873    0

    线索二叉树算法的设计与实现

    随着时代的不断进步,计算机技术也随之得到发展。数据结构在计算机技术的发展中起到巨大的作用。数据结构为构建出高效的计算机算法打下了坚实的基础。良好的数据结构能够提高算法效率的同时也能减少对系统资源的占用[

    3年前   
    1014    0

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

    《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级:计科班 ...

    3年前   
    628    0

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

    《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级: 计科班 ...

    3年前   
    821    0

    文档贡献者

    文***享

    贡献于2021-07-01

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档