实验报告实验课程名称:操作系统实验地点:南主楼七楼机房2018—2019学年(一)学期2018年 9月至 2019 年 1 月专业:班级:学号:姓名:指导老师:刘一男实验一实验项目:分时系统模拟实验学时:2实验日期: 2018-10-25 成绩:实验目的利用程序设计语言模拟分时系统中多个进程按时间片轮转调度算法进行进程调度的过程;假设有五个进程A,B,C,D,E,它们的到达时间及要求服务的时间分别为:进程名 A B C D E到达时间0 1 2 3 4服务时间 4 3 4 2 4时间片大小为1,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。
执行过程并计算各进程的周转时间及带权周转时间。
轮转调度:BDACE(1)修改时间片大小为2,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。
轮转调度:ADBCE(2)修改时间片大小为4,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间.顺序:ABCDE1、思考时间片的大小对调度算法产生什么影响?对计算机的性能产生什么影响?答:通过对时间片轮转调度算法中进程最后一次执行时间片分配的优化,提出了一种改进的时间片轮转调度算法,该算法具有更好的实时性,同时减少了任务调度次数和进程切换次数,降低了系统开销,提升了CPU的运行效率,使操作系统的性能得到了一定的提高。
A B C D E时间片为1 周转时间12 9 14 8 133 3 3.54 3.25带权周转时间时间片为2 周转时间8 12 13 7 132 4 3.25 3.5 3.25带权周转时间时间片为4 周转时间 4 6 9 10 131 2 2.25 5 3.25带权周转时间实验二实验项目:多道作业调度实验学时:2实验日期:2018-11-1成绩:实验目的本实验要求学生模拟作业调度的实现,用高级语言编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。
要求:编写并调度一个多道程序系统的作业调度模拟程序。
作业调度算法:采用基于先来先服务的调度算法。
可以参考课本中的方法进行设计。
对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。
系统初始状态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分钟的系统资源的状态及各个作业的状态,简要文字说明各个作业所处状态的原因,分析作业调度采用何种调度算法每张截图均需附文字说明,整理成word文档,以“班级_学号_姓名”命名,打成压缩包上传至FTP服务器9:00作业JOBA被调入内存运行,需要主存资源20K,2个磁带机,系统剩余资源80K,2个磁带机作业JOBA需要运行15分钟,到9:15运行结束,释放主存和磁带机资源,系统主存变为100K,磁带机变成5个9:20作业JOBB到达被调入内存运行,需要主存资源60K,1个磁带机,此时系统资源剩余40K,4个磁带机作业JOBB需运行21分钟,此时继续运行9:30作业JOBC到达,但此时系统主存资源只剩40K,不满足JOBC运行所需的45K 主存资源,所以JOBC处于等待状态,作业JOBB继续运行9:35作业JOBD到达,需主存资源10K,2个磁带机,符合条件,被调入内存运行,此时系统主存资源剩余30K,2个磁带机。
此时作业JOBB仍在运行作业JOBB和作业JOBD在同时运行作业JOBD继续运行,作业JOBB在9:41结束运行,释放内存和磁带机资源,作业JOBD仍在运行,此时系统主存资源剩余90K,3个磁带机,符合作业JOBC符合运行条件,被调入内存运行:,此时系统主存资源剩余45K,0个磁带机9:45作业JOBE到达,需要主存25K,3个磁带机,系统资源不足,所以作业JOBC 进入等待状态。
作业JOBC在9:41被调入内存运行,在9:50运行结束,释放内存和磁带机资源,此时系统主存资源还剩90K,3个磁带机,符合作业JOBE运行条件,作业JOBE被调入内存运行。
作业运行结束,释放资源,作业JOBE仍在运行。
作业JOBE运行结束,释放资源,所有作业全部完成运行,系统资源恢复初始状态。
作业调度采用多道并串行和先来先服务调度算法,运行序列为A-B-D-C-E实验三实验项目:PV操作-生产者和消费者实验学时: 2 实验日期:2018.11.8成绩:实验目的 1. 由用户指定要产生的进程及其类别,存入就绪队列。
2. 调度程序从就绪队列中提取一个就绪进程运行。
如果申请的资源被阻塞则进入相应的等待队列,调度程序调度就绪队列中的下一个进程。
进程运行结束时,会检查对应的等待队列,激活队列中的进程进入就绪队列。
运行结束的进程进入over链表。
重复这一过程直至就绪队列为空。
3. 输入两个进程,分别为生产者和消费者,按照先生产后消费顺序输入,观察并记录运行结果;调整输入进程的顺序,观察并记录运行结果4. 输入多个进程,随机分配为生产者和消费者,按(1)两种进程数量相同、(2)生产者多于消费者、(3)生产者少于消费者三种情况,观察并记录运行结果5. 多次输入多个进程,随机分配为生产者和消费者,使缓冲区中产品最后都被消费完,观察并记录运行结果运行结果:输入两个进程,分别为生产者和消费者,按照先生产后消费顺序输入,观察并记录运行结果调整输入进程的顺序,先消费后生产,观察并记录运行结果输入多个进程,随机分配为生产者和消费者,按不同情况观察并记录运行结果(1)两种进程数量相同(2)生产者多于消费者(3)生产者少于消费者多次输入多个进程,随机分配为生产者和消费者,使缓冲区中产品最后都被消费完,观察并记录运行结果实验四实验项目:银行家算法实验学时:2实验日期:2018.11.15成绩:实验目的设置现有系统资源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),观察系统是否安全,如果安全则记录观察结果并说明原因;如果不安全,采取措施使系统恢复安全,记录措施实施流程并说明原因1) 系统是安全的。
系统可用资源a b c:9 8 6 满足进程1,进程1完成后,释放12 2,可用资源变为:a b c:10 10 8,满足进程0,进程0完成后,释放1 0 1,可用资源变为:a b c:11 10 9,满足进程2,因为所有进程均可以执行,所以系统安全。
2)系统是不安全的。
系统可用资源a b c:9 8 5 满足进程1,进程1完成后,释放 1 2 2,可用资源变为:a b c:10 10 7,满足进程0,进程0完成后,释放1 0 1,可用资源变为:a b c:11 10 8,不满足进程2,因为所有进程不可以全部执行,所以系统是不安全的。
3)系统可用资源a b c:9 8 6 满足进程1,进程1完成后,释放1 2 2,可用资源变为:a b c:10 10 8,满足进程0,进程0完成后,释放1 0 1,可用资源变为:a b c:11 10 9,满足进程2,因为所有进程均可以执行,所以系统安全。
分配后的系统是不安全的。
因为系统目前可用资源为 a b c:8 7 6 不满足任何一个进程,资源不够。
4)系统不安全。
因为在(1)的基础上增加1个作业,资源需求为(11 11 11),可用资源 a b c:9 8 6,经过进程1后,变为10 10 8 ,因为满足进程0,运行进程0 ,可用资源变为11 10 9,满足进程2,运行进程2,结束后,可用资源变成11 11 9,因为增加了1个作业,所以不满足进程3,进行不能继续运行,所以系统不安全。
采取措施:修改资源,修改可用资源数量为(9 8 8) 如下:系统安全。
实验五实验项目:可变分区实验学时:2实验日期: 2018.11.22成绩:实验目的设置系统内存空间为10,一共有5个进程1~5,所需内存空间大小依次为2、6、5、2、4(1)使用系统提供的命令按照进程号由低到高送入内存,空间不足时使用相应命令撤销内存中的进程,确保每个进程都进入内存运行一次,记录内存分配过程并说明最后内存中的空闲区的个数、空闲区起始地址及各个空闲区大小(2)将输入顺序颠倒送入内存,记录内存分配过程并说明最后内存中的空闲区的个数、起始地址及各个空闲区大小(3)根据实验的结果,思考当前系统对空闲区的处理方式,以及撤销不同的进程会对空闲区的个数、分布有何影响(1)使用系统提供的命令按照进程号由低到高送入内存最后内存中的空闲区的个数为2,空闲区起始地址分别为005E0C5N、005E0C5P,两个空闲区大小都为1 (2)将输入顺序颠倒送入内存,记录内存分配过程并说明最后内存中的空闲区的个数、起始地址及各个空闲区大小最后内存中的空闲区的个数1个,起始地址为00550C58,空闲区大小为4(3)影响:从头往下放,系统空间不足时往上寻找可撤销并放入的空间,这边注意的是,不同的方式会产生不同的空间大小,尽量避免空闲区过多导致空闲区的大小过小,导致放入不了大的进程了。
实验六实验项目:请求分页实验学时:2实验日期:2018-11-29成绩:实验目的自学课本请求分页部分内容按照课本中的示例,设置物理块为3个,总页面个数为12个,按照序列输入,记录结果并描述每个页面的处理过程;然后将输入页面序列颠倒输入,观察记录结果并描述处理过程。
答:页面流址:2 ,3 ,2 ,1 ,5 ,2 ,4 ,5 ,3 ,2 ,5, 2、顺序输入:不符合先入先出算法。
处理过程:进入2,物理块为2,进入3,物理块为2 3,进入2,已经存在,物理块不变。
进入1,物理块为2 3 1,此时物理块已满。
进入5,变为5 3 1,进入2,变为5 2 1,进入4,变为5 2 4,进入5,已存在,进入3,变为3 2 4 ,进入2 ,已存在,进入5,变为3 5 2,进入2,变为3 5 2。