操作系统实验报告java

合集下载

操作系统实验报告 进程管理 java编写相关的界面

操作系统实验报告 进程管理 java编写相关的界面

操作系统实验报告计算机学院(院、系)专业班组课学号20 姓名Tracy 实验日期教师评定实验一进程管理一、实验目的通过实验使学生进一步了解进程、进程状态、进程控制等基本概念。

基本能达到下列具体的目标:1.理解进程 PCB 的概念,以及 PCB 如何实现、如何组织以及管理。

2.复习数据结构中如何对链的操作,包括建链、删除、插入结点等,来实现进程的管理。

二、实验内容1、建立一个结点,即 PCB 块包括用户标识域、状态域(执行、等待、就绪)、 link域。

2、建立三个队列(执行队列、就绪队列、等待队列)。

3、根据进程状态转换实现对三个队列的具体操作。

具体的驱动可以采用时间片算法或手动调度的形式完成三个状态之间的转换4、用java编写相关的界面。

三、实验步骤1.通过java的awt和swing包进行相关界面的布局,相关代码为:Panel p1=new Panel(new FlowLayout(FlowLayout.LEFT));Panel p2=new Panel(new FlowLayout());//三个显示进程的文本框JTextField readyList,runningList,waitingList,input;//三个进程的链表ArrayList<Process> reList=new ArrayList<Process>();ArrayList<Process> ruList=new ArrayList<Process>();ArrayList<Process> waList=new ArrayList<Process>();Iterator<Process> iterRunning,iterReady,iterWaiting;public MyFrame(){this.setLayout(new BorderLayout());this.add(p1,BorderLayout.NORTH);this.add(p2,BorderLayout.CENTER);init();this.setTitle("进程三态转换");setBounds(300,300,500,300);setVisible(true);}void init(){Box box1=Box.createHorizontalBox();box1.add(new JLabel("进程就绪队列:"));readyList=new JTextField(35);readyList.setEditable(false);box1.add(readyList);Box box2=Box.createHorizontalBox();box2.add(new JLabel("进程阻塞队列:"));waitingList=new JTextField(35);waitingList.setEditable(false);box2.add(waitingList);Box box3=Box.createHorizontalBox();box3.add(new JLabel("进程运行队列:"));runningList=new JTextField(35);runningList.setEditable(false);box3.add(runningList);Box baseBox1=Box.createVerticalBox(); baseBox1.add(box1);baseBox1.add(Box.createVerticalStrut(10)); baseBox1.add(box2);baseBox1.add(Box.createVerticalStrut(10)); baseBox1.add(box3);p1.add(baseBox1);Button b1=new Button("执行—>就绪");Button b2=new Button("就绪—>执行");Button b3=new Button("执行—>阻塞");Button b4=new Button("阻塞—>就绪");Button exit=new Button("清空所有进程");this.add(exit,BorderLayout.SOUTH);b1.addActionListener(new readyListener());b2.addActionListener(new runningListener()); b3.addActionListener(new waitingListener()); b4.addActionListener(new ready2Listener()); exit.addActionListener(new clearListener());Box box4=Box.createHorizontalBox();box4.add(b1);box4.add(b2);Box box5=Box.createHorizontalBox();box5.add(b3);box5.add(b4);Box box6=Box.createHorizontalBox();input=new JTextField(20);input.addActionListener(new inputListener());box6.add(new Label("请输入进程名字,按回车确认"));box6.add(input);Box baseBox2=Box.createVerticalBox();baseBox2.add(box6);baseBox2.add(Box.createVerticalStrut(10));baseBox2.add(box4);baseBox2.add(Box.createVerticalStrut(10));baseBox2.add(box5);p2.add(baseBox2);}运行的总体界面如下图所示:图1 总体布局2.分别为“执行—》就绪”,“就绪—》执行”,“执行—》阻塞”,“阻塞—》就绪”四个按钮添加监听器,监听队列的三种状态。

操作系统实验报告java

操作系统实验报告java

操作系统实验报告java操作系统实验报告实验名称:java操作系统一、实验目的本次实验的目的是通过使用Java编程语言,实现一个简单的操作系统,包括进程管理、内存管理和文件系统管理。

二、实验环境操作系统:Windows 10开发工具:Eclipse IDE编程语言:Java三、实验过程及结果1、进程管理1.1 进程的创建编写一个Process类,模拟进程的创建过程,包括进程ID、状态等属性,并实现创建进程的方法。

1.2 进程的调度设计一个Scheduler类,实现进程的调度算法,如FCFS(先来先服务)、SJF(短作业优先)、RR(时间片轮转)等。

1.3 进程间通信实现进程间的通信机制,如共享内存、管道等。

2、内存管理2.1 内存分配算法设计一个MemoryAllocator类,实现内存分配的算法,如首次适应、最佳适应、最坏适应等。

2.2 内存回收实现一个MemoryReclmer类,用于回收已经释放的内存空间,并将其标记为可再分配的状态。

3、文件系统管理3.1 文件的创建与删除设计一个类,实现文件的创建和删除功能,包括文件名、大小等属性。

3.2 文件的读取与写入实现一个类和一个类,分别用于文件的读取和写入操作。

3.3 文件权限管理设计一个AccessControl类,用于控制文件的访问权限,包括读、写和执行等操作。

四、实验结果分析根据实验过程的描述,我们成功实现了一个简单的操作系统,包括进程管理、内存管理和文件系统管理。

在进程管理方面,我们实现了进程的创建、调度和通信机制,能够有效管理多个进程的执行。

在内存管理方面,我们实现了不同的内存分配算法,能够根据实际情况分配和回收内存空间。

在文件系统管理方面,我们实现了文件的创建、删除、读取和写入操作,并能够灵活控制文件的访问权限。

五、附件无六、法律名词及注释1、版权:根据著作权法,著作权人享有其作品的署名权、发表权、修改权和保护权等权利。

2、许可证:指授权他人使用某个著作权作品的合法许可证。

Java实验三实验报告1

Java实验三实验报告1

Java实验三实验报告1一、实验目的本次 Java 实验的主要目的是深入理解和掌握 Java 中的面向对象编程概念,通过实际的编程实践,提高对类、对象、继承、多态等特性的运用能力,同时培养良好的编程习惯和代码规范。

二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers三、实验内容1、设计一个名为`Shape` 的抽象类,其中包含一个抽象方法`calculateArea()`用于计算图形的面积。

2、分别创建`Circle`(圆形)、`Rectangle`(矩形)和`Triangle`(三角形)类继承自`Shape` 类,并实现各自的`calculateArea()`方法来计算具体图形的面积。

3、创建一个测试类`TestShapes`,在其中创建不同图形的对象,并调用其计算面积的方法,输出结果。

四、实验步骤1、创建`Shape` 抽象类```javaabstract class Shape {abstract double calculateArea();}```2、创建`Circle` 类继承自`Shape` 类```javaclass Circle extends Shape {private double radius;public Circle(double radius) {thisradius = radius;}@Overridedouble calculateArea(){return MathPI radius radius;}}```3、创建`Rectangle` 类继承自`Shape` 类```javaclass Rectangle extends Shape {private double length;private double width;public Rectangle(double length, double width) {thislength = length;thiswidth = width;}@Overridedouble calculateArea(){return length width;}}```4、创建`Triangle` 类继承自`Shape` 类```javaclass Triangle extends Shape {private double base;private double height;public Triangle(double base, double height) {thisbase = base;thisheight = height;}@Overridedouble calculateArea(){return 05 base height;}}```5、创建测试类`TestShapes````javapublic class TestShapes {public static void main(String args) {Circle circle = new Circle(50);Rectangle rectangle = new Rectangle(40, 60);Triangle triangle = new Triangle(30, 80);Systemoutprintln("圆形的面积:"+ circlecalculateArea());Systemoutprintln("矩形的面积:"+ rectanglecalculateArea());Systemoutprintln("三角形的面积:"+trianglecalculateArea());}}```五、实验结果运行测试类`TestShapes` 后,输出结果如下:```圆形的面积:78539816矩形的面积:240三角形的面积:120```六、实验中遇到的问题及解决方法1、在编写抽象类和子类的代码时,一开始对于抽象方法的定义和实现理解不够清晰,导致代码出现错误。

java系统社会实践报告5篇

java系统社会实践报告5篇

java系统社会实践报告5篇java是一种可以撰写跨平台应用软件的面对对象的程序设计语言。

而学习Java的同学java实习实训是必经的过程。

下面就是我给大家带来的java系统社会实践报告5篇,盼望大家喜爱!java系统社会实践报告一面临毕业与就业的压力,不久将来就要从一个同学到一个社会人的转变:技术在不断的提高,思路在不断的开阔,思想在不断的升华,更重要的是自己的抱负和理想更加的坚决。

对于一个投身于IT的新人,阅历谈不上,一些学习的心得倒是可以拿出来探讨一下,我们该如何面临这个似曾相识的社会,突然一天如此接近。

面对“全球经济不景气”带来的就业压力,我们正在渐渐走向成熟,我们意志更加顽强,我们深知不经一番寒彻骨,哪来梅花扑鼻香。

深深地体会到找一份好工作多么不简单的,尤其是力量匮乏的我们。

一切都要付出行动,不能空想,要实现目标,就得不懈的努力。

的确,软件仍旧是一个朝阳行业,对于人才的需求量也很大,这也是为什么许多人努力走上这座独木桥的缘由。

但是当你面临人生的一个选择时,当你打算要踏上软件开发之路时,你应当问一下自己:我为什么要选择它?其实许多人在这条道路上摸爬滚打了多年也没弄清晰这个问题的答案。

假如你想在这条道路上有所成就的话,一是爱好使然,二是做好自己的职业规划。

软件开发其实是一条特别艰苦的路,不停的学习,不断的熬夜,没有鲜花更没有掌声,陪伴你的是那漫长而孤独的夜。

想一想我们预备好迎接这一切了吗?假如没有爱好我劝你还是放弃这条路,没有爱好你就在这条路上走不长,等待你的只有转行。

假如你真的把它作为你职业生涯的跳板,那么请你做好自己的人生规划,有步骤的实现它。

话题略微远了一点,现在我就谈谈自己在Java学习方面的心得和教训。

古人云:活到老,学到老。

读书学习实乃艰苦之事,花费时间,消耗精力。

然苦之外亦见其乐:得到了学问,提高了熟悉,完善了自己。

学习,求其真,务其实,应“敏而好学,不耻下问”,才能不断促使进步。

java实训报告(通用9篇)

java实训报告(通用9篇)

java实训报告java实训报告(通用9篇)在当下社会,大家逐渐认识到报告的重要性,写报告的时候要注意内容的完整。

那么一般报告是怎么写的呢?下面是小编精心整理的java实训报告,欢迎大家借鉴与参考,希望对大家有所帮助。

java实训报告篇1一、实训目的1.熟练掌握Java面向对象程序设计的基础知识。

2.熟练掌握Java中常用的Swing组件的使用方法。

3.熟练掌握Java程序中图形用户界面设计的方法。

4.熟练掌握使用JDBC操作数据库的方法。

5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。

二、课程设计报告内容2.1 实训内容本课程设计的题目是设计一个简化的仓库管理系统。

该系统从仓库管理人员的角度出发,实现对货物信息、生产商信息的浏览、添加、删除和查询,同时还可以对货物出货、入货进行操作和控制。

设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。

系统功能分析是在系统开发的总体任务的基础上完成的。

该管理系统需要完成的基本功能主要有:用户管理:主要包括用户的添加、修改和删除。

供应商管理:主要包括供应商的添加、删除和修改。

产品管理:主要包括产品的添加、删除和进货、出货。

产品视图管理:主要包括产品查询、数据文件的导入、查询结果集的导出。

2.2 实训设备或软、硬件硬件:PⅣ及以上性能的PC机;软件:Windows 20xx或Windows XP系统;JDK工具;JCreator4.0环境2.3 功能设计及思想本次实训设计采用选择结构化开发方法,即用系统工程的思想和工程化的方法,按照用户至上的原则,自顶向下整体分析与设计和自底向上逐步实施的系统开发过程。

是组织、管理和控制信息系统开发过程的一种基本框架。

其基本思想:在系统分析时,采用自顶向下、逐层分解,由抽象到具体的逐步认识问题的过程;在系统设计的时候,先考虑系统整体的优化,再考虑局部的优化问题;在系统实施的时候,则坚持自底向上,先局部后整体,通过标准化模块的连接形成完整的系统。

java实验报告

java实验报告

java实验报告Java 实验报告一、实验目的本次 Java 实验的主要目的是通过实际编程操作,深入理解和掌握Java 语言的基本语法、面向对象编程的概念和方法,以及常用类库的使用。

同时,培养我们的问题解决能力、逻辑思维能力和代码规范意识,为今后的软件开发工作打下坚实的基础。

二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers3、 JDK 版本:JDK 18三、实验内容本次实验共包括以下三个部分:1、 Java 基本语法练习变量与数据类型运算符与表达式控制流语句(ifelse、for、while、dowhile)数组2、面向对象编程实践类与对象的定义和使用构造函数与方法重载封装、继承与多态抽象类与接口3、 Java 常用类库应用String 类与字符串操作集合框架(ArrayList、HashMap)文件输入输出(File、FileReader、FileWriter)四、实验步骤及代码实现1、 Java 基本语法练习变量与数据类型:```javapublic class VariableDataType {public static void main(String args) {int age = 20;double salary = 50005;String name ="张三";boolean isStudent = true;Systemoutprintln("年龄:"+ age);Systemoutprintln("工资:"+ salary);Systemoutprintln("姓名:"+ name);Systemoutprintln("是否是学生:"+ isStudent);}}```运算符与表达式:```javapublic class OperatorExpression {public static void main(String args) {int num1 = 10;int num2 = 5;int sum = num1 + num2;int difference = num1 num2;int product = num1 num2;int quotient = num1 / num2;int remainder = num1 % num2; Systemoutprintln("和:"+ sum);Systemoutprintln("差:"+ difference);Systemoutprintln("积:"+ product);Systemoutprintln("商:"+ quotient);Systemoutprintln("余数:"+ remainder);}}```控制流语句:```javapublic class ControlFlowStatement {public static void main(String args) {// ifelse 语句int score = 80;if (score >= 90) {Systemoutprintln("优秀");} else if (score >= 80) {Systemoutprintln("良好");} else if (score >= 70) {Systemoutprintln("中等");} else if (score >= 60) {Systemoutprintln("及格");} else {Systemoutprintln("不及格");}// for 循环for (int i = 1; i <= 5; i++){Systemoutprintln("第" + i +"次循环");}// while 循环int j = 1;while (j <= 5) {Systemoutprintln("第" + j +"次 while 循环");j++;}// dowhile 循环int k = 1;do {Systemoutprintln("第" + k +"次 dowhile 循环");k++;} while (k <= 5);}}```数组:```javapublic class ArrayExample {public static void main(String args) {//一维数组int numbers ={1, 2, 3, 4, 5};for (int num : numbers) {Systemoutprintln(num);}//二维数组int matrix ={{1, 2, 3},{4, 5, 6},{7, 8, 9}};for (int row : matrix) {for (int num : row) {Systemoutprint(num +"");}Systemoutprintln();}}}```2、面向对象编程实践类与对象的定义和使用:```javapublic class Person {private String name;private int age;public Person(String name, int age) {thisname = name;thisage = age;}public void showInfo(){Systemoutprintln("姓名:"+ name +",年龄:"+ age);}public static void main(String args) {Person person1 = new Person("张三", 20);person1showInfo();}}```构造函数与方法重载:```javapublic class ConstructorOverloading {private String name;private int age;public ConstructorOverloading(String name) {thisname = name;}public ConstructorOverloading(String name, int age) {thisname = name;thisage = age;}public void showInfo(){if (age == 0) {Systemoutprintln("姓名:"+ name);} else {Systemoutprintln("姓名:"+ name +",年龄:"+ age);}}public static void main(String args) {ConstructorOverloading person1 = new ConstructorOverloading("张三");person1showInfo();ConstructorOverloading person2 = new ConstructorOverloading("李四", 25);person2showInfo();}}```封装、继承与多态:```java//父类class Animal {private String name;public Animal(String name) {thisname = name;}public void eat(){Systemoutprintln(name +"正在吃东西");}}//子类继承父类class Dog extends Animal {public Dog(String name) {super(name);}public void bark(){Systemoutprintln(name +"在叫");}}public class InheritancePolymorphism {public static void main(String args) {Animal animal = new Dog("小黑");animaleat();//向下转型为 Dog 类型调用 bark 方法if (animal instanceof Dog) {Dog dog =(Dog) animal;dogbark();}}}```抽象类与接口:```java//抽象类abstract class Shape {abstract void draw();}//实现抽象类的子类class Circle extends Shape {@Overridevoid draw(){Systemoutprintln("画一个圆");}}//接口interface Moveable {void move();}//实现接口的类class Car implements Moveable {@Overridepublic void move(){Systemoutprintln("汽车在移动");}}public class AbstractInterfaceExample {public static void main(String args) {Shape shape = new Circle();shapedraw();Moveable car = new Car();carmove();}}```3、 Java 常用类库应用String 类与字符串操作:```javapublic class StringOperation {public static void main(String args) {String str1 ="Hello, ";String str2 ="World!";String str3 = str1 + str2;Systemoutprintln(str3);int length = str3length();Systemoutprintln("字符串长度:"+ length);char charAt = str3charAt(5);Systemoutprintln("第 5 个字符:"+ charAt);boolean contains = str3contains("World");Systemoutprintln("是否包含 World:"+ contains);}}```集合框架(ArrayList、HashMap):```javaimport javautilArrayList;import javautilHashMap;import javautilMap;public class CollectionFramework {public static void main(String args) {// ArrayListArrayList<String> names = new ArrayList<>();namesadd("张三");namesadd("李四");namesadd("王五");for (String name : names) {Systemoutprintln(name);}// HashMapHashMap<String, Integer> ages = new HashMap<>();agesput("张三", 20);agesput("李四", 25);agesput("王五", 30);for (MapEntry<String, Integer> entry : agesentrySet()){Systemoutprintln(entrygetKey()+"的年龄是" +entrygetValue());}}}```文件输入输出(File、FileReader、FileWriter):```javaimport javaioFile;import javaioFileReader;import javaioFileWriter;import javaioIOException;public class FileIOExample {public static void main(String args) {//写入文件try (FileWriter writer = new FileWriter("outputtxt")){writerwrite("这是写入文件的内容");} catch (IOException e) {eprintStackTrace();}//读取文件try (FileReader reader = new FileReader("outputtxt")){int character;while ((character = readerread())!=-1) {Systemoutprint((char) character);}} catch (IOException e) {eprintStackTrace();}}}```五、实验结果与分析1、 Java 基本语法练习变量与数据类型:能够正确定义和使用各种数据类型的变量,并进行基本的运算和输出。

JAVA实验报告一

JAVA实验报告一

JAVA实验报告一一、实验目的本次实验的主要目的是通过实际操作,熟悉和掌握 Java 编程语言的基本语法、数据类型、控制结构以及面向对象编程的基本概念和方法。

培养我们运用 Java 解决实际问题的能力,为今后深入学习和应用 Java打下坚实的基础。

二、实验环境1、操作系统:Windows 102、开发工具:Eclipse3、 JDK 版本:18三、实验内容(一)Java 基础语法1、变量与数据类型在 Java 中,我们学习了不同的数据类型,如整数类型(int、long)、浮点数类型(float、double)、字符类型(char)和字符串类型(String)等。

通过定义和使用这些变量,我们能够存储和处理各种类型的数据。

例如:```javaint age = 20;double salary = 50005;char gender ='M';String name ="张三";```2、运算符与表达式掌握了各种运算符,如算术运算符(+、、、/、%)、关系运算符(==、!=、>、<、>=、<=)、逻辑运算符(&&、||、!)等。

能够运用这些运算符构建表达式来进行计算和逻辑判断。

比如:```javaint num1 = 10;int num2 = 5;int result = num1 + num2;boolean isGreater = num1 > num2;```3、控制结构(1)顺序结构程序按照语句的先后顺序依次执行。

(2)选择结构包括 ifelse 语句和 switch 语句,用于根据不同的条件执行不同的代码块。

```javaint score = 80;if (score >= 60) {Systemoutprintln("及格");} else {Systemoutprintln("不及格");}int day = 3;switch (day) {case 1:Systemoutprintln("星期一");break;case 2:Systemoutprintln("星期二");break;//其他 case 情况default:Systemoutprintln("未知");}```(3)循环结构包括 for 循环、while 循环和 dowhile 循环,用于重复执行一段代码。

JAVA实验报告

JAVA实验报告

JAVA实验报告一、实验目的本次 Java 实验的主要目的是通过实际编程操作,深入理解 Java 语言的基本语法、面向对象编程的概念以及常用类库的使用。

同时,培养自己解决实际问题的能力,提高编程的熟练程度和代码质量。

二、实验环境操作系统:Windows 10开发工具:EclipseJDK 版本:18三、实验内容及步骤(一)基本语法练习1、数据类型与变量定义不同类型的变量,如整数型(int)、浮点数型(float、double)、字符型(char)和字符串型(String),并进行赋值和输出操作。

了解不同数据类型的取值范围和精度,以及在实际编程中的应用场景。

2、控制结构编写使用 ifelse 语句、switch 语句进行条件判断的程序。

运用 for 循环、while 循环和 dowhile 循环实现重复执行的操作。

3、数组与字符串声明和初始化一维数组和二维数组,对数组元素进行访问和操作。

进行字符串的拼接、截取、查找等常见操作。

(二)面向对象编程实践1、类与对象定义一个简单的类,包含属性和方法。

创建该类的对象,并调用对象的方法来操作属性。

2、继承与多态建立父类和子类,实现继承关系。

在子类中重写父类的方法,展示多态性。

3、封装与抽象将类的属性设置为私有,并提供公共的访问方法(getter 和 setter),实现封装。

定义抽象类和抽象方法,体会抽象的概念和作用。

(三)常用类库的使用1、 Java 输入输出(IO)使用 Scanner 类实现从控制台读取用户输入的数据。

运用 File 类和相关的输入输出流类,实现文件的读取和写入操作。

2、集合框架熟悉 ArrayList、LinkedList 等线性集合的使用方法。

了解 HashSet、TreeSet 等集合的特点和应用场景。

3、异常处理在程序中加入可能引发异常的代码段,并使用 trycatch 语句捕获和处理异常。

四、实验结果与分析(一)基本语法练习1、数据类型与变量成功定义了各种数据类型的变量,并正确进行了赋值和输出。

操作系统实验报告java

操作系统实验报告java

操作系统实验报告java实验报告:操作系统实验一、实验目的本次实验旨在通过使用Java语言编写一个简单的操作系统,加深对操作系统原理的理解,掌握操作系统底层的相关知识。

二、实验环境1.Java编程环境:JDK 82.开发工具:Eclipse IDE3.操作系统:Windows 10三、实验内容1.实验背景介绍在本章节中,我们将介绍操作系统的基本概念、功能以及其在计算机系统中的作用。

2.实验设计与实现本章节将详细描述操作系统实现的设计思路和具体的实现过程,包括创建进程、调度算法、内存管理、文件系统等。

2.1 创建进程在本节中,我们将介绍如何使用Java语言创建一个进程,并实现进程的并发执行。

2.2 调度算法本节将讨论操作系统中的调度算法,例如先来先服务、短作业优先、时间片轮转等,并给出具体的实现代码。

2.3 内存管理在本节中,我们将介绍操作系统的内存管理机制,包括分区分配、动态存储分配等,并给出相关的实现方法。

2.4 文件系统本节将详细介绍操作系统中的文件系统的设计和实现,包括文件的存储、目录管理、文件访问控制等。

四、实验结果与分析1.实验结果展示在本章节中,我们将展示实验的运行结果,并对实验结果进行详细的分析和解释。

2.实验评估与讨论本节将对实验结果进行评估和讨论,包括对实验系统性能的评估以及可能存在的问题和改进方向的讨论。

五、实验总结本次实验通过使用Java语言编写一个简单的操作系统,使我们更深入地了解了操作系统的原理和实现,掌握了操作系统底层的相关知识。

六、附件本文档涉及的附件包括实验代码和相关实验结果的截图。

附件一:源代码文件(OS.java)附件二:实验结果截图(result.png)七、法律名词及注释1.操作系统:操作系统是一种控制和管理计算机硬件与软件资源的程序。

2.进程:进程是计算机中正在运行的一个程序实例,它具有独立的内存空间和系统资源。

3.调度算法:调度算法是操作系统中用于决定进程执行顺序的一种算法,目的是合理利用系统资源,提高系统性能。

java实验2实验报告1

java实验2实验报告1

java实验2实验报告1Java 实验 2 实验报告一、实验目的本次 Java 实验 2 的主要目的是通过实际编程操作,深入理解和掌握Java 语言中的一些重要概念和技术,包括面向对象编程的基本思想、类和对象的创建与使用、方法的定义与调用,以及异常处理等方面的知识。

通过实践,提高我们的编程能力和解决问题的能力。

二、实验环境本次实验使用的开发工具是 IntelliJ IDEA,Java 版本为 JDK 18。

操作系统为 Windows 10。

三、实验内容1、设计一个简单的学生类(Student)包含学生的姓名(name)、学号(studentID)、年龄(age)等属性。

定义构造方法用于初始化学生对象的属性。

定义获取和设置学生属性的方法。

2、实现一个计算学生平均年龄的方法接受一个学生对象数组作为参数。

计算并返回学生的平均年龄。

3、异常处理在计算平均年龄的方法中,处理可能出现的除数为 0 的异常情况。

四、实验步骤1、创建学生类(Student)```javapublic class Student {private String name;private int studentID;private int age;public Student(String name, int studentID, int age) {thisname = name;thisstudentID = studentID;thisage = age;}public String getName(){return name;}public void setName(String name) {thisname = name;}public int getStudentID(){return studentID;}public void setStudentID(int studentID) {thisstudentID = studentID;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}}```2、计算平均年龄的方法```javapublic class AverageAgeCalculator {public double calculateAverageAge(Student students) {int totalAge = 0;int studentCount = studentslength;for (Student student : students) {totalAge += studentgetAge();}if (studentCount == 0) {throw new ArithmeticException("除数不能为 0,学生数组为空。

Java实习报告范文(通用4篇)

Java实习报告范文(通用4篇)

Java实习报告范文(通用4篇)Java范文篇1在本学期的二周时间内,我们在学校机房进行了为期二周的JAVA 实训。

现在即将结束了,回首本学期的java学习,重点还是在学习概念等一些常识性的东西,也学到平常在课堂中没有学到的东西,在JAVAAPI中又多认识了几种类,使我对JAVA产生了浓厚的兴趣。

两周的时间说长也不长,在这两周中,我们的实训任务是仓库管理系统,在演示过程中,并没有觉得它有很难,但在实际编程过程中,却遇到了各种各样的错误,这也多亏了老师的指点和班级同学的帮忙,使我一步步克服了实训过程中遇到的困难。

虽然我所做的系统并没有实现所有功能,但是我觉得自己进步了,很多原来都不懂的东西现在都已经了解了,也培养了我的团队合作精神,让我感受到了集体的温暖。

实训的过程与课堂上的讲课比,更为有趣,因为可以真正的自己动手操作,使我对老师上课所讲的内容有了更深一步的了解,使我在以后的编程中可以灵活运用。

我期待以后有更多类似的实训,使我们可以多掌握一项技能,也可以让我们在以后找工作中可以有更多的实践经验。

学知识可不能凭自己的爱好和一时兴趣,要一步一个脚印,认认真真,踏踏实实,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解JAVA的应用和扩展运用。

在我所学的语言当中,我自认为JAVA是一门比较强大的面向对象的编程语言,不仅仅因为它的跨平台性,更多的是因为它的灵活多变和实用性较强,可以说比较的经典和强悍。

所以学好java语言有很大的用处,这次实训,我们更多学到的是不懂就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识,最后在自己的努力下,终于运行成功,这种成就感美不可言,心情愉悦至极。

最后终于要结束了,大家都有种释怀的感觉,当然我想我更多的是兴奋和自己掌握了知识之后的饱满感,学知识就像吃东西一样,吃饱了就应该好好的消化。

操作系统实验报告java

操作系统实验报告java

操作系统实验报告java操作系统实验报告 Java一、实验目的本次实验旨在通过使用 Java 编程语言来深入理解操作系统的一些核心概念和原理,如进程管理、线程同步、内存管理等。

通过实际的编程实践,提高对操作系统相关知识的掌握程度,培养解决实际问题的能力。

二、实验环境操作系统:Windows 10开发工具:IntelliJ IDEAJDK 版本:18三、实验内容及步骤1、进程管理创建多个进程模拟并发执行,并观察其执行顺序和资源竞争情况。

使用 Java 的`ProcessBuilder`类来创建新的进程,并通过管道进行进程间通信。

以下是示例代码:```javaimport javaioIOException;import javautilArrayList;import javautilList;public class ProcessManagement {public static void main(String args) {List<Process> processes = new ArrayList<>();try {ProcessBuilder processBuilder1 = new ProcessBuilder("notepadexe");processesadd(processBuilder1start());ProcessBuilder processBuilder2 = new ProcessBuilder("calcexe");processesadd(processBuilder2start());} catch (IOException e) {eprintStackTrace();}//等待所有进程结束for (Process process : processes) {try {processwaitFor();} catch (InterruptedException e) {eprintStackTrace();}}}}```2、线程同步实现多个线程对共享资源的访问,并使用同步机制来避免竞态条件。

操作系统实验报告java

操作系统实验报告java

操作系统实验报告java操作系统实验报告一、实验目的本次实验旨在通过编写Java程序来实现一个简单的操作系统模拟,以加深对操作系统的理解。

二、实验环境- 操作系统:Windows 10- Java开发环境:Eclipse- 编程语言:Java三、实验内容⒈实现进程管理⑴进程创建⑵进程调度⑶进程同步⑷进程通信⒉实现内存管理⑴内存分配⑵内存回收⑶页面置换算法⒊文件系统管理⑴文件的创建与删除⑵文件的读写操作⑶文件权限控制四、实验步骤及代码实现⒈进程管理实现步骤⑴定义进程类⑵实现进程创建方法⑶实现进程调度方法⑷实现进程同步方法⑸实现进程通信方法⒉内存管理实现步骤⑴定义内存管理类⑵实现内存分配方法⑶实现内存回收方法⑷实现页面置换算法⒊文件系统管理实现步骤⑴定义文件类⑵实现文件的创建与删除方法⑶实现文件的读写操作方法⑷实现文件权限控制方法五、实验结果与分析在完成以上步骤后,我们成功实现了一个简单的操作系统模拟。

通过模拟进程管理、内存管理和文件系统管理等功能,可以更好地理解操作系统的工作原理和机制。

六、实验附件本实验报告附带Java程序源代码和运行结果截图,请参见附件。

七、法律名词及注释⒈操作系统:指一类管理计算机硬件和软件资源、控制程序运行的系统软件。

⒉进程:操作系统中的基本执行单位,每个进程拥有独立的地质空间和系统资源。

⒊进程调度:操作系统根据一定的策略和算法决定哪个进程在给定时刻执行。

⒋进程同步:多个进程之间的协调工作,保证数据的一致性和并发执行正确性。

⒌进程通信:进程之间通过某种方式交换信息和数据。

⒍内存分配:为进程分配内存空间,使其能够运行。

⒎内存回收:在进程终止或需要更多内存时,将内存空间释放。

⒏页面置换算法:在内存不足时,选择合适的页面进行置换以获取更多空闲内存。

⒐文件系统:操作系统管理文件和目录的组织和存储方式。

⒑文件的创建与删除:操作系统创建或删除文件,为文件分配或回收存储空间。

1⒈文件的读写操作:操作系统对文件进行读取或写入数据的操作。

[工作总结]java实验报告

[工作总结]java实验报告

[工作总结]java实验报告一、实验目的:通过本次Java实验的学习,我们可以掌握Java的基本语法,了解面向对象编程的思想,并通过实际操作加深对Java语言的理解。

二、实验环境1.操作系统:Windows 102.JDK版本:1.83.集成开发工具:Eclipse三、实验内容通过本次实验,我们主要学习了以下内容:1. Java语言的基本语法和特性在本次实验中,我们主要学习了Java语言的基础知识,包括Java的语法、数据类型、运算符等。

其中,我们需要掌握Java中的数据类型和变量定义、Java的流程控制语句、Java中的面向对象编程思想等。

2. Java语言的面向对象编程在本次实验中,我们主要学习了Java语言的面向对象编程,包括Java中的类和对象、继承、封装、多态等。

3. Java程序设计在本次实验中,我们需要编写Java程序来实现各种功能。

主要任务包括:编写一个简单的Java应用程序、编写Java类、编写Java方法、编写Java异常处理程序等。

四、实验步骤1. 编写一个简单的Java应用程序Java应用程序是一种可以独立运行的程序,我们可以使用Eclipse来生成一个Java应用程序模板,然后根据自己的需要进行修改。

Java类是一种用来描述对象的模板,我们需要根据自己的需求编写Java类,并定义类中的属性和方法。

Java异常处理程序是一种用来处理Java程序中发生的异常的程序,我们需要根据自己的需求来编写Java异常处理程序。

五、实验总结通过本次实验,我对Java的应用有了更加深刻的理解,同时也提升了自己的编程能力。

同时,我也学会了如何进行Java程序的调试和测试,更加熟练地掌握了Java语言的应用。

java实验报告

java实验报告

java实验报告java实验报告在人们越来越注重自身素养的今天,报告的使用频率呈上升趋势,报告根据用途的不同也有着不同的类型。

那么,报告到底怎么写才合适呢?下面是小编帮大家整理的java实验报告,欢迎阅读,希望大家能够喜欢。

java实验报告1此次只实习了短短的三周。

虽说时间很短,但其中的每一天都使我收获很大、受益匪浅,它不但极大地加深了我对一些理论知识的理解,不仅使我在理论上对Java有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,更学到了很多做人的道理,对我来说受益匪浅。

除此以外,我知道了什么叫团队,怎样和团队分工合作;同时我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。

这也是第一次让我亲身感受到理论与实际的相结合,让我大开眼界。

也是对以前所学知识的一个初审吧!这次实习对于我以后学习、找工作也是受益匪浅的,在短短的三周中相信这些宝贵的经验会成为我今后成功的重要的基石;这对于我的学业,乃至我以后人生的影响无疑是极其深远的。

这次实习虽然是我们的第一次,不过同学们表现不错,由此看来,我们在进入大学的这几个月里学到了不少的专业知识,只是自己感觉不到而已。

对于所学专业,我们不能过于自卑和担忧,否则会妨碍自己学习。

实习是学习Java的重要环节,有利于我们巩固专业知识、掌握工作技能,提高就业筹码。

我把本次为期三周的实习看作是“理论与实践相结合的桥梁”。

通过这周的实习和学习,我知道了此次实习的目的,也清楚目前自己的不足,那就是缺乏相应的知识与经验,对所学的专业知识不能够很好地运用于实践操作。

正所谓“百闻不如一见”,经过这次自身的切身实践,我才深切地理会到了“走出课堂,投身实践”的必要性。

平时,我们只能在课堂上与老师一起纸上谈兵,思维的认识基本上只是局限于课本的范围之内,也许就是这个原因就导致我们对专业知识认识的片面性,使得我们只知所以然,而不知其之所以然!限制了我们网络知识水平的提高。

java实验报告总结[范本]

java实验报告总结[范本]

java实验报告总结[范本] Java实验报告总结一、实验目的本次Java实验旨在让我们更深入地理解Java语言的基础知识,包括数据类型、控制结构、数组和对象等,并提升我们的编程实践能力和问题解决能力。

二、实验内容本次实验主要涉及Java语言的基础知识,包括数据类型、控制结构、数组和对象等。

我们通过编写程序来解决一些实际问题,例如计算器的实现、排序算法的实现等。

三、实验过程1.实验准备在开始实验之前,我首先复习了Java语言的基础知识,包括数据类型、控制结构、数组和对象等,以确保我对这些知识点有清晰的理解。

然后,我查阅了相关的Java编程书籍和网上资源,了解了Java编程的基本规范和最佳实践。

2.实验实施根据实验要求,我首先编写了一个计算器程序,该程序可以执行加、减、乘、除等基本运算。

然后,我实现了一个冒泡排序算法,用于对一个整数数组进行排序。

在实现这些程序的过程中,我遇到了许多问题,例如程序出现编译错误、运行时异常等。

但是,通过查阅相关资料和请教同学,我逐渐解决了这些问题。

3.实验总结通过本次实验,我深入理解了Java语言的基础知识,掌握了Java编程的基本技能和方法。

同时,我也发现了自己在编程中存在的问题和不足之处,例如对Java语言特性的理解不够深入、编程规范不够严格等。

针对这些问题,我将在今后的学习和实践中加以改进。

四、实验心得1.深入理解Java语言特性是编写高质量Java程序的关键。

例如,在实现计算器程序时,我必须深入理解Java的运算符和表达式规范才能确保程序的正确性。

2.掌握Java编程规范是提高程序可读性和可维护性的重要途径。

例如,在实现排序算法时,我必须遵循Java编程规范中的命名规范和注释规范才能使程序更易于理解和维护。

3.良好的编程习惯是避免程序出现问题的关键。

例如,在实现程序时,我必须注意程序的异常处理和错误处理才能确保程序的稳定性和可靠性。

4.团队合作是提高编程效率和质量的重要手段。

Java实验报告

Java实验报告

Java程序设计实验报告实验一Java开发环境的安装与配置一实验目的与要求1.熟悉安装和配置JDK开发环境2.熟悉安装和配置IDE开发工具3.掌握Java程序编辑、编译和运行的过程4.掌握Java程序的构成特点5.总结在调试过程中的错误。

二实验环境应用软件:Jdk1.5.0 , jcreator操作系统:window2000以。

三实验思考1 什么是JVM, 它的作用是什么?答:JVM是Java虚拟机,它是编译后的Java程序和硬件系统之间的接口。

我们可以把JVM 看做一个虚拟的处理器。

它不仅解释执行编译后的Java指令,而且还对其进行安全检查。

2 简单总结一下一个Java程序的基本结构。

答:(1)一个包的声明(2)任意数量的引入语句(3)类的声明和接口的声明。

四实验内容1按照下面的步骤设置环境变量path(1) 找到机器上已安装的jdk的所在路径。

C:\j2sdk1.4.2_14(2) 找到它的子目录bin,在该目录下应该包含java.exe,javac.exe,appletviewer 等应用程序。

记录下bin的完整路径。

C:\j2sdk1.4.2_14\bin(3)切换到windows的命令行方式,在默认的目录下,输入命令java ,记录结果。

关闭命令行方式。

Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.(4)右键点击“我的电脑”,打开“属性”->“高级”->“环境变量”,找到Path变量,点击编辑按钮,在弹出的编辑对话框里,将步骤2的路径添加到尾部。

(5)重新打开命令行方式,输入java –version ,如果正确显示java的版本号,则说明环境设置成果。

Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\user>java -versionjava version "1.4.2_14"Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_14-b05)Java HotSpot(TM) Client VM (build 1.4.2_14-b05, mixed mode)C:\Documents and Settings\user>(6)将以上过程以及你设置的path变量值填写到实验报告中,并解释一下为什么一定要设置该环境变量。

操作系统实验报告java

操作系统实验报告java

操作系统实验报告院系:专业:班级:学号:姓名:指导老师:进程调度的模拟与内存管理一、实验目的在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。

当就续进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。

实验模拟实现处理机调度,以加深了解处理机调度的工作,并体会优先级和时间片轮转调度算法的具体实施方法。

帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。

二、实验要求1、可随机输入若干进程,并按优先权排序;2、从就绪队首选进程运行:优先权-1/要求运行时间-1要求运行时间=0时,撤销该进程3、重新排序,进行下轮调度。

4、可随时增加进程;5、规定道数,设置后备队列和挂起状态。

若内存中进程少于规定道数,可自动从后备队列调度一作业进入。

被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。

6、每次调度后,显示各进程状态。

7、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表;表目内容:起址、长度、状态(未分/空表目)8、结合以上实验,PCB增加为:{PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,PCB指针}9、采用最先适应算法分配主存空间;10、进程完成后,回收主存,并与相邻空闲分区合并。

11、采用图形界面;三、实验内容选择一个调度算法,实现处理机调度。

1、设计一个按优先权调度算法实现处理机调度的程序;2、设计按时间片轮转实现处理机调度的程序。

3、主存储器空间的分配和回收。

在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。

四、实验原理该模拟系统采用java语言实现,要实现的功能有新建进程、进程调度、挂起进程、解挂进程、删除进程,道数和时间片大小可以由用户自己调整,有两种调度策略:按优先权调度和按时间片轮转调度。

每个进程可能有5种状态:新建(new)、就绪(ready)、运行(running)、阻塞(waiting)、挂起(suspend)。

java实习报告范文5篇

java实习报告范文5篇

java实习报告范文5篇2019优秀java实习报告范文(一)一:实习介绍1)实习题目学生信息管理系统的设计与开发2)实习目的《Java程序设计》课程是电子商务专业的一门专业必修课程,特针对此课程进行为期三周的实践教学,旨在提升本专业学生对此课程中的理论知识的综合应用能力、提高学生的逻辑思维能力、软件开发能力。

本次课程实习要求学生用Java技术在Windows平台下开发学生信息管理系统。

通过此程序的开发能够切实提高学生的程序设计水平,在实践中掌握面向对象程序设计的开发思想。

3)开发环境操作系统;Windows XP编程环境:MyEclipse 6.0主要技术:Java Swing实现窗体界面JDBC实现数据库操作系统架构:三层架构(MVC)+DAO设计模式数据库:MySQL5.0二:课设内容;1)系统功能需求学生信息管理系统主要对在校学生的个人基本信息以及成绩信息进行管理,对教师用户提供查询信息、增添信息、删除信息等操作功能;对学生用户提供成绩查询功能。

我们的目标就是为该系统提供前台用户界面设计以及后台连接数据库程序设计,系统程序界面采用Java Swing组件实现,数据库操作采用JDBC 实现。

学生信息管理系统要面对教师和学生用户。

对于教师,需要查询全部学生的基本信息和成绩信息,并且可以对其进行修改。

对于学生,不需要查询自己的基本信息,只需要查询成绩。

为了保护学生成绩隐私,每位学生登录系统后只能查询自己的成绩,而无法看到别人的成绩。

教师方面:教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以选择要操作的类别,即查询功能还是修改功能。

在查询功能里面,可以选择是查询学生基本信息,还是查询学生成绩信息。

在查询学生基本信息时,可以从依据不同字段,即学生信息表的不同属性进行查找。

在查找学生成绩信息时,只能依据学生姓名和学号进行查找。

在修改功能里面,包括对学生基本信息表和学生成绩表进行增加和删除记录。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统实验报告j a v a Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】操作系统实验报告院系:专业:班级:学号:姓名:指导老师:进程调度的模拟与内存管理一、实验目的在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。

当就续进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。

实验模拟实现处理机调度,以加深了解处理机调度的工作,并体会优先级和时间片轮转调度算法的具体实施方法。

帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。

二、实验要求1、可随机输入若干进程,并按优先权排序;2、从就绪队首选进程运行:优先权-1/要求运行时间-1要求运行时间=0时,撤销该进程3、重新排序,进行下轮调度。

4、可随时增加进程;5、规定道数,设置后备队列和挂起状态。

若内存中进程少于规定道数,可自动从后备队列调度一作业进入。

被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。

6、每次调度后,显示各进程状态。

7、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表;表目内容:起址、长度、状态(未分/空表目)8、结合以上实验,PCB增加为:{PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,PCB指针}9、采用最先适应算法分配主存空间;10、进程完成后,回收主存,并与相邻空闲分区合并。

11、采用图形界面;三、实验内容选择一个调度算法,实现处理机调度。

1、设计一个按优先权调度算法实现处理机调度的程序;2、设计按时间片轮转实现处理机调度的程序。

3、主存储器空间的分配和回收。

在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。

四、实验原理该模拟系统采用java语言实现,要实现的功能有新建进程、进程调度、挂起进程、解挂进程、删除进程,道数和时间片大小可以由用户自己调整,有两种调度策略:按优先权调度和按时间片轮转调度。

每个进程可能有5种状态:新建(new)、就绪(ready)、运行(running)、阻塞(waiting)、挂起(suspend)。

每个状态都有一个队列用来存放处于该状态的进程,不同的调度策略采用不同的队列实现。

当创建进程时,如果内存中的进程数还没达到规定道数,则将新建进程插入就绪队列,如果内存中进程数已经达到规定道数,则插到后备队列,后备队列中的进程的状态为new。

CPU每次调度时都从就绪队列中取进程,在进程执行过程中如果下一个操作时IO操作,则将进程插入到waiting队列。

在系统运行过程中可以执行进程挂起操作,但执行的挂起操作时系统自动暂停运行,在弹出窗口选择要挂起的进程后,将选中的进程从原来的队列中删除并插入到挂起队列。

进行解挂操作时将选中的进程从挂起队列中删除并插入该进程原来所处的队列。

按优先级调度:当选择按优先权调度时,所有队列都采用优先队列,优先队列采用一个有序链表实现,进程的优先权值越大代表优先级越高,优先队列中的进程按优先权从大到小排列,当新进程插入时根据该进程的优先权插入到队列中的合适位置,插入后保持队列按优先权从大到小排列,如果新进程与队列中某个进程优先权值相等,则该新进程插到那个进程后面,以遵循先来先服务的规则。

当要从队列中取出进程时总是取队列中第一个进程,因为该进程的优先级最高。

按时间片轮转调度:当选择按时间片轮转调度时,所有队列都采用先进先出队列,先进先出队列采用一个普通单向链表实现,当新进程插入时插入到队列的末尾,当要取进程时取队首进程,这样就实现了先进先出。

内存管理该实验基于实验一完成,核心是内存的分配和回收,在实验一的基础上增加内存管理部分,在新建进程的时候增加一个输入内存大小的输入框,在进程进入内存时要分配内存,在进程销毁时要回收内存,如果进入内存时内存不足,则将进程插入到后备队列等待下次调度。

系统维护一个内存表,每个表项代表一个空间,每个空间保存了该空间的起始地址和空间大小以及空间使用状态。

初始时只有一个空间,当CPU启动时要分配内存,内存分配采用最先适应算法。

回收内存时如果有相邻空闲空间,则要进行空闲空间合并。

五、部分源程序public class data {private String name; etIsIn()==0){for(int i = 0; i < (); i++){if(i).getLimit() >= (0).getLength()){(0).setStart(i).getBase());(0).setIsIn(1);if(i).getLimit() ==(0).getLength()){update1(unAssignList,i);}else{(i).setBase(i).getBase()+(0).getLength());(i).setLimit(i).getLimit()(0).getLength());}break;}}}}if()>0){for(int j = 0; j < (); j++){if(j).getIsIn()==0){for(int i = 0; i < (); i++){if(i).getLimit() >= (j).getLength()){(j).setStart(i).getBase());(j).setIsIn(1);if(i).getLimit() == (j).getLength()){update1(unAssignList,i);}else{(i).setBase(i).getBase()+(j).getLength());(i).setLimit(i).getLimit()(j).getLength());}break;}}}}}}移除内存public void putOutMemory(ArrayList<Data> list, int num) {(num).setIsIn(0);boolean flag1 = false;boolean flag2 = false;for(int i = 0; i < (); i++){if(i).getBase() ==(num).getLength()+(num).getStart())){(i).setBase(num).getStart());(i).setLimit(num).getLength()+(i).getLimit());flag1 = true;break;}}for(int i = 0; i < (); i++){if((i).getBase()+(i).getLimit()) == (num).getStart()){if(!flag1){(i).setLimit(num).getLength()+(i).getLimit());flag2 = true;break;}else{(i).setLimit(i).getLimit()+(i+1).getLimit());update1(unAssignList,i+1);}}}if(flag1 || flag2){}else{int i = 0;while(i).getBase()<(num).getStart()) {i++;}Data_Memory data = new Data_Memory(); (num).getStart());(num).getLength());();for(int j = 0; j < i; j++){(j));}(data);for(int j = i; j < (); j++){(j));}();for(int j = 0; j < (); j++){(j));}}}对内存管理调度的操作private class MyRenderer extends DefaultListCellRenderer {public Component getListCellRendererComponent(JList list, Object value,int index, boolean isSelected, boolean cellHasFocus){(list, value, index, isSelected,cellHasFocus);setBackground;for(int i = 0; i < (); i++){for(int j = (i).getBase()+6 ; j <(i).getLimit()+(i).getBase()+6; j++){if(index == j){setBackground;etTime()==0)();();for(int i = 0; i < (); i++){if(i).getTime()>0){(i));}}();for(int i =0; i < ();i++){(i));(i).setState("ready");}etState("ready");}etState("running");update(readyList,0);if()>0){(0));(5).setState("ready");}update(waitingList,0);}}else etState("running");()-1).setState("ready");(0));update(readyList,0);}}putInMemory();sub();display();();}public void PManager(){if()>0)if(0).getTime()==0)();for(int i = 0; i < (); i++){if(i).getTime()>0){(i));}}();for(int i =0; i < ();i++){(i));(i).setState("ready");}int j = 0;int m = ();for(; m < 6 && j < (); m++,j++){(getFirstW(waitingList)-1));(m).setState("ready"); update(waitingList,getFirstW(waitingList)-1);etState("running");update(readyList,getFirstW(readyList)-1);if()>0){(getFirstW(waitingList)-1));()-1).setState("ready");}update(waitingList,getFirstW(waitingList)-1);}}else{if()>0){boolean flag = false;int a = (0).getPriority();int b = (getFirstW(readyList)-1).getPriority();if(a > b){();(getFirstW(readyList)-1));flag = true;}if(flag){(0).setState("ready");(0));();(0));(0).setState("running");update(readyList,getFirstW(readyList)-1);}}}putInMemory();sub1();display();();}}六、程序运行图图1 进程界面图2 新建进程图3 进程的挂起与解挂图4. 进程的删除图5 进程运行中七、实验总结为了完成这个程序,我参考了课本,互联网以及相关资料。

相关文档
最新文档