网站大量收购闲置独家精品文档,联系QQ:2885784924

大工19秋《操作系统》大作业题目及要求-题目三答案版本4.doc

大工19秋《操作系统》大作业题目及要求-题目三答案版本4.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

大连理工大学远程与继续教育学院《操作系统》课程设计

学习中心:

专业:

年级:年春/秋季

学号:

学生:

题目:进程同步与互斥生产者-消费者问题

1.谈谈你对本课程学习过程中的心得体会与建议?

操作系统是一门比较核心的课程,对于打好计算机科学的基础,我觉得还是必不可少的,尤其对于我这种半路出家的。但是操作系统学习起来又不是那么简单,有很多的概念以及设计思想,感觉实际编程改到操作系统还是需要一定的功底的。有时候感觉操作系统有点文科性质,要记的东西很多。操作系统的一些原理在生活中都可以找到相应的例子。结合生活中的例子,可以化抽象为具体,我们会更加清楚地了解到其原理与操作过程。我觉得通过我们的不断学习,结合生活中的实际问题,我们就会把操作系统学习得更好。

操作系统主要关注的就是进程管理,内存管理,io管理和网络这四大块,在先前计算机组成原理课程中,我了解了存储器的组成及工作原理,但是,存储器的管理及虚拟内存技术,使我对存储器有了更进一步了解。虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存进行容量扩充的存储器系统。一个虚拟存储器,采用地址映射,将虚拟地址分成存储页面号和偏移量两个部分。为了保证虚拟存储器最大效率的利用,良好的页面置换算法如最佳置换算法、FIFO算法、LRU算法等,是直接影响到系统性能的重要保证。段页式则在扩展内存的基础上,进一步实现了数据的共享和保护。

《操作系统》是作为我专业的核心课程的,感谢我们的老师为我们奉献的专业课程,让我获益良多,这对我以后的工作生活都有极大的帮助,当然对于这门课程的认知仅仅一学期的时间是不够的,以后我还会花更多时间去专研学习这门课。

2.《操作系统》课程设计,从以下5个题目中任选其一作答。

《操作系统》课程设计

题目三:进程同步与互斥生产者-消费者问题

1、设计要求

生产者——消费者问题是指有两组进程共享一个环形的缓冲池,一组称为生产者,一组称为消费者。缓冲池是由若干个大小相等的缓冲区组成,每个缓冲区可以容纳一个产品。生产者进程不断的将产品放入缓冲池中,消费者不断将产品从缓冲池中取出。

2、设计思路

2.1生产者—消费者问题

生产者—消费者问题(Producer_consumer)是一个经典的进程同步问题。它描述的是:有一群生产者进程在生产产品,并将此产品提供给消费者进程去消费。为使生产者进程和消费者进程能并发执行,在它们之间设置有个缓冲区的缓冲池,生产者进程可将它所生产的产品放入一个缓冲区中,消费者进程可从一个缓冲区取得一个产品消费。尽管所有的生产者进程和消费者进程都是以异步的方式运行的,但它们之间必须保持同步,即不允许消费者进程到一个空缓冲区去取产品,也不允许生产者进程向一个已装有消息尚未被取走产品的缓冲区投放产品。

2.2生产者和消费者原理分析

在同一个进程地址空间内执行两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放一个空缓冲区。当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻挡,直到新的物品被生产出来。

2.3生产者与消费者功能描述

生产者功能描述:在同一个进程地址空间内执行两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。

消费者功能描述:消费者线程从缓冲区获得物品,然后释放缓冲区,当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。

3、基本内容

在设计程序时主要有三个主体部分、三个辅助函数和一个数据结构。

其中主体部分为一个主函数main(),用于初始化缓冲区和各个同步对象,并完成线程信息的读入,最后根据该组的线程记录启动模拟线程,并等待所有线程的运行结束后退出程序;

生产者函数Produce()和消费者函数Consume(),生产者和消费者函数运行于线程中完成对缓冲区的读、写动作,根据

文档评论(0)

lhmibtf + 关注
实名认证
内容提供者

专注成人学历教育服务10余年。

1亿VIP精品文档

相关文档