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

合集下载

操作系统课程设计

操作系统课程设计

操作系统课程设计一、课程目标知识目标:1. 理解操作系统的基本概念、功能、类型和结构,掌握操作系统的五大核心功能模块(处理器管理、存储器管理、设备管理、文件管理、用户接口);2. 掌握操作系统的发展历程、主要操作系统(如Windows、Linux、Mac OS)的特点及应用场景;3. 了解操作系统的设计与实现原理,包括进程管理、内存管理、设备管理、文件系统等关键技术;4. 学会使用操作系统提供的命令行或图形界面进行基本的系统操作与维护。

技能目标:1. 培养学生对操作系统的实际操作能力,能够熟练使用至少一种操作系统进行日常管理与维护;2. 培养学生运用操作系统原理解决实际问题的能力,如分析系统性能、诊断故障、优化配置等;3. 提高学生的编程能力,使其能够编写简单的系统程序或脚本,实现特定功能。

情感态度价值观目标:1. 培养学生对操作系统的兴趣,激发学生学习计算机科学的热情;2. 培养学生的团队合作意识,使其在讨论、分析、解决问题的过程中学会倾听、交流、协作;3. 培养学生具备良好的信息素养,关注操作系统领域的最新发展,增强信息安全意识。

课程性质:本课程为计算机科学与技术专业(或相关领域)的必修课,具有较强的理论性和实践性。

学生特点:学生已具备一定的计算机基础知识,具有较强的学习兴趣和动手能力,但可能对操作系统原理的理解和应用尚有不足。

教学要求:注重理论与实践相结合,以案例驱动、任务导向的方式进行教学,注重培养学生的实际操作能力和问题解决能力。

通过本课程的学习,使学生能够掌握操作系统的基本原理,提高实际应用水平,为后续专业课程学习打下坚实基础。

二、教学内容1. 操作系统概述:介绍操作系统的基本概念、功能、类型,比较不同操作系统的特点,分析操作系统的发展趋势。

教材章节:第一章 操作系统概述2. 进程与线程管理:讲解进程与线程的概念、状态与转换,进程调度算法,同步与互斥,死锁与饥饿问题。

教材章节:第二章 进程管理3. 存储管理:介绍内存分配与回收策略,虚拟内存技术,页面置换算法,内存保护机制。

《操作系统》课程设计

《操作系统》课程设计

《操作系统》课程设计一、课程目标知识目标:1. 让学生掌握操作系统的基本概念,包括进程、线程、内存管理、文件系统等核心知识;2. 了解操作系统的历史发展,掌握不同类型操作系统的特点及使用场景;3. 掌握操作系统的性能评价方法和常用的调度算法。

技能目标:1. 培养学生运用操作系统知识解决实际问题的能力,如分析系统性能瓶颈、优化系统资源分配等;2. 培养学生具备基本的操作系统编程能力,如进程创建、线程同步、文件操作等;3. 提高学生的团队协作能力和沟通能力,通过小组讨论和项目实践,学会共同解决问题。

情感态度价值观目标:1. 培养学生对操作系统学科的兴趣,激发学生的学习热情,使其形成积极向上的学习态度;2. 培养学生具备良好的信息素养,尊重知识产权,遵循法律法规;3. 培养学生的创新精神和批判性思维,敢于质疑、勇于探索,形成独立思考的能力。

课程性质:本课程为计算机科学与技术专业的核心课程,旨在让学生掌握操作系统的基本原理和实现方法,提高学生的系统分析和编程能力。

学生特点:学生具备一定的编程基础和计算机系统知识,具有较强的逻辑思维能力和动手实践能力。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,通过案例分析和项目实践,帮助学生将所学知识内化为具体的学习成果。

在教学过程中,关注学生的学习进度和反馈,及时调整教学策略,确保课程目标的实现。

二、教学内容1. 操作系统概述:介绍操作系统的定义、发展历程、功能、类型及特点,对应教材第一章内容。

- 操作系统的起源与发展- 操作系统的功能与类型- 操作系统的主要特点2. 进程与线程:讲解进程与线程的概念、状态、调度算法,对应教材第二章内容。

- 进程与线程的定义与区别- 进程状态与转换- 进程调度算法3. 内存管理:分析内存管理的基本原理、策略和技术,对应教材第三章内容。

- 内存分配与回收策略- 虚拟内存技术- 页面置换算法4. 文件系统:介绍文件系统的基本概念、结构、存储原理,对应教材第四章内容。

操作系统概念第九版教学设计

操作系统概念第九版教学设计

操作系统概念第九版教学设计一、概述操作系统是计算机领域的重要学科,是计算机应用的基石之一。

本文以《操作系统概念(第九版)》为教材,结合自身经验,提出一份适用于操作系统概念课程的教学设计。

二、课程目标1.掌握操作系统相关概念和基础知识;2.熟悉操作系统结构和组成部分;3.学会操作系统资源管理与进程调度;4.了解常见的文件系统和存储管理方式;5.能够运用计算机操作系统解决大规模计算问题。

三、教学内容及安排第一章:操作系统概述1.操作系统概念及历史2.操作系统特征和任务3.操作系统的基本功能4.操作系统的分类及功能安排:1课时第二章:进程管理1.进程概念和进程状态2.进程控制块和进程切换3.进程调度及其算法4.同步和互斥机制5.进程通信安排:3课时第三章:内存管理1.内存管理基础2.连续内存分配方式3.页式存储管理方式4.段式存储管理方式5.虚拟内存管理方式安排:3课时第四章:设备管理1.设备管理概述2.IO系统结构3.设备软件机制4.磁盘管理和文件系统安排:3课时第五章:进程间通信1.进程间通信方式2.管道通信和消息队列通信3.信号通信和共享内存通信安排:2课时第六章:进程调度算法1.进程调度算法及其特性2.先来先服务调度算法3.最短作业优先调度算法4.优先级调度算法5.时间片轮转调度算法安排:2课时第七章:文件系统1.文件系统概述2.文件的逻辑结构3.目录结构和文件管理4.文件存储空间管理安排:2课时第八章:安全性和保护1.安全性和保护的概念2.访问控制和身份认证3.文件访问和备份4.操作系统安全性相关问题安排:2课时第九章:操作系统案例研究1.UNIX和Linux操作系统2.Windows操作系统3.macOS操作系统安排:2课时四、教学方法教学方法分为讲授和实践两种。

其中讲授以教材为主要参考,加强理论讲述和重点难点强化。

实践由教师进行示范和引导,学生自主实践并提交实验报告。

五、考核方式考核方式包括平时练习和期末考试。

操作系统课程设计Linux

操作系统课程设计Linux

操作系统课程设计Linux一、教学目标本课程的教学目标是使学生掌握Linux操作系统的核心概念、原理和应用技能。

通过本课程的学习,学生将能够:1.理解操作系统的基本原理,包括进程管理、内存管理、文件系统和输入/输出系统。

2.掌握Linux操作系统的安装、配置和管理方法。

3.熟练使用Linux命令行界面,进行日常操作和系统管理。

4.掌握Linux常用命令、 shell脚本编写和系统监控工具的使用。

5.了解Linux操作系统在服务器、嵌入式设备和云计算等领域的应用。

二、教学内容本课程的教学内容分为五个部分:1.操作系统概述:介绍操作系统的定义、功能和分类,以及Linux操作系统的历史和发展。

2.进程管理:讲解进程的基本概念、进程控制、进程同步和互斥、死锁及其解决方法。

3.内存管理:介绍内存分配与回收策略、内存保护、虚拟内存和分页分段机制。

4.文件系统:讲解文件和目录结构、文件访问控制、文件系统性能优化和磁盘空间分配策略。

5.输入/输出系统:介绍I/O设备管理、中断和DMA机制、设备驱动程序和I/O调度策略。

三、教学方法本课程采用多种教学方法相结合的方式,以提高学生的学习兴趣和主动性:1.讲授法:教师讲解操作系统的核心概念和原理,引导学生掌握基本知识。

2.讨论法:学生针对实际案例和问题进行讨论,培养学生的思考和分析能力。

3.案例分析法:分析Linux操作系统的实际应用案例,使学生了解操作系统的应用场景。

4.实验法:安排实验室课时,让学生亲自动手进行系统安装、配置和调试,提高学生的实践能力。

四、教学资源本课程的教学资源包括:1.教材:选用权威、实用的Linux操作系统教材,如《Linux操作系统原理与应用》。

2.参考书:提供相关的学术论文、技术博客和在线文档,供学生拓展阅读。

3.多媒体资料:制作课件、教学视频和演示文稿,辅助学生理解和记忆。

4.实验设备:提供Linux服务器、虚拟机和实验室环境,让学生进行实际操作。

实验室设备管理系统课程设计

实验室设备管理系统课程设计

个人课程设计报告院系计算机与通信工程学院专业计算机(中加)学号20106126姓名角色 D日期2013/6/20个人课程设计报告一.项目概述1.1编写目的因为现在各个高校内教学设备众多但自动管理水平相比过低,很多高校管理设备都采用在设备购进以后将设备的基本情况和相关信息登记存档。

存档以后,档案基本就没人记录与维护,至于以后设备的变迁或损坏都不会记录在设备档案中,即不能体现设备的即时状态。

而有些即使有设备管理系统的单位,就算是能把设备的即时信息体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个学校教学设备管理信息化仍处于较低水平。

将管理任务分成小块,落实到个人并能随时查询设备当前情况和历史情况,对设备的可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来。

同时基于实验室管理者对设备的的使用情况进行统计和更新提供轻松快捷的管理方式,利用计算机管理系统管理我校的实验设备势在必行,也方便广大用户可以随时随地的借用实验设备进行学习和研究。

该报告的读者对象为研发该软件者。

1.2任务每学年要对实验室设备使用情况进行统计、更新。

其中:(1)对于已彻底损坏的做报废处理,同时详细记录有关信息。

(2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。

(3)对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。

新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。

(4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等查询。

1.3开发环境系统开发环境的选择对于系统的建立来说至关重要,它将决定着系统开发工作量的大小,系统的性能特点以及系统今后的维护工作难易等。

因此在开发系统之前,根据对系统所采用的技术、实现功能的评估,在选择开发环境时,主要考虑以下几个因素:扩展性,总成本,功能,是否容易开发与管理,另外开放性和互操作性也是需要考虑的一个重要方面,因为该系统是运行在Internet 上的,用户平台的差异决定了与其它系统的互操作性是不可避免的。

现代设备管理课程设计

现代设备管理课程设计

现代设备管理课程设计一、教学目标本课程旨在通过学习现代设备管理的相关知识,使学生能够理解并掌握设备管理的基本概念、方法和技术,提高学生在实际工作中对设备进行有效管理的能力。

知识目标:学生将了解现代设备管理的基本概念、目标、原则和方法,掌握设备的选择、采购、使用、维护和更新的流程和技术。

技能目标:学生将能够运用设备管理的方法和技术,进行设备的选择、采购、使用、维护和更新的实际操作,提高工作效率和质量。

情感态度价值观目标:学生将认识到设备管理在现代工作和生活中的重要性,培养对设备管理的热爱和责任感,形成积极的学习态度和职业态度。

二、教学内容本课程的教学内容主要包括现代设备管理的基本概念、目标、原则和方法,设备的选择、采购、使用、维护和更新的流程和技术。

具体的教学大纲如下:1.设备管理的基本概念和目标2.设备管理的原则和方法3.设备的选择和采购4.设备的使用和管理5.设备的维护和更新三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

通过讲授法,教师将向学生传授设备管理的基本概念、目标和原则,引导学生理解设备管理的重要性。

通过讨论法,学生将能够与同学和教师一起探讨设备管理的方法和技巧,提高学生的思考和分析能力。

通过案例分析法,学生将能够通过实际案例的学习,了解设备管理的实际应用和挑战,提高学生的实际操作能力。

通过实验法,学生将能够亲自动手进行设备的选择、采购、使用、维护和更新的实际操作,提高学生的实践能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源,包括教材、参考书、多媒体资料和实验设备等。

教材:我们将选择现代设备管理的经典教材,用于学生学习和参考。

参考书:我们将提供相关的参考书籍,用于学生深入学习和研究。

多媒体资料:我们将准备相关的多媒体资料,包括PPT、视频和案例等,用于辅助教学和学生的自主学习。

西电软院操作系统课程设计报告

西电软院操作系统课程设计报告

西电软院操作系统课程设计报告姓名:教师:褚华目录实验说明重要提示实验1 系统调用实验2 内核模块实验3 文件系统实验4 设备管理实验说明1、实验做为学习的重要促进手段,是为了深化对理论的理解,锻炼实践动手能力。

2、实验同时也作为考核的手段。

3、实验内容会在课程进行中下达,并且会分次地、部分地被抽查。

4、课程结束时,要求把所有的实验整理成一个完整的电子文档并上交,做为最后成绩的评定依据。

5、如果有兴趣的合适的题目,也可自己选题目。

格式说明1、本文档文件名命名为“学号-姓名”,如“13071000_小王”。

2、留白部分不足的自己调整长度,也可加页(增加内容应在表格内)。

3、每次的实验报告都要在这个文件中(按照实验次序依次)增加,而不是每次一个新的word文件。

4、本文档保存为doc格式(请勿用Wordxx的docx格式)。

重要提示:1、实验正文建议使用小四号或五号宋体。

2、若附加图形,则请直接嵌入到实验手册相应位置。

3、各实验的源程序,请按实验分目录存放,如第一个实验的源程序存放在目录lab1下,第二个实验的源程序存放在目录lab2下等等,依次类推。

可互相讨论,但严禁抄袭网络或同学的实验结果。

实验编号1题目系统调用实验目的为Linux内核增加一个系统调用,并编写用户进程的程序来测试要求该系统调用能够完成以下功能:1、该系统调用有1个int型参数,返回值为int。

2、若参数为偶数,则输出自己学号后四位3、若参数为奇数,则输出自己学号的后五位实验内容1、系统调用的实现2、增加系统调用3、Linux内核的构建报告内容要求(1)实现方法和思路(2)测试及结果报告正文要给linux增加系统调用,可以用修改内核源码并重新编译的方法实现一:基本过程是1、在系统调用表文件中给要增加的一个系统调用的名字2、在系统调用号文件中给要新增的系统调用分配一个系统调用号3、增加系统调用声明4、添加系统调用的实现5、重新编译内核6、编写测试驱动函数,测试系统调用是否添加成功一:在系统调用表文件中增加系统调用的名字二:在系统调用号文件中给要新增的系统调用分配一个系统调用号三:增加系统调用声明四:添加系统调用的实现要为linux内核增加系统调用,首先必须要实现系统的内核调用也就是提供功能的一个函数根据题目要求,当给改系统调用传递int参数为奇数时输出自己学号的后五位,当系统调用接受的参数为偶数时,输出自己学号的后四位所以,系统调用的实现如下可以看到系统调用的实现同基本的C语言没多大差别,只是能使用的库不一样在linux内核中的代码不能使用标准C库,只能使用内核提供的库所以能调用的函数会有不同最后实现代码如下当参数num为偶数时输出2257也就是学号的后四位当参数为奇数时输出12257也就是学号的后四位可以看到输出函数式printk而不是printf,因为在内核中不能使用标准C函数五:编译内核六:测试系统调用测试驱动函数如下测试输出如下由于在系统调用实现时忘记在末尾加换行符了。

操作系统课程设计题目

操作系统课程设计题目
-性能指标与评价方法
-操作系统性能调优策略
-多处理器系统
-多处理器系统的基本概念
-并行与分布式计算
-实时操作系统
-实时操作系统的特点与需求
-实时调度算法
-操作系统中的并发控制
-并发的基本概念
-互斥与同步机制
-课程设计进阶项目
-设计并实现一个简单的实时操作系统
-研究并发控制策略在操作系统中的应用
-分析多处理器系统中的负载均衡问题
4.章节四:内存管理
-内存分配与回收策略
-虚拟内存与分页机制
5.章节五:设备管理
-设备管理的基本原理
- I/O调度策略
6.章节六:文件系统
-文件与目录结构
-文件存储与访问控制
2、教学内容
-文件系统性能优化
-磁盘空间分配策略
-磁盘碎片整理方法
-操作系统安全性
-访问控制机制
-加密与认证技术
-操作系统实例分析
-探索操作系统在移动设备、物联网等新兴领域的应用案例
4、教学内容
-操作系统接口与用户交互
-命令行接口(CLI)与图形用户界面(GUI)
-操作系统提供的系统调用与服务
-操作系统的网络功能
-网络协议栈的基础知识
-操作系统在网络通信中的作用
-操作系统的虚拟化技术
-虚拟化技术的原理与应用
-虚拟机监控器(VMM)的作用与分类
-探讨操作系统在人机交互方面的未来发展趋势
-评估开源操作系统的标准化程度及其对行业的影响
操作系统课程设计题目
一、教学内容
本章节内容来自《操作系统》课程,针对高二年级学生,选择以下课程设计题目:
1.章节一:操作系统概述
-操作系统Hale Waihona Puke 基本概念-操作系统的历史与发展
  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.13.2 Equipment模块3.2.1 功能记录设备的状态及相关信息检查设备是否被调用对设备进行分配进程结束对设备进行回收3.2.2 数据结构一个DeviceTable类、一个DeviceTable函数。

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

Device类说明了设备是如何使用的。

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

3.3 cpu模块3.3.1 功能进程对设备的调用,当进程使用设备时,检查设备是否空闲。

如果空闲,则调用该设备;如果设备正被使用,则将该进程阻塞到该设备的阻塞队列中,等到设备空闲时,再被唤醒,调用设备。

3.3.2 数据结构一个设备的枚举类型DeviceType,一个cpu函数。

Cpu函数中调用Equipment模块中的函数对设备进行检测。

如果设备空闲,就调用该设备;如果设备真在被使用,则该进程被阻塞到该设备的阻塞队列中。

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

3.4 form1模块3.4.1 功能界面管理图3-2启动进程,如果要使用设备,按先来先服务的算法调用设备。

此模块中有一个设备调用函数public int Allocate(DeviceType type),根据设备的物理名调用设备,并将信息显示显示到界面中。

3.4.2 算法先来先服务(FCFS, First Come First Service)分配算法:每一设备有一队列管理,当多个作业或任务对同一设备提出I/O请求时,该算法把请求的先后次序排成一个等待该设备的队列,设备分配程序把设备分配给队列中的第一各作业。

四程序设计与实现4.1 程序流程图图4-14.2 基本思想进程调用设备。

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

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

最后调用C类设备,C类设备只有一个,C设备是临界资源,如果C设备空闲,则进程就可调用;否则将进程阻塞到设备C的阻塞队列中,等待设备,等到C设备空闲,就唤醒该进程,在断点处继续进行程序。

4.3 定义的公共变量或数据结构Anum,Bnum,Cnum分别表示设备A,B,C空闲数目public enum DeviceType 枚举型的数据类型列举出三种设备public struct DeviceTable 定义一个设备表的结构体public class Device 设备类public bool JudgeDevice(DeviceType type) 检查类型为type的设备是否可用public int Allocate(DeviceType type) 分配设备,返回第几个设备被占用public void DeAllocate(DeviceType type, int a) 回收设备4.4 实验部分代码namespace WindowsApplication2{ public partial class Form1 : Form{ public static int Anum = 3, Bnum = 2, Cnum = 1;public enum DeviceType{ 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 int[total];for (int i = 0; i < total; i++) //初始化每个设备{ useState[i] = 0;}}}public class Device{ private DeviceTable[] table = new DeviceTable[3]; //三种设备private static Device device = new Device();public Device(){ InitDevice();//初始化设备}private void InitDevice() //设备初始化,A设备3个,B设备2个,C设备1个{ table[0] = new DeviceTable(DeviceType.A, 3);table[1] = new DeviceTable(DeviceType.B, 2);table[2] = new DeviceTable(DeviceType.C, 1);}///////////////////检查类型为type的设备是否可用////////////////////// //public bool JudgeDevice(DeviceType type){ bool str = false;switch (type){ case DeviceType.A:{ if (table[0].total > 0){ str = true;}break;}case DeviceType.B:{ if (table[1].total > 0){ str = true;}break;}case DeviceType.C:{ if (table[2].total > 0){ str = true;}break;}}return str;}//////////////分配设备,返回第几个设备被占用//////////////////////////public int Allocate(DeviceType type){ int k = 0;switch (type) //使用switch语句选择分配设备不同函数 { case DeviceType.A:{ table[0].total--;for (int i = 0; i < 3; i++){ if (table[0].useState[i] == 0){ table[0].useState[i] = 1;k = i;break;}}break;}case DeviceType.B:{ table[1].total--;for (int i = 0; i < 2; i++){if (table[0].useState[i] == 0){ table[0].useState[i] = 1;k = i;break;}}break;}case DeviceType.C:{ table[2].total--;break;}}return k;}////////////////////////////回收设备//////////////////////////// //public void DeAllocate(DeviceType type, int a){ switch (type){ case DeviceType.A:{ table[0].total++;table[0].useState[a] = 0;break;}case DeviceType.B:{ table[1].total++;table[1].useState[a] = 0;break;}case DeviceType.C:{ table[2].total++;table[2].useState[a] = 0;break;}}}}public Form1(){ InitializeComponent();}/////////////////////// 分配设备时的颜色变化//////////////////// //private void button7_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 = 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 = Color.Red;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{ MessageBox.Show("无设备可分配");}result3 = Convert.ToString(m3);}}}4.5 运行截图屏幕显示主存使用情况示意图,哪些主存块已分配,哪些主存块未分配,以不同的颜色表示,灰色表示设备空闲,红色表示设备已分配初始化为所有设备都是空闲状态,如下图所示图4-2 分配设备A正常情况下,如图所示:图4-3分配设备A非正常情况下,例如需要设备数超过实际有的设备数时,如图所示:图4-43个设备A都被分配出去,回收设备A时正常情况如下图所示:图4-54.6 使用说明设备管理主要包括设备的分配和回收。

相关文档
最新文档