当前位置:文档之家› 操作系统实验报告

操作系统实验报告

工程学院管理学院实验报告实验课程名称:操作系统实验地点:南主楼七楼机房2014 年 2 月至2014 年 4 月专业信息管理与信息系统班级11信管2班学生学号指导老师一男实验报告实验项目:分时系统模拟实验学时:2实验日期:实验要求:实验容:时间片大小为1,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。

B 9 3C 14 3.5D 8 4E 13 3.25完成顺序:BDACE修改时间片大小为2,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。

B 12 4C 13 3.25D 7 3.5E 13 3.25完成顺序:ADBCE修改时间片大小为4,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。

实验项目:多道作业调度实验学时:2实验日期:实验要求:系统初始状态100K存,5台磁带机,作业初始状态为资源要求用户名作业名状态到达时间运行时间(小时) 主存(K) 磁带机A JOBA W 9:00 0.25 20 2B JOBB N 9:20 0.35 60 1C JOBC N 9:30 0.15 45 3D JOBD N 9:35 0.2 10 2E JOBE N 9:45 0.1 25 3截图记录程序运行每5分钟的系统资源的状态及各个作业的状态,简要文字说明各个作业所处状态的原因,分析作业调度采用何种调度算法实验容:初始时间是9:00程序运行5分钟,时间到达9:05。

系统资源数量为80,A、B、C、D、E作业状态为R、N、N、N、N。

N、N。

程序运行5分钟,时间到达9:15。

系统资源数量为100,A、B、C、D、E作业状态为F、N、N、N、N。

程序运行5分钟,时间到达9:20。

系统资源数量为40,A、B、C、D、E作业状态为F、R、N、N、N。

A已经完成N、N。

程序运行5分钟,时间到达9:30。

系统资源数量为80,A、B、C、D、E作业状态为F、R、W、N、N。

程序运行5分钟,时间到达9:35。

系统资源数量为30,A、B、C、D、E作业状态为F、R、W、R、N。

R、N。

程序运行5分钟,时间到达9:45。

系统资源数量为45,A、B、C、D、E作业状态为F、F、R、R、W。

程序运行5分钟,时间到达9:50。

系统资源数量为65,A、B、C、D、E作业状态为F、F、F、R、R。

F、R。

程序运行5分钟,作业已完成。

程序运行最后结果实验代码:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<cstdlib>#define getjcb() (JCB*)malloc(sizeof(JCB)) typedef struct {//资源的总量int memory;int tape;}RESOURCE;实验项目:PV操作-生产者与消费者实验学时: 2实验日期:实验要求:1. 由用户指定要产生的进程及其类别,存入就绪队列。

2. 调度程序从就绪队列中提取一个就绪进程运行。

如果申请的资源被阻塞则进入相应的等待队列,调度程序调度就绪队列中的下一个进程。

进程运行结束时,会检查对应的等待队列,激活队列中的进程进入就绪队列。

运行结束的进程进入over链表。

重复这一过程直至就绪队列为空。

3. 输入两个进程,分别为生产者和消费者,按照先生产后消费顺序输入,观察并记录运行结果;调整输入进程的顺序,观察并记录运行结果4. 输入多个进程,随机分配为生产者和消费者,按(1)两种进程数量相同、(2)生产者多于消费者、(3)生产者少于消费者三种情况,观察并记录运行结果5. 多次输入多个进程,随机分配为生产者和消费者,使缓冲区中产品最后都被消费完,观察并记录运行结果实验容:输入两个进程,分别为生产者和消费者,按照先生产后消费顺序输入,观察并记录运行结果输入两个进程,分别为生产者和消费者,按照先生产后消费顺序输入,观察并记录运行结果输入多个进程,随机分配为生产者和消费者(1)两种进程数量相同、观察并记录运行结果多次输入多个进程,随机分配为生产者和消费者,使缓冲区中产品最后都被消费完,观察并记录运行结果实验代码:#include "stdio.h"#include <stdlib.h>#include <conio.h>#include "iostream.h"#define NULL 0#define OK 1#define ERROR 0#define buffersize 3#define getpch(type) (type*)malloc(sizeof(type))实验项目:银行家算法实验学时:2实验日期:实验要求:设置现有系统资源3类,分别为a、b、c,可用数量为(9 8 6);作业共3个,abc资源需求分别为(11 9 7,9 10 8,10 10 9),已分配资源分别为(1 0 1,1 2 2,0 1 0)(1)将相关数据输入程序,观察系统是否安全,记录观察结果并说明原因(2)修改可用资源数量为(9 8 5),观察系统是否安全,记录观察结果并说明原因(3)在(2)的基础上修改可用资源数量回到(9 8 6),为进程2分配资源(1 1 0),观察系统是否安全,记录结果并说明原因;(4)在(1)的基础上增加1个作业,资源需求为(11 11 11),观察系统是否安全,如果安全则记录观察结果并说明原因;如果不安全,采取措施使系统恢复安全,记录措施实施流程并说明原因实验容:设置现有系统资源3类,分别为a、b、c,可用数量为(9 8 6);作业共3个,abc资源需求分别为(11 9 7,9 10 8,10 10 9),已分配资源分别为(1 0 1,1 2 2,0 1 0)(1)将相关数据输入程序,观察系统是否安全,记录观察结果并说明原因系统是安全的。

系统可用资源a b c:986满足进程1,进程1完成后,释放122,可用资源变为:a b c:10108,满足进程0,进程0完成后,释放101,可用资源变为:a b c:11109,满足进程2,因为所有进程均可以执行,所以系统安全。

(2)修改可用资源数量为(9 8 5),观察系统是否安全,记录观察结果并说明原因系统是不安全的。

因为系统目前可用资源不满足任何一个进程。

(3)在(2)的基础上修改可用资源数量回到(9 8 6),为进程2分配资源(1 1 0),观察系统是否安全,记录结果并说明原因;系统可用资源a b c:986满足进程1,进程1完成后,释放122,可用资源变为:a b c:10108,满足进程0,进程0完成后,释放101,可用资源变为:a b c:11109,满足进程2,因为所有进程均可以执行,所以系统安全。

系统是不安全的。

因为系统目前可用资源为a b c:876不满足任何一个进程,资源不够。

(4)在(1)的基础上增加1个作业,资源需求为(11 11 11),观察系统是否安全,如果安全则记录观察结果并说明原因;如果不安全,采取措施使系统恢复安全,记录措施实施流程并说明原因系统不安全。

因为在(1)的基础上增加1个作业,资源需求为(111111),可用资源a b c:986,经过进程1后,变为10108,因为满足进程0,运行进程0,可用资源变为11109,满足进程2,运行进程2,结束后,可用资源变成11119,因为增加了1个作业,所以不满足进程3,进行不能继续运行,所以系统不安全。

采取措施:修改资源,修改可用资源数量为(988)如下:实验代码:#include<iostream.h>#include<string.h>#include<stdio.h>#define False 0#define True 1int Max[100][100]={0};//各进程所需各类资源的最大需求int Avaliable[100]={0};//系统可用资源char name[100]={0};//资源的名称int Allocation[100][100]={0};//系统已分配资源实验项目:可变分区实验学时:2实验日期:实验要求:设置系统存空间为10,一共有5个进程1~5,所需存空间大小依次为2、6、5、2、4 (1)使用系统提供的命令按照进程号由低到高送入存,空间不足时使用相应命令撤销存中的进程,确保每个进程都进入存运行一次,记录存分配过程并说明最后存中的空闲区的个数、空闲区起始地址及各个空闲区大小(2)将输入顺序颠倒送入存,记录存分配过程并说明最后存中的空闲区的个数、起始地址及各个空闲区大小(3)根据实验的结果,思考当前系统对空闲区的处理方式,以及撤销不同的进程会对空闲区的个数、分布有何影响实验容:设置系统存空间为10,一共有5个进程1~5,所需存空间大小依次为2、6、5、2、4(1)使用系统提供的命令按照进程号由低到高送入存,空间不足时使用相应命令撤销存中的进程,确保每个进程都进入存运行一次,记录存分配并说明最后存中的空闲区的个数、空闲区起始地址及各个空闲区大小最后存中的空闲区的个数为2两个空闲区大小各为1(2)将输入顺序颠倒送入存,记录存分配过程并说明最后存中的空闲区的个数、起始地址及各个空闲区大小最后存中的空闲区的个数为1空闲区大小为4。

相关主题