操作系统课程设计(设备管理)

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

操作系统课程设计(设备管理)

目录

一引言1

1.1课程设计题目1

1.2课程设计的目的1

1.3小组人数1

1.4编程语言1

1.5课程设计内容1

1.6界面设计如图1

二课程设计任务及要求2

2.1设计任务2

2.2设计要求2

三算法及数据结构2

3.1算法的总体思想(流程)2

3.2 Equipment模块3

3.2.1 功能3

3.2.2 数据结构3

3.3 cpu模块4

3.3.1 功能4

3.3.2 数据结构4

3.3.3 算法4

3.4 form1模块4

3.4.1 功能4

3.4.2 算法5

四程序设计与实现5

4.1 程序流程图5

4.2 基本思想6

4.3 定义的公共变量或数据结构7 4.4 实验部分代码7

4.5 运行截图12

4.6使用说明15

五总结15

六参考文献15

一引言

1.1课程设计题目

实现一个模拟操作系统。

1.2课程设计的目的

通过模拟操作系统原理的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。

1.3小组人数

建议3~4人一组共同完成模拟系统的实现。

1.4编程语言

建议使用VC、VB、C#、Java等Windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。

1.5课程设计内容

模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。

1.6界面设计如图

图1.1

二课程设计任务及要求

2.1设计任务

设计一个设备管理分配程序,按先来先服务的算法,对设备进行分配。

2.2设计要求

设备管理主要包括设备的分配和回收。

(1)模拟系统中有A、B、C三种独占型设备,A设备3个,B设备2个,C设备1个。

(2)因为模拟系统比较小,因此只要设备表设计合理即可。

(3)采用先来先服务分配策略,采用设备的安全分配方式。

(4)屏幕显示

每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。

三算法及数据结构

3.1算法的总体思想(流程)

设备管理的功能是按照设备的类型和系统采用的分配策略,为请求I/O进程分配一条传输信息的完整通路。合理的控制I/O的控制过程,可最大限度的实现CPU

与设备、设备与设备之间的并行工作。

1.监视所有设备。为了能对设备实施有效的分配和控制,系统能获取设备的状

态。设备状态保存在设备控制表(DeviceTable)中,并动态的记录状态的变化及

有关信息。

2.制定分配策略。按先来先服务的算法,进行设备分配。

3.设备的分配。把设备分配给进程。

4.设备回收。当进程运行完毕后,要释放设备,则系统必须回收,一边其他进程使用。

图3.1

3.2Equipment模块

3.2.1功能

记录设备的状态及相关信息

检查设备是否被调用

对设备进行分配

进程结束对设备进行回收

3.2.2数据结构

一个DeviceTable类、一个DeviceTable函数。

DeviceTable是设备分配表,说明设备的分配状况,是否被占用。

Device类说明了设备是如何使用的。每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。

3.3cpu模块

3.3.1功能

进程对设备的调用,当进程使用设备时,检查设备是否空闲。如果空闲,则调用该设备;如果设备正被使用,则将该进程阻塞到该设备的阻塞队列中,等

到设备空闲时,再被唤醒,调用设备。

3.3.2数据结构

一个设备的枚举类型DeviceType,一个cpu函数。

Cpu函数中调用Equipment模块中的函数对设备进行检测。如果设备空闲,就调用该设备;如果设备真在被使用,则该进程被阻塞到该设备的阻塞队列中。

3.3.3算法

通过调用Equipment模块中的函数对设背进行检测:如果设备空闲,则使用该设备;如果设备正在工作,则进程被阻塞。

3.4form1模块

3.4.1功能

界面管理

图3-2

启动进程,如果要使用设备,按先来先服务的算法调用设备。此模块中有一个设备调用函数public int Allocate(DeviceType type),根据设备的物理名调用设备,并将信息显示显示到界面中。

3.4.2算法

先来先服务(FCFS, First e First Service)分配算法:

每一设备有一队列管理,当多个作业或任务对同一设备提出I/O请求时,该算法把请求的先后次序排成一个等待该设备的队列,设备分配程序把设备分

配给队列中的第一各作业。

四程序设计与实现

4.1 程序流程图

图4-1

4.2 基本思想

进程调用设备。先调用A类设备,A类设备一共有三个,如果有空闲的设备,则进程就可调用;否则将进程阻塞到设备A的阻塞队列中,等待设备,等到A类设备有空闲设备时,就唤醒该进程,在断点处继续进行程序。再调用B类设备,B类设备一共有两个,如果有空闲的设备,则进程就可调用;否则将进程阻塞到设备B的阻塞队列中,等

相关文档
最新文档