- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《操作系统实训》指导书《操作系统实训》指导书
《操作系统实训》指导书
一、实训目的
通过操作系统实训,主要强化学生对本课程基础知识的掌握;使学生理论联系实际,加强学生的动手能力;加深对操作系统的基本概念、工作原理和实现方法等理论知识的理解;掌握操作系统各个部分之间的有机联系,从而了解操作系统在整个计算机系统中的地位和作用,巩固和加强与本课程相关的其他计算机课程的知识,提高对计算机专业知识理解的系统性和完整性,并加强合作完成系统的团队精神和提高程序设计的能力。
二、实训内容
本实训的内容为实现一个模拟操作系统。要求使用实验室所提供的安装有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)