大工18春《操作系统》大作业题目及要求答案.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《大工18春《操作系统》大作业题目及要求答案.pdf》由会员分享,可在线阅读,更多相关《大工18春《操作系统》大作业题目及要求答案.pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络教育学院网络教育学院操作系统课操作系统课 程程 设设 计计题题目目:题目四题目四学习中心:学习中心:专专业:业:年年级:级:学学号:号:学学生:生:1.1.谈谈你对本课程学习过程中的心得体会与建议?谈谈你对本课程学习过程中的心得体会与建议?答:转眼间,学习了一个学期的计算机操作系统课程即将结束。在这个学期中,通过老 师的悉心教导,让我深切地体会到了计算机操作系统的一些原理和具体操作过程。在学习操作系统之前,我只是很肤浅地认为操作系统只是单纯地讲一些关于计算机 方面的操作应用,并不了解其中的具体操作过程和实用性。通过这一学期的学习,我才知道操作系统(Operating System,简称 O
2、S)是管理计算机系统的全部硬件资源包 括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持 等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。通过这 次的对操作系统的总结,有收获也有遗憾、不足的地方,但我想,我已经迈入了操 作系统的大门,只要我再认真努力的去学习,去提高,凭借我对网页设计的热情和 执着,我将来设计出的网页会更加专业,更完善。感谢老师在百忙中阅卷,也感恩老师这学期 以来对我的照顾,在老师的深刻讲授下让操作 系统这门十分枯燥和难理解的学科变得生动有趣。祝愿老师早日职称晋升,立项通过,身体健康,阖家欢乐。谢谢老师!题目四:进程同
3、步与互斥题目四:进程同步与互斥 生产者与消费者问题生产者与消费者问题一、设计思路:一、设计思路:1.11.1 生产者消费者问题生产者消费者问题生产者消费者问题(Producer_consumer)是一个经典的进程同步问题。它描述的是:有一群生产者进程在生产产品,并将此产品提供给消费者进程去消费。为使生产者进程和消费者进程能并发执行,在它们之间设置有个缓冲区的缓冲池,生产者进程可将它所生产的产品放入一个缓冲区中,消费者进程可从一个缓冲区取得一个产品消费。尽管所有的生产者进程和消费者进程都是以异步的方式运行的,但它们之间必须保持同步,即不允许消费者进程到一个空缓冲区去取产品,也不允许生产者进程向一
4、个已装有消息尚未被取走产品的缓冲区投放产品。如下图所示:1.21.2、生产者和消费者原理分析、生产者和消费者原理分析在同一个进程地址空间内执行两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放一个空缓冲区。当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻挡,直到新的物品被生产出来。1.31.3、生产者与消费者功能描述:、生产者与消费者功能描述:生产者功能描述:在同一个进程地址空间内执行两个线程。生产者线程生产物品,然后将物品
5、放置在一个空缓冲区中供消费者线程消费。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。消费者功能描述:消费者线程从缓冲区获得物品,然后释放缓冲区,当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。二、基本内容二、基本内容进程同步是指几个进程相互合作,一个进程到达某个点后,除非另一个进程已经完成某些操作,否则就不得不停下来,等待这些操作的结束,这就是进程同步的概念。生产者-消费者问题是一个经典的进程同步问题,该问题最早由Dijkstra提出,用以演示他提出的信号量机制。本作业要求设计在同一个进程地址空间内
6、执行的两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。生产者消费者问题是一种同步问题的抽象描述。计算机系统中的每个进程都可以消费或生产某类资源,当系统中某一进程使用某一资源时,可以看作是消耗,且该进程称为消费者。而当某个进程释放资源时,则它就相当一个生产者。通过一个有界缓冲区把生产者和消费者联系起来。假定生产者和消费者是相互等效的,
7、只要缓冲区未满,生产者就可以将产品送入缓冲区,类似地,只要缓冲区未空,消费者就可以从缓冲区中去走物品并消费它。生产者和消费者的同步关系将禁止生产者向满的缓冲区输送产品,也禁止消费者从空的缓冲区中提取物品。在生产者消费者问题中,信号灯具有两种功能。首先,它是跟踪资源的生产和消费的计数器;其次,它是协调资源的生产者和消费者之间的同步器。消费者通过再一指派给它的信号灯上做 P 操作来表示消耗资源,而生产者通过在同一信号灯上做 V 操作来表示生产资源。再这种信号灯的实施中,计数在每次 P 操作后减 1,而在每次 V 操作中加 1。个这一计数器的初始值是可利用的资源数目。当资源是不可利用时,将申请资源的
8、进程放置在等待队列中。如果有一个资源释放,在等待队列中的第一个进程被唤醒并得到资源的控制权。为解决这一类生产者消费者问题,设置了两个同步信号灯,一个说明空缓冲区的数目,用empty 表示,其初值为有界缓冲区的大小 n,另一个说明缓冲区的数目,用 full 表示,其初制值为 0。由于有界缓冲区是一个零界资源,必须互斥使用,所以另外还需设置一个互斥信号灯 mutex,起初值为 1。假定在生产者和消费者之间的公用缓冲区中,具有 n 个缓冲区,这时可以利用互斥信号量 mutex 实现诸进程对缓冲池的互斥使用;利用信号量 empty 和 full分别表示缓冲池中空缓冲区和满缓冲区的数量。又假定这些生产者
9、和消费者互相等效果,只要缓冲池未满,生产者便可以将消息送入缓冲池;只要缓冲池未空,消费者便可以从缓冲池中取走一个消息。在生产者-消费者问题中应注意:首先,在每个程序中用于互斥的wait(mutex)和 signal(mutex)必须成对出现;其次,对资源信号量 empty 和 full的 wait 和 signal 操作,同样需要成对地出现,但它们分别处于不同的程序中。生产者与消费者进程共享一个大小固定的缓冲区。其中,一个或多个生产者生产数据,并将生产的数据存入缓冲区,并有一个或多个消费者从缓冲区中取数据。假设缓冲区的大小为 n(存储单元的个数),它可以被生产者和消费者循环使用。分别设置两个指
10、针 in 和 out,指向生产者将存放数据的存储单元和消费者将取出数据的存储单元,如图,指针 in 和 out 初始化指向缓冲区的第一个存储单元。生产者从第一个存储单元开始存放数据,一次存放一条数据一条数据且in 指针向后移一个位置,当 in 指针指向第 n 个存储单元,下一次将指向第一个存储单元,如此循环反复使用缓冲区。消费者从缓冲区中逐条取走数据,一次取一条数据,相应的存储单元变为“空”,可以被生产者再次使用。每次取走一条数据,out 指针向后移一个存储单元位置。试想,如果不控制生产者与消费者,将会产生什么结果?1 2 3 4 5 6 7 8 n In out1 2 3 4 5 6 7 8
11、 n In out其中,in 表示存数据位置,out 表示取数据位置:被占用单元:空存储单元图:生产者/消费者循环使用缓冲区首先,生产者和消费者可能同时进入缓冲区,甚至可能同时读/写一个存储单元,将导致执行结果不确定。这显然是不允许的。所以,必须使生产者和消费者互斥进入缓冲区。即某时刻只允许一个实体(生产者或消费者)访问缓冲区,生产者互斥消费者和其他任何生产者。其次,生产者不能向满的缓冲区写数据,消费者也不能在空缓冲区中取数据,即生产者与消费者必须同步。当生产者产生出数据,需要将其存入缓冲区之前,首先检查缓冲区中是否有“空”存储单元,若缓冲区存储单元全部用完,则生产者必须阻塞等待,直到消费者取
12、走一个存储单元的数据,唤醒它。若缓冲区内有“空”存储单元,生产者需要判断此时是否有别的生产者或消费者正在使用缓冲区,若是有,则阻塞等待,否则,获得缓冲区的使用权,将数据存入缓冲区,释放缓冲区的使用权。消费者取数据之前,首先检查缓冲区中是否存在装有数据的存储单元,若缓冲区为“空”,则阻塞等待,否则,判断缓冲区是否正在被使用,若正被使用,若正被使用,则阻塞等待,否则,获得缓冲区的使用权,进入缓冲区取数据,释放缓冲区的使用权。其执行流程如图所示,伪代码如图所示。2、涉及的数据结构用资源向量 Available。这是一个含有m 个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所
13、配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。如果 Availablej=K,则表示系统中县有 RJ 类资源 K 个。需求矩阵 MAX。这是一个N*M 的矩阵,它定义了系统中N 个进程中的每一个进程对 M 类资源的最大需求。如果MAXi,j=K,则表示进程I 需要 RJ 类资源的最大数目为 K。矩阵 Allocation。这也是一个 N*M 的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocationi,j=K,则表示进程i 当前已分得 RJ 类资源的数目为 K。矩阵 Need。这也是一个 N*M 的矩阵,用以表示每一个进程尚需的各类资源数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 大工 18 作业 题目 要求 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内