《操作标准系统实训》书.docVIP

  • 49
  • 0
  • 约1.92万字
  • 约 42页
  • 2018-12-04 发布于江苏
  • 举报
《操作标准系统实训》书

《操作系统实训》指导书 一、实训目的 通过操作系统实训,主要强化学生对本课程基础知识的掌握;使学生理论联系实际,加强学生的动手能力;加深对操作系统的基本概念、工作原理和实现方法等理论知识的理解;掌握操作系统各个部分之间的有机联系,从而了解操作系统在整个计算机系统中的地位和作用,巩固和加强与本课程相关的其他计算机课程的知识,提高对计算机专业知识理解的系统性和完整性,并加强合作完成系统的团队精神和提高程序设计的能力。 二、实训内容 本实训的内容为实现一个模拟操作系统。要求使用实验室所提供的安装有C语言编程环境的计算机,模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理和文件管理四部分。 三、实训设备 1、PC计算机 2、VC++等软件系统。 四、实训任务及要求 根据实训内容,认真完成模拟操作系统的实现,模拟操作系统需包括进程管理、存储管理、设备管理和文件管理四部分。实训的基本原理主要包括操作系统中的进程的同步与互斥;常用的进程调度算法;地址重定位;动态页式存储管理技术的页面淘汰算法;设备管理中设备的分配和回收;用死锁避免方法来处理申请独占设备可能造成的死锁;磁盘调度算法等。 本实训结束后,需要学生提交实训的源代码及可执行程序,并提交实训报告。? 五、实训基本操作方法 1.?搜集与整理,设定操作系统所面临的操作需求; 2.?设计各部分的实现方案; 3.?程序开发; 4.?程序测试; 5.?系统集成; 6.?提交源程序,完成实训报告。 六、实训项目 任务一??? 分析操作系统所面临的操作需求 【实训目的】 使学生理解操作系统所面临的操作需求,掌握操作系统中的进程管理、存储管理、设备管理和文件管理等功能。 【实训内容】 1.??? 分析操作系统所面临的操作需求; 2.??? 熟悉实训环境; 3.??? 资料搜集与整理,进行实训的前期准备。 【预习要求】 操作系统的功能及实现的基本原理。 【实训步骤】 1.??? 分析操作系统所面临的操作需求:进程管理、存储管理、设备管理和文件管理,进一步熟悉各模块的工作原理; 2.??? 根据操作需求,进行系统的整体设计,画出系统总体的功能模块图,如下图1所示; 3.??? 根据上一步得出的功能模块图,进行资料的搜集与整理,并熟悉实训环境,为之后实训任务的完成打下坚实的基础。 图1系统功能模块图 【注意事项】 操作系统中各模块之间的功能划分。 【思考题】 1.????? 操作系统中各模块有怎样的功能? 2.?????? 它们之间有怎样的联系? 3.?????? 针对某一特定的应用环境,如何完善操作系统的功能? 任务二??? 进程管理 【实训目的】 掌握临界区的概念及临界区的设计原则;掌握信号量的概念、PV操作的含义以及应用PV操作实现进程的同步与互斥;分析进程争用资源的现象,学习解决进程互斥的方法;掌握进程的状态及状态转换;掌握常用的进程调度算法。 【实训内容】 1.分析进程的同步与互斥现象,编程实现经典的进程同步问题——生产者消费者问题的模拟; 2.编写允许进程并行执行的进程调度程序,在常用的进程(作业)调度算法:先来先服务算法、短作业优先算法、最高响应比优先算法、高优先权优先算法等调度算法中至少选择三种调度算法进行模拟,并输出平均周转时间和平均带权周转时间。 【预习要求】 进程同步与互斥的概念及实现方法;进程调度的作用及常用的调度算法。 【实训步骤】 1.分析计算机系统中对资源的分配与释放过程:计算机系统中的每个进程都可以消费或生产某类资源。当系统中某一进程使用某一资源时,可以看作是消耗,且该进程称为消费者。而当某个进程释放资源时,则它就相当一个生产者。 2.定义生产者消费者问题中的各数据结构,并初始化信号量; 3.创建生产者与消费者进程,利用信号量实现生产者与消费者之间的同步与互斥;可参考的部分源代码如下: include windows.h #include conio.h #include stdio.h #define MAX 20??? //定义缓冲池的最大容量是20 int count=5;???? //初始产品的数量为5 void Proclucer()//生产者函数 { ? while(1) ? { ? if(count = MAX) ? { ?? printf(缓冲池已满!等待 1 秒!\n); ?? Sleep(3000); ? } ? else ? { ?? count++; ?? printf(生产了一个产品!当前产品的总数量是: %d\n\n,count); ?? Sleep(1300);??????????? //注意毫秒为单位 ? } ?} } void Consumer()?? //消费者函数 { ?while(1) ?{ ?

文档评论(0)

1亿VIP精品文档

相关文档