- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]操作系统实验报告
南华大学
计算机科学与技术学院
实 验 报 告
( 2011 ~2012 学年度 第 2 学期 )
课程名称
操作系统
姓名 学号
专业 班级
地点 教师
—、课程的性质、目的和任务
操作系统是计算机系统配置的基本软件之一。它在整个计算机系统软件中占有中心地位。其作用是对计算机系统进行统一的调度和管理,提供各种强有力的系统服务,为用户创造既灵活又方便的使用环境。本课程是计算机科学与技术专业的一门专业主干课和必修课。
通过本课程的学习,使学生掌握操作系统的基本概念、设计原理及实施技术,具有分析操作系统和设计、实现、开发实际操作系统的能力。
二、实验的意义和目的
操作系统是计算机教学中最重要的环节之一,也是计算机专业学生的一门重要的专业课程。操作系统质量的好坏,直接影响整个计算机系统的性能和用户对计算机的使用。一个精心设计的操作系统能极大地扩充计算机系统的功能,充分发挥系统中各种设备的使用效率,提高系统工作的可靠性。由于操作系统涉及计算机系统中各种软硬件资源的管理,内容比较繁琐,具有很强的实践性。要学好这门课程,必须把理论与实践紧密结合,才能取得较好的学习效果。
培养计算机专业的学生的系统程序设计能力,是操作系统课程的一个非常重要的环节。通过操作系统上机实验,可以培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的系统程序的能力,加深对操作系统课程的理解。使学生更好地掌握操作系统的基本概念、基本原理、及基本功能,具有分析实际操作系统、设计、构造和开发现代操作系统的基本能力。
三、实验运行环境及上机前的准备
实验运行环境: C语言编程环境
上机前的准备工作包括:
按实验指导书要求事先编好程序;
准备好需要输入的中间数据;
估计可能出现的问题;
预计可能得到的运行结果。
四、实验内容
实验内容包括处理机调度、主存储器空间的分配和回收、中断处理和资源分配四个实验。每个实验除了介绍了实习的目的要求、内容和方法外,还设有示例、并提供若干实习题供学生选择, 要求学生每个试验后的实习题至少做一题
实验课时安排(其中每个实验用课内4学时+课外2学时)
序号 实验名称 课时 实验一 处理机调度 4+2 实验二 主存储器空间的分配和回收 4+2 实验三 中断处理 4+2 实验四 资源分配 4+2
实验一 处理机调度
由于个人较为擅长java,所以这里都用java实现
实验说明:符号说明:每个进程的状态是就绪 W(Wait)、运行R(Run)、或完成C(Complete) 。本实验选择按时间片轮转调度算法
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class DiaoDu { // 调度算法
static void diaoDuSuanFa(Object data[][]) {
int count = 0, i1 = 0;
Object t[];
for (int i = 0; i data.length; i++) {
i1 += (Integer) data[i][2];
}
for (int j = 0; j i1; j++) {
if (data[0][3] != C) {
t = data[0];
data[0][2] = (Integer) data[0][2] - 1;
if ((Integer) data[0][2] == 0) {
data[0][3] = C;
for (int i = 0; i data.length - 1; i++) {
data[i] = data[i + 1];
}
data[data.length - 1] = t;
println(data);
System.out.println();
count++;
} else {
for (int i = 0; i data.length - 1 - count; i++) {
data[i] = data[i + 1];
}
data[data.length - 1 - count] = t;
println(data);
System.out.println();
}
}
}
}
文档评论(0)