




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统实验报告年级、专业、班级2010级信安一班2010级信安二班姓名 实验题目程序模拟磁盘调度设计实验时间 2013.5.21实验地点主教0416实验成绩 实验性质验证性 设计性 综合性教师评价:算法/实验过程正确; 源程序/实验内容提交 程序结构/实验步骤合理;实验结果正确; 语法、语义正确; 报告规范; 其他: 评价教师签名:一、实验目的设计程序实现FIFO、SSTF、SCAN和C-SCAN算法模拟磁盘调度。二、实验项目内容设计程序实现分析四种不同的磁盘调度算法,统计每种算法的磁道移动数。程序功能:1.设计程序实现FIFO、SSTF、SCAN以及C-SCAN四种不同的磁盘调度算法。2.磁盘调度请求序列长度不少于100。3.给出每种调度的服务序列。4.统计每种调度的磁道移动数。5.根据实验结果,对四种调度算法进行分析评价。三、实验过程或算法(源程序)程系统主界面可以灵活选择某种算法,算法包括:先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)、循环扫描算法(CSCAN)。模块调用关系图: 1、先来先服务算法(FCFS)这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。 2、最短寻道时间优先算法(SSTF)该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证平均寻道时间最短。其缺点是对用户的服务请求的响应机会不是均等的,因而导致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求将会无限期的被延迟,有些请求的响应时间将不可预期。3、扫描算法(SCAN)扫描算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在自里向外移动时,扫描算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。这时,同样也是每次选择这样的进程来调度,即其要访问的磁道,在当前磁道之内,从而避免了饥饿现象的出现。由于这种算法中磁头移动的规律颇似电梯的运行,故又称为电梯调度算法。此算法基本上克服了最短寻道时间优先算法的服务集中于中间磁道和响应时间变化比较大的缺点,而具有最短寻道时间优先算法的优点即吞吐量较大,平均响应时间较小,但由于是摆动式的扫描方法,两侧磁道被访问的频率仍低于中间磁道。 4、循环扫描算法(CSCAN)循环扫描算法是对扫描算法的改进。如果对磁道的访问请求是均匀分布的,当磁头到达磁盘的一端,并反向运动时落在磁头之后的访问请求相对较少。这是由于这些磁道刚被处理,而磁盘另一端的请求密度相当高,且这些访问请求等待的时间较长,为了解决这种情况,循环扫描算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。 注:以上算法的实现程序见附录一源代码。 四、实验结果及分析和(或)源程序调试过程1. 主界面: 4-1.主界面2. 在“磁盘磁道数”、“被请求磁道数”、“当前磁道”输入框中输入相应内容,则随机生成并在“磁道请求序列”显示框中显示生成的请求序列: 图4-2 生成序列3. 在组合框中选择相应的算法进行模拟,在“调度服务序列”显示框显示相应算法的调度序列及磁道号移动距离: 图4-3 FIFO算法模拟结果 图 4-4 SSTF算法模拟结果 图4-5 SCAN算法模拟结果 图 4-6 C-SCAN算法模拟结果演示结束。五、心得体会:通过本次实验,我对四种磁盘调度算法策略有了更深的了解,理解了操作系统关于磁盘管理的一些方法,并通过编程实现了FIFO算法,SSTF算法,SCAN算法,C-SCAN算法。也进一步提高了我们的编程能力,从中学会了很多。六、附录(程序源代码) DiskScheduling.javaimport java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.util.Random;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;public class DiskScheduling extends JFrame implements ActionListenerJTextField jtext1 = new JTextField() ;JTextField jtext2 = new JTextField() ;JTextField jtext3 = new JTextField() ; JTextArea jtext4 = new JTextArea() ; JTextArea jtext5 = new JTextArea() ;JTextArea text1 =new JTextArea();JTextArea text2 =new JTextArea();JLabel lab1 = new JLabel(磁盘磁道数);JLabel lab2 = new JLabel(被请求磁道数);JLabel lab3 = new JLabel(当前磁道 );JLabel lab4 = new JLabel(寻道总长度:);JLabel lab5 = new JLabel(平均寻道长度 :);JLabel lab6 = new JLabel(磁道请求序列 :);JLabel lab7 = new JLabel(调度服务序列 :);JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel();JPanel pan4=new JPanel();JPanel pan5=new JPanel();JPanel pan6=new JPanel();JButton make;private String flag = 请选择.,FIFO,SSTF,SCAN,C-SCAN;private JComboBox jcbo = new JComboBox(flag);private int num;private int kai;private int sum;private int disknum;private int m=0,n=0;private int s;private int s1;private int c1;private int c2;/Draw draw;public DiskScheduling()make = new JButton(生成随机序列);make.setSize(130,25);make.setLocation(250, 10);make.addActionListener(this);lab1.setSize(100,25);lab1.setLocation(20, 10);lab2.setSize(100,25);lab2.setLocation(20, 50);lab3.setSize(100,25);lab3.setLocation(20, 90);lab4.setSize(100,25);lab4.setLocation(20, 130);lab5.setSize(100,25);lab5.setLocation(160,130 );lab6.setSize(100,25);lab6.setLocation(20,165 );pan2.setLayout(null);jtext1.setSize(100, 25);jtext1.setLocation(130, 10);jtext1.setText(0);jtext2.setSize(100, 25);jtext2.setLocation(130, 50);jtext2.setText(0);jtext3.setSize(100, 25);jtext3.setLocation(130, 90);jtext3.setText(0);jtext4.setSize(50, 25);jtext4.setLocation(100, 135);jtext4.setEditable(false);jtext4.setText(0);jtext4.setOpaque(false);jtext5.setSize(50, 25);jtext5.setLocation(265, 135);jtext5.setEditable(false);jtext5.setText(0);jtext5.setOpaque(false);jcbo.setSize(130, 25);jcbo.setLocation(250, 90);jcbo.setEnabled(false);jcbo.addItemListener(new ItemListener()Overridepublic void itemStateChanged(ItemEvent e) / TODO Auto-generated method stubif(jcbo.getSelectedIndex() = 1)fifo();else if(jcbo.getSelectedIndex() = 2)sstf();else if(jcbo.getSelectedIndex() = 3)scan();else if(jcbo.getSelectedIndex() = 4)cscan(););pan2.add(lab1);pan2.add(lab2);pan2.add(lab3);pan2.add(lab4);pan2.add(lab5);pan2.add(lab6);pan2.add(jtext1);pan2.add(jtext2);pan2.add(jtext3);pan2.add(jtext4);pan2.add(jtext5);pan2.add(jcbo);pan2.add(make);pan2.setSize(450, 190);pan2.setLocation(2, 2);text1.setLineWrap(true);text1.setWrapStyleWord(true);text1.setEditable(false);JScrollPane scrollPane1 = new JScrollPane( text1);pan3.setLayout(new BorderLayout();pan3.add(scrollPane1, BorderLayout.CENTER);pan3.setSize(450,120);pan3.setLocation(2,203);text2.setLineWrap(true);text2.setWrapStyleWord(true);text2.setEditable(false);JScrollPane scrollPane2 = new JScrollPane( text2);pan4.setLayout(new BorderLayout();pan4.add(scrollPane2, BorderLayout.CENTER);pan4.setSize(450,120);pan4.setLocation(2,360);lab7.setSize(100,25);pan5.setLayout(null);lab7.setLocation(20, 10);pan5.add(lab7);pan5.setSize(450,35);pan5.setLocation(2,324); pan1.setLayout(null); pan1.add(pan2); pan1.add(pan3); pan1.add(pan5); pan1.add(pan4); setLayout(new GridLayout(1,2,5,5);add( pan1,BorderLayout.CENTER);public void creat() m = 0; n = 0; Random rnd = new Random(); kai = Integer.parseInt(jtext3.getText(); num = Integer.parseInt(jtext2.getText(); disknum = Integer.parseInt(jtext1.getText(); if(kai disknum & num!=0 & kai!=0) s = new intnum; s1 = new intnum; c1 = new intnum; c2 = new intnum; for(int j=0;jnum;j+) sj= rnd.nextInt(disknum); for(int i=0;i disknum) j-; String stext = ; for(int i=0;inum;i+) stext+=si+ ; paixu(); text1.setText(stext); jcbo.setEnabled(true); else JOptionPane.showMessageDialog(this, 输入不正确,请重新输入!+n+提示:1.当前所在磁道数不能大于磁盘磁道数. + n+ 2.磁盘磁道数和被请求磁道数都不能为0., 警告!, JOptionPane.WARNING_MESSAGE); public void paixu() int su=kai; int t; for(int i=0;isi) c1m+=si; else c2n+=si; for(int i=0;im;i+) for(int j=i;jm;j+) if(c1ic1j) t=c1i;c1i=c1j;c1j=t; for(int i=0;in;i+) for(int j=i;jc2j) t=c2i;c2i=c2j;c2j=t; public void fifo() String stext=被访问的下一个磁道 磁道号移动距离+n; int su=kai; sum=0; for(int i=0;inum;i+) if(susi) s1i=si-su; else s1i=su-si; su=si; sum+=s1i; jtext4.setText(String.valueOf(sum); sum=sum/num; for(int i=0;inum;i+) stext+= +si+ +s1i+ ; stext+=n; stext+=平均寻道长度:+sum+ ; jtext5.setText(String.valueOf(sum); text2.setText(stext); public void sstf() String stext=被访问的下一个磁道 磁道号移动距离+n; int su=kai; int s2=new int100; sum=0; for(int i=0;im;i+) s2i =c1i; for(int i=0;in;i+) s2i+m=c2i; for(int i=0;inum;i+) if(sus2i) s1i=s2i-su; else s1i=su-s2i; su=s2i; sum+=s1i; jtext4.setText(String.valueOf(sum); sum=sum/num; for(int i=0;inum;i+) stext+= +s2i+ +s1i+ ; stext+=n; stext+=平均寻道长度:+sum+ ; jtext5.setText(String.valueOf(sum); text2.setText(stext); public void scan() String stext=被访问的下一个磁道 磁道号移动距离+n; int su=kai; int s2=new int100; sum=0; for(int i=0;in;i+) s2i =c2i; for(int i=0;im;i+) s2i+n=c1i; for(int i=0;inum;i+) if(sus2i) s1i=s2i-su; else s1i=su-s2i; su=s2i; sum+=s1i; jtext4.setText(String.valueOf(sum); sum=sum/num; for(int i=0;inum;i+) stext+= +s2i+ +s1i+ ; stext+=n; stext+=平均寻道
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年绿色建筑师资格考试试题及答案
- 2025年基础化学与实验技能考试卷及答案
- 2025年环境科学实验技能与实操考试试题及答案
- 2025年互联网营销及数据分析课程试卷
- 特殊学校教师管理制度
- 特殊时段作业管理制度
- 特种设备档案管理制度
- 特色食品仓库管理制度
- 猪场对症用药管理制度
- 环保事故调查管理制度
- 自来水管线更新工程 投标方案(技术方案)
- 2025年中国建筑西南勘察设计研究院有限公司招聘笔试题库含答案解析
- 2025年兖矿集团招聘笔试参考题库含答案解析
- 水闸课程设计底板配筋
- 自然科学研究方法论
- 心理干预在罪错未成年人司法保护中的实施路径
- 甘肃省安全员《B证》考试题库及答案
- 手足口病个案护理
- 静脉治疗小组开展工作汇报
- 2024届高考语文一轮复习:整本书阅读《红楼梦》基础知识练习题(含答案解析)
- 中医讲高血压课件
评论
0/150
提交评论