操作系统课程设计PPT课件

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
总资源数、进程数、已分配的资源都可从文档中直接读出 到MFC界面,列出进程安全序列。源程序是用高级语言 C++编程实现。
关键词:读者写者算法 资源竞争 进程互斥
1.读者写者算法 1.1 系统分析 1.1.1问题描述 1.1.2算法描述 1.1.3设计目的 1.2 系统设计 1.2.1设计要求 1.2.2设计原理 1.2.3设计流程图 1.3系统实现 1.3.1数据结构 1.3.2函数声明 1.3.3运行结果 2总结 2.1设计体会 参考文献
操作系统课程设计
读者写者算法
安徽理工大学课程设计任务书
计算机 院系
软件 教研室
学 号2010302936学生姓名訾振恒专业(班级)电子10-1班设计题目读者写者 算法模拟设计技术参数了解进程同步的概念加深对读者写者算法的理解理解
信号量机制的原理掌握运用信号量解决进程同步问题的方法,进而学会运用 进程的同步与互斥用高级语言和MFC编写和调试一个简单的读者写者算法程 序设计要求设计一个读者写者算法模拟程序以解决进程间的互斥问题。(2)对 程序的每一部分要有详细的设计分析说明。(3)源代码格式要规范。(4)设计合 适的测试用例,对得到的运行结果要有分析。(5)设计中遇到的问题,设计的 心得体会。(6)按期提交完整的程序代码、可执行程序和课程设计报告。工作 量课程设计任务要求不少于10页的报告,要赋有模块图或流程图。工作计划 第一周:查找相关资料,并绘制草图!第二周:确定选用C++语言和MFC为 编程语言,。第三周:写需求分析报告。第四周:着手进行编程,实现算法,
1.1.3设计目的
带着下面几个问题,对课题进行深入分析 直至解决问题:
1.了解进程产生互斥的原因; 2.了解为什么要进行死锁的避免; 3.掌握读者写者算法的数据结构; 4.了解算法的执行过程,加深对读者写者算
法的理解。
1.2 系统设计
1.2.1设计要求 1.分析设计内容,给出解决方案(要说明设计实
并调试程序。第五周:测试程序并优化功能,最终完成设计报告。参考资料 [1]汤小丹 梁红兵 哲凤屏 汤子瀛. 计算机操作系统(第三版)西安电子科技大 学出版社,2007[2]杨克昌 王岳斌 计算机导论(第二版)[M]中国水电出版 社.2005[3](美)Roger S.Pressman 著 软件工程[M] 机械工业出版社 .2009[4] 徐孝凯 C++语言基础教程(第二版)[M] 清华大学出版社.2007[5]郑阿奇 Visual C++教程[M] 清华大学出版社.2005指导教师签字教研室主任签字
现的原理,采用的数据结构)。 2.画出程序的基本结构框图和流程图。 3.对程序的每一部分要有详细的设计分析说明。 4.源代码格式要规范。 5.设计合适的测试用例,对得到的运行结果要有
分析。 6.设计中遇到的问题,设计的心得体会。 7.按期提交完整的程序代码、可执行程序和课程
设计报告。
1.2.2设计原理
返回 CreateSemapore: 创建一个有名或无名信号对象。
OpenSemapore: InitializeCriticalSection: 初始化临界区对象 EnterCriticalSection: 等待指定临界区对象的所有权。当调用线程被赋予所有权
时,返回。 LeaveCriticalSection:该函数释放指定临界区对象的所有权。
3.读者写着算法(函数):
(1)初始化函数:readHandlel[0]读者初始化, writeHandlel[0] 写者初始化。
ExitThread Sleep: 对指定的时间间隔挂起当前的执行线程 CreateMutex: 创建有名或者无名的互斥对象
ReleaseMutex: WaitForSingleObject: 当发生(1)指定对象处于信号态(2)超时 则该函数返回 WaitForMultipleObject: 任意一个或全部指定对象处于信号态或超时间隔已过时,
1.读者写者算法思路: 先对用户提出的请求优先性选择,即是时
间优先,还是写者优先。若满足,则进行 相应的优先性选择。然后选择是你读者进 入还是写者进入。最后选择是写着完成还 是读者完成。
2.读者写者算法中用到的主要数据结 构:
相关WindowsAPI说明: CreateThread: 创建一个在调用进程的地址空间中执行的线程。
目录
1.读者写者算法
1.1 系统分析 1.1.1问题描述 (1)多个进程共享一个文件,其中只读文
件的称之为读者,其余只写文件的称为写 者。读者可以同时读,但是写者只能独立 写。 (2)对(1)修改,使得它对写者优先,即 一旦有写者到,后续的读者都必须等待, 而无论是否有读者Βιβλιοθήκη Baidu读文件。
1.1.2算法描述
写者优先 写者优先与读者不同之处在于一旦一个写者到来它应该尽
快对文件进行写操作如果有一个写者在等待则新到来的读 者不允许进行读操作。为此应当填加一个整形变量 numwrite用于记录正在等待的写者的数目numwrite的初值 为0.当线程开始调入时.只允许一个写者准备读. 等待互斥 信号,保证对numwrite 的访问,修改互斥.即numwrite++.而当 写者线程进行读操作时,则相应写者数目减少(numwrite--). 当numwrite=0 时说明所有的读者都已经读完离开临界区唤 醒读者,释放互斥信号. 为了实现写者优先应当填加一个个 临界区对象read 塞在read上。
摘要
所谓读者写着问题,是指保证一个写者进程必须与其他进 程互斥地访问共享对象的同步问题。读者写者问题可以这 样的描述,有一群写者和一群读者,写者在写同一本书, 读者也在读这本书,多个读者可以同时读这本书,但是, 只能有一个写者在写书,并且,读者必写者优先,也就是 说,读者和写者同时提出请求时,读者优先。当读者提出 请求时需要有一个互斥操作,另外,需要有一个信号量来 判断当前是否可操作。信号量机制是支持多道程序的并发 操作系统设计中解决资源共享时进程间的同步与互斥的重 要机制,而读者写者则是这一机制的一个经典范例。
相关文档
最新文档