




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北科技学院计算机系综合性实验报告华北科技学院计算机系综合性实验实 验 报 告 课程名称 操作系统C 实验学期 2012 至 2013 学年 第 2 学期学生所在系部 计算机学院 年级 10级 专业班级 网络B102 学生姓名 刘状 学号 201007024205 任课教师 杜杏菁 实验成绩 计算机系制操作系统C课程综合性实验报告 开课实验室: 基础六机房 2013年 6月 3日实验题目进程调度算法模拟一、实验目的通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。二、设备与环境1. 硬件设备:PC机一台2. 软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发环境,如C C+Java 等编程语言环境。三、实验内容(1)用C语言(或其它语言,如Java)实现对N个进程采用某种进程调度算法(如动态优先权调度)的调度。(2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段: 进程标识数ID。 进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。 进程已占用CPU时间CPUTIME。 进程还需占用的CPU时间ALLTIME。当进程运行完毕时,ALLTIME变为0。 进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,进程将进入阻塞状态。 进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后,将转换成就绪状态。 进程状态STATE。 队列指针NEXT,用来将PCB排成队列。(3)优先数改变的原则: 进程在就绪队列中呆一个时间片,优先数增加1。 进程每运行一个时间片,优先数减3。(4)为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进程。(5)分析程序运行的结果,谈一下自己的认识。四、实验结果及分析1.实验代码package tc;public class Begin public static void main(String args) new MyFrame(); package tc;public class Running int number; int i; String name; String id; public Running(int i, int n, String m, String s) this.i = i; this.number = n; = m; this.id = s; public String getRecord() String s = + + this.id + + this.number; return s; package tc;public class Xchange public static String getFirstString(String d) char a = new char50; char b = new char50; char c = new char50; char e = new char50; int t = 0; int acount = 0; int bcount = 0; int ccount = 0; int ecount = 0; int is = 0; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) a(acount+) = d.charAt(i); else t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) = ) continue; t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) b(bcount+) = d.charAt(i); else t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) = ) continue; t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) c(ccount+) = d.charAt(i); else t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) = ) continue; t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) e(ecount+) = d.charAt(i); for (int i = 0; ai != 0; i+) is = i + 1; char ax = new charis; for (int i = 0; i is; i+) axi = ai; String as = new String(ax); return as; public static String getSecondString(String d) char a = new char50; char b = new char50; char c = new char50; char e = new char50; int t = 0; int acount = 0; int bcount = 0; int ccount = 0; int ecount = 0; int is = 0; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) a(acount+) = d.charAt(i); else t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) = ) continue; t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) b(bcount+) = d.charAt(i); else t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) = ) continue; t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) c(ccount+) = d.charAt(i); else t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) = ) continue; t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) e(ecount+) = d.charAt(i); for (int i = 0; bi != 0; i+) is = i + 1; char bx = new charis; for (int i = 0; i is; i+) bxi = bi; String bs = new String(bx); return bs; public static int getThirdString(String d) char a = new char50; char b = new char50; char c = new char50; char e = new char50; int t = 0; int acount = 0; int bcount = 0; int ccount = 0; int ecount = 0; int is = 0; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) a(acount+) = d.charAt(i); else t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) = ) continue; t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) b(bcount+) = d.charAt(i); else t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) = ) continue; t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) c(ccount+) = d.charAt(i); else t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) = ) continue; t = i; break; for (int i = t; i d.length(); i+) if (d.charAt(i) != ) e(ecount+) = d.charAt(i); for (int i = 0; ci != 0; i+) is = i + 1; char cx = new charis; for (int i = 0; i is; i+) cxi = ci; String cs = new String(cx); int num = Integer.parseInt(cs); return num; 2.实验结果3.实验结果分析 先来先服务FCFS进程调度算法采用非抢占方式,实现方法比较简单,但使短作业和实时性要求较高的作业等待的时间过长;高优先级,此处采用抢占方式,另外还加入了时间片轮转方法;短作业优先方法是一种非抢占方式,没有考虑长作业和实时任务的要求。4.实验心得 通过这次实验,我在以前学过的知识的基础上有了提高,学到了很多新知识:比如将用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门业工程合同协议书模板
- 阳光房搭建合同协议范本
- 煅烧车间承包合同协议书
- 生物信息咨询费合同范本
- 消防施工合同终止协议书
- 江苏商标转让协议书模板
- 防盗玻璃承包协议书范本
- 自媒体账号归属合同范本
- 湛江复印机租赁合同范本
- 自建危房拆除赔偿协议书
- 学校物业服务应急事件处理预案
- 大一计算机考试真题单选题100道及答案
- 用柴油管理制度
- 信用卡消费者保护培训
- 青蓝工程工作总结师傅
- 石油化工生产与操作作业指导书
- 卫生间卫浴知识培训课件
- GB/T 45251-2025互联网金融个人网络消费信贷贷后催收风控指引
- (高清版)DB11∕T2256-2024城市轨道交通钢轨踏面维修技术规范
- 2025-2030年咖啡馆咖啡制作机器人行业跨境出海战略研究报告
- 产业园项目弱电智能化规划方案
评论
0/150
提交评论