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

上传人:lao****ou 文档编号:1115772 上传时间:2024-11-19 格式:DOCX 页数:8 大小:22.37KB
下载 相关 举报
操作系统课程设计--读者--写者问题.docx_第1页
第1页 / 共8页
操作系统课程设计--读者--写者问题.docx_第2页
第2页 / 共8页
操作系统课程设计--读者--写者问题.docx_第3页
第3页 / 共8页
操作系统课程设计--读者--写者问题.docx_第4页
第4页 / 共8页
操作系统课程设计--读者--写者问题.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《操作系统课程设计--读者--写者问题.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计--读者--写者问题.docx(8页珍藏版)》请在第一文库网上搜索。

1、课程设计说明书设计题目:操作系统课程设计一读者写者问题目录一实验题目2二 .实验目的2三 .设计思想2四 .实验流程图2五 .实验代码3六运行结果6七.心得体会6一.实验题目2.读者-写者问题二.实验目的1 .熟悉临界资源、信号量及PV操作的定义与物理意义;2 .了解进程通信的方法;3 .掌握进程互斥与进程同步的相关知识;4 .掌握用信号量机制解决进程之间的同步与互斥问题;5 .实现读者写者问题,深刻理解进程同步问题。三.设计思想采用读者优先的方法,无读者和写者时,读者或者写者都可读或者写;有读者时,读者可以读,写者不可以写;有写者时,读者不可以读,写者也不可以写。四.实验流程图写者:读者:开

2、始五.实验代码importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;pub1icc1assreader_writerextendsJFrameimp1ementsAction1istenerpub1icJ1abe1j11,j12J13;pub1icJTextFie1djtf1,jtf2Jtf3;pub1icJButtonjb1,jb2,jb3,jb4;intm=O;/读者的数量intwn=0写者的数量intrc_mutex=1;intwrite=1;pub1icreader-writer()JPane1jp=newJPane1(

3、);jp.set1ayout(newGrid1ayout(5,2)J网格布局j11=newJ1abe1(“类型:,,);j.add(j11);jtf1=newJTextFie1d();jtfI.setEditab1e(fa1se);jp.add(jtf1);j12=newJ1abe1(数量:,);jp.add(j12);jtf2=newJTextFie1d(0);jtf2.setEditab1e(fa1se);jp.add(jtf2);j13=newJ1abe1C是否成功:);jp.add(j13);jtf3=newJTextFie1d();jtf3.setEditab1e(fa1se);jp

4、.add(jtf3);jb1二newJButton(读者进,);jb1.addAction1istener(this);jp.add(jb1);jb2=newJButton(i);jb2.addAction1istener(this);jp.add(jb2);jb3=newJButton(写者进);jb3.addAction1istener(this);jp.add(jb3);jb4=newJButton(写者出);jb4.addAction1istener(this);jp.add(jb4);this.add(jp);this.setVisib1e(true);this.setBounds(

5、100,100,200,200);/位置和大小this.setDefau1tC1oseOperation(JFrame.DISPOSE_ON_C1OSE);)pub1icvoidactionPerformed(ActionEvente)if(e.getSource()=jb1)m=Integer.parseInt(jtf2.getText();if(rc_mutex=0)/被写者占用jtf3.setText(“否);e1sem+;/读者数量+1if(m=1)/是第一个读者write-;/写者无法进入jtf3.setText(是);jtf1setIbxtC读者”);jtf2.setText(to

6、String().va1ueOf(m);)if(e.getSource()=jb2)m=Integer.parseInt(jtf2.getText();if(rc_mutex=01m=0)/被写者占用或者读者数量为0jtf3.setText(否);e1sem-;/读者数量-1if(m=0)/最后一个读者write+;/写者可以进入jtf1.setText();)jtf3.set1ext(,);jtf2.setText(toString().va1ueOf(m);)if(e.getSource()=jb3)wn=Integer.parseInt(jtf2.getText();if(wn0)/已有

7、人jtf3.setText(否);e1serc_mutex;/占用jtf3.setText(是)jtf1.setText(写者”);jtf2.setText(,);)if(e.getSource()=jb4)wn=Integer.parseInt(jtf2.getText();if(wn=0Hwrite=0)/写者数量为0jtf3.setText(“否);e1sejtf3.set1ext(,);jtf1.setText(,r);jtf2.setText(0);rc_mutex+;/释放)pub1icstaticvoidmain(Stringargs)reader_writerr_w=newreader_writer();六.运行结果-_Qh卜曾kgs:读者O数里:1卜否成功:是否成功:否读者进读者出读者进读者出写者进写者出写者进写者出_QH卜型写者k型:读者效里:1救里:3卜否成功:是是否成功:是读者进读者出读者避读者出写者进写者出写者进写者出七.心得体会通过这几天的上机实验,经过自己的不懈努力,终于完成了任务,对于读者一写者问题,其实大致要求基本上每个人都懂,读者什么时候可以读,什么时候不可以读,写者什么时候可以写,什么时候不可以写,这些并不难,但是到写程序的时候,一定要设计好信号量才可以保证运行不会出错,对于进程的同步和互斥让我有了更深刻的理解。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服