- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
广西科技大学鹿山学院
操作系统实训报告
系 别: 计算机工程系
专业班级: 计软111
姓 名: 卢冰
学 号:
二〇一三年 十二月 二十日
任务一 分析操作系统所面临的操作需求
【实训目的】
使学生理解操作系统所面临的操作需求,掌握操作系统中的进程管理、存储管理、设备
管理和文件管理等功能。
【实训内容】
1. 分析操作系统所面临的操作需求;
2. 熟悉实训环境;
3. 资料搜集与整理,进行实训的前期准备。
【实训步骤】
1、 分析与设计 (详细分析设计,并给出流程图)
【思考题】
-2 -
1. 操作系统中各模块有怎样的功能?
操作系统中的各个模块都有不同的功能:进程管理模块用于分配和控制处理机;设备管
理模块主要负责对I/O设备的分配与操纵;文件管理主要负责文件的存取、共享和保护;存
储管理主要负责的分配与回收。
2. 它们之间有怎样的联系?
它们之间相互联系,关系密切,无论是设备管理、文件管理,还是储存管理都离不开进
程的管理。文件一般都需要存储,而文件的存储需要文件管理进行存储,也需要储存管理来
对文件存储分配空间等等。
3. 针对某一特定的应用环境,如何完善操作系统的功能?
要想完善操作系统的功能,必须要合理安排各个功能模块,并利用有效的算法对各个
功能进行管理和处理。
任务二 进程管理
【实训目的】
掌握临界区的概念及临界区的设计原则;掌握信号量的概念、PV操作的含义以及应用P
V操作实现进程的同步与互斥;分析进程争用资源的现象,学习解决进程互斥的方法;掌握
进程的状态及状态转换;掌握常用的进程调度算法。
【实训内容】
1.分析进程的同步与互斥现象,编程实现经典的进程同步问题——生产者消费者问题的
模拟;
2.编写允许进程并行执行的进程调度程序,在常用的进程 (作业)调度算法:先来先服
务算法、短作业优先算法、最高响应比优先算法、高优先权优先算法等调度算法中选择一种
调度算法进行简单模拟,并输出平均周转时间和平均带权周转时间。
【实训步骤】
一:生产者消费者问题的模拟
-3-
1.分析与设计 (详细分析设计,并给出流程图)
2.程序代码
void Proclucer()//生产者函数
{
while(1)
{
if(count MAX)
{
printf(缓冲池已满!等待 3 秒!\n);
Sleep(3000);
}
-4 -
else
{
Sleep(1300);
WaitForSingleObject(g_empty,INFINITE);//等待信号灯
WaitForSingleObject(g_mutex,INFINITE);
count++;
printf(生产了一个产品!当前产品的总数量是:%d\n,count);
g_buffer[in] count;
in (in+1)%MAX;
ReleaseMutex(g_mutex);
ReleaseSemaphore(g_full,1,NULL);
Sleep(1300); //注意毫秒为单位
}
}
}
void Consumer() //消费者函数
{
while(1)
{
if(count 0)
{
printf(缓冲池已空!等待 2 秒!\n);
Sleep(2000);
}
else
{
Sleep(2000);//该线程释放当前的控制权2000毫秒,让系统调度其他线程
WaitForSingleObject(g_full,INFINITE);
WaitForSingleObject(g_mutex,INFI
文档评论(0)