电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

操作系统课程设计读者写者问题

操作系统课程设计读者写者问题_第1页
1/13
操作系统课程设计读者写者问题_第2页
2/13
操作系统课程设计读者写者问题_第3页
3/13
计算机与信息学院 操作系统课程设计报告 一、 开题报告 (一) 该项课程设计的意义; 1. 更加深入的了解读者写者问题的算法; 2. 加深对线程,进程的理解; 3. 加深对“线程同步”概念的理解,理解并应用“信号量机制”; 4. 熟悉计算机对处理机的管理,了解临界资源的访问方式; 5. 了解C++中线程的实现方式,研读API。 (二) 课程设计的任务 多进程/线程编程:读者-写者问题。  设置两类进程/线程,一类为读者,一类为写者;  随机启动读者或写者;  显示读者或写者执行状态;  随着进程/线程的执行,更新显示; (三) 相关原理及算法描述; 整体概况: 该程序从大体上来分只有两个模块,即“读者优先”和“写者优先”模块. 读者优先: 如果没有写者正在操作,则读者不需要等待,用一个整型变量 readcount 记录读者数目,用于确定是否释放读者线程,readcount 的初值为 0.当线程开始调入时.每个读者准备读. 等待互斥信号,保证对readcount 的访问,修改互斥.即 readcount++.而当读者线程进行读操作时,则读者数目减少(readcount--).当readcout=0 时,说明所有的读者都已经读完,离 开临界区 唤 醒 写者(LeaveCriticalSection(&RP_Write);), 释放互斥信号(ReleaseMutex(h_Mutex)). 还 需要一个互斥对象mutex来实现对全 局 变量 Read_count 修改时的互斥. 另外 ,为了实现写-写互斥,需要增 加一个临界区 对象 Write。当写者发 出 写请 求 时,必 须 申 请 临界区 对象 的所有权 。通 过 这 种 方法,可 以 实现读-写互斥,当Read_count=1 时(即第 一个读者到 来时),读者线程也 必 须 申 请 临界区 对象 的所有权 写者优先: 写者优先与 读者不同之 处在于一旦 一个写者到 来,它 应该尽 快 对文 件 进行写操作,如果有一个写者在等待,则新到 来的读者不允 许 进行读操作。为此 应当填 加一个整形 变量 write_count,用于记录正在等待的写者的数目,write_count 的初值为 0.当线程开始调入时.只允 许 一个写者准备读. 等待互斥信号,保证对write_count 的访问,修改互斥.即 write_count++.而当写者线程进行读操作时,则相应写者数目减少(write_count--).当write_count=0 时,说明所有的读者都已经读完,离 开临界区 唤醒 读者,释放互斥信号. 为了实现写者优先,应当填 加一个临界区 对象 read,当有写者在写文 件 ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

操作系统课程设计读者写者问题

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部