操作系统课程设计要点说明_第1页
操作系统课程设计要点说明_第2页
操作系统课程设计要点说明_第3页
操作系统课程设计要点说明_第4页
操作系统课程设计要点说明_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、I / 15更多企业学院:更多企业学院:中小企业管理全能版183 套讲座+89700 份资料总经理、高层管理49 套讲座+16388 份资料中层管理学院46 套讲座+6020 份资料 国学智慧、易经46 套讲座人力资源学院56 套讲座+27123 份资料各阶段员工培训学院77 套讲座+ 324 份资料员工管理企业学院67 套讲座+ 8720 份资料工厂生产管理学院52 套讲座+ 13920 份资料财务管理学院53 套讲座+ 17945 份资料 销售经理学院56 套讲座+ 14350 份资料销售人员培训学院72 套讲座+ 4879 份资料II / 15操作系统课程设计(设备管理)目目 录录III

2、 / 151 / 15一一引言引言1.11.1 课程设计题目课程设计题目实现一个模拟操作系统。1.21.2 课程设计的目的课程设计的目的通过模拟操作系统原理的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。1.31.3 小组人数小组人数建议 34 人一组共同完成模拟系统的实现。1.41.4 编程语言编程语言建议使用 VC、VB、C#、Java 等 Windows 环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。1.51.5 课程设计容课程设计容模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存

3、储管理、设备管理、文件管理和用户接口四部分。1.61.6 界面设计如图界面设计如图图图 1.11.1二二 课程设计任务与要求课程设计任务与要求2.12.1 设计任务设计任务设计一个设备管理分配程序,按先来先服务的算法,对设备进行分配。2.22.2 设计要求设计要求 设备管理主要包括设备的分配和回收。(1)模拟系统中有 A、B、C 三种独占型设备,A 设备 3 个,B 设备 2 个,C 设备 1 个。(2)因为模拟系统比较小,因此只要设备表设计合理即可。(3)采用先来先服务分配策略,采用设备的安全分配方式。(4)屏幕显示2 / 15每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设

4、备。三三 算法与数据结构算法与数据结构3.13.1 算法的总体思想(流程)算法的总体思想(流程)设备管理的功能是按照设备的类型和系统采用的分配策略,为请求 I/O 进程分配一条传输信息的完整通路。合理的控制 I/O 的控制过程,可最大限度的实现CPU 与设备、设备与设备之间的并行工作。1.监视所有设备。为了能对设备实施有效的分配和控制,系统能获取设备的状态。设备状态保存在设备控制表(DeviceTable)中,并动态的记录状态的变化与有关信息。2.制定分配策略。按先来先服务的算法,进行设备分配。3.设备的分配。把设备分配给进程。4.设备回收。当进程运行完毕后,要释放设备,则系统必须回收,一边其

5、他进程使用。图 3.13.23.2EquipmentEquipment 模块模块3.2.13.2.1 功能功能记录设备的状态与相关信息检查设备是否被调用对设备进行分配进程结束对设备进行回收3.2.23.2.2 数据结构数据结构一个 DeviceTable 类、一个 DeviceTable 函数。DeviceTable 是设备分配表,说明设备的分配状况,是否被占用。Device 类说明了设备是如何使用的。每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。3.3cpu3.3cpu 模块模块3.3.13.3.1 功能功能进程对设备的调用,当进程使用设备时,检查设备是否空闲。如果空闲

6、,3 / 15则调用该设备;如果设备正被使用,则将该进程阻塞到该设备的阻塞队列中,等到设备空闲时,再被唤醒,调用设备。3.3.23.3.2 数据结构数据结构一个设备的枚举类型 DeviceType,一个 cpu 函数。Cpu 函数中调用 Equipment 模块中的函数对设备进行检测。如果设备空闲,就调用该设备;如果设备真在被使用,则该进程被阻塞到该设备的阻塞队列中。3.3.33.3.3 算法算法通过调用 Equipment 模块中的函数对设背进行检测:如果设备空闲,则使用该设备;如果设备正在工作,则进程被阻塞。3.4form13.4form1 模块模块3.4.13.4.1 功能功能界面管理图

7、 3-2启动进程,如果要使用设备,按先来先服务的算法调用设备。此模块中有一个设备调用函数public int Allocate(DeviceType type),根据设备的物理名调用设备,并将信息显示显示到界面中。3.4.23.4.2 算法算法先来先服务(FCFS, First Come First Service)分配算法:每一设备有一队列管理,当多个作业或任务对同一设备提出 I/O 请求时,该算法把请求的先后次序排成一个等待该设备的队列,设备分配程序把设备分配给队列中的第一各作业。四四程序设计与实现程序设计与实现4.14.1 程序流程图程序流程图4 / 15YNNNY执行的进程根据设备的物

8、理名调用设备设备 a 是否空闲设备 b 是否空闲设备 c 是否空闲进程结束,回收设备Y将该进程放到设备 a 的阻塞队列中将该进程放到设备 b 的阻塞队列中将该进程放到设备 c 的阻塞队列中图 4-14.24.2 基本思想基本思想进程调用设备。先调用 A 类设备, A 类设备一共有三个,如果有空闲的设备,则进程就可调用;否则将进程阻塞到设备 A 的阻塞队列中,等待设备,等到 A 类设备有空闲设备时,就唤醒该进程,在断点处继续进行程序。再调用 B 类设备, B 类设备一共有两个,如果有空闲的设备,则进程就可调用;否则将进程阻塞到设备 B 的阻塞队列中,5 / 15等待设备,等到 B 类设备有空闲设

9、备时,就唤醒该进程,在断点处继续进行程序。最后调用 C 类设备, C 类设备只有一个,C 设备是临界资源,如果 C 设备空闲,则进程就可调用;否则将进程阻塞到设备 C 的阻塞队列中,等待设备,等到 C 设备空闲,就唤醒该进程,在断点处继续进行程序。4.34.3 定义的公共变量或数据结构定义的公共变量或数据结构Anum,Bnum,Cnum 分别表示设备 A,B,C 空闲数目public enum DeviceType 枚举型的数据类型 列举出三种设备public struct DeviceTable 定义一个设备表的结构体 public class Device 设备类public bool J

10、udgeDevice(DeviceType type) 检查类型为 type 的设备是否可用public int Allocate(DeviceType type) 分配设备,返回第几个设备被占用public void DeAllocate(DeviceType type, int a) 回收设备4.44.4 实验部分代码实验部分代码namespace WindowsApplication2public partial class Form1 : Form public static int Anum = 3, Bnum = 2, Cnum = 1; public enum DeviceTyp

11、e A,B, C, public struct DeviceTable public DeviceType deviceType; public int total; public int useState; /0空闲,1占用 public DeviceTable(DeviceType type, int total) /定义一个构造函数 this.total = total; deviceType = type; useState = new inttotal; for (int i = 0; i 0) str = true; break; case DeviceType.B: if (ta

12、ble1.total 0) str = true; break; case DeviceType.C: if (table2.total 0)7 / 15 str = true; break; return str; /分配设备分配设备, ,返回第几个设备被占用返回第几个设备被占用/ / public int Allocate(DeviceType type) int k = 0; switch (type) /使用switch语句选择分配设备不同函数 case DeviceType.A: table0.total-; for (int i = 0; i 3; i+) if (table0.u

13、seStatei = 0) table0.useStatei = 1; k = i; break; break; case DeviceType.B: table1.total-; for (int i = 0; i 2; i+) if (table0.useStatei = 0) table0.useStatei = 1; k = i; break; break;8 / 15 case DeviceType.C: table2.total-; break; return k; / /回收设备回收设备/ / public void DeAllocate(DeviceType type, int

14、 a) switch (type) case DeviceType.A: table0.total+; table0.useStatea = 0; break; case DeviceType.B: table1.total+; table1.useStatea = 0; break; case DeviceType.C: table2.total+; table2.useStatea = 0; break; public Form1() InitializeComponent(); 9 / 15/ / 分配设备时的颜色变化分配设备时的颜色变化/ / private void button7_

15、Click(object sender, EventArgs e) Anum-; string result1 = ; Device d1 = new Device(); int m1 = d1.Allocate(DeviceType.A); result1 = Convert.ToString(m1); switch (Anum) case 2: this.button1.BackColor = Color.Red; break; case 1: this.button2.BackColor = Color.Red; break; case 0: this.button3.BackColor

16、 = Color.Red; break; default: MessageBox.Show(无设备可分配); break; private void button8_Click(object sender, EventArgs e) Bnum-; string result2 = ; Device d2 = new Device(); int m2 = d2.Allocate(DeviceType.B); switch (Bnum) case 1: this.button4.BackColor = Color.Red; break; case 0: this.button5.BackColor

17、 = Color.Red;10 / 15 break; default: MessageBox.Show(无设备可分配); break; result2 = Convert.ToString(m2); private void button9_Click(object sender, EventArgs e) Cnum-; string result3 = ; Device d1 = new Device(); int m3 = d1.Allocate(DeviceType.C); if (Cnum = 0) this.button6.BackColor = Color.Red; else M

18、essageBox.Show(无设备可分配); result3 = Convert.ToString(m3); 4.54.5 运行截图运行截图屏幕显示主存使用情况示意图,哪些主存块已分配,哪些主存块未分配,以不同的颜色表示,灰色表示设备空闲,红色表示设备已分配初始化为所有设备都是空闲状态,如下图所示图 4-211 / 15分配设备 A 正常情况下,如图所示:图 4-3分配设备 A 非正常情况下,例如需要设备数超过实际有的设备数时,如图所示:图 4-43 个设备 A 都被分配出去,回收设备 A 时正常情况如下图所示:图 4-54.64.6 使用说明使用说明设备管理主要包括设备的分配和回收。1. 设备的模拟 模拟系统中有 A、B、C 三种独占型设备,A 设备 3 个,B 设备 2 个,C 设备 1 个。2. 数据结构 因为模拟系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论