东北大学操作系统实验报告

东北大学操作系统实验报告

ID:47439000

大小:981.01 KB

页数:23页

时间:2020-01-11

东北大学操作系统实验报告_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《东北大学操作系统实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、课程编号:B080000070《操作系统》实验报告姓名班级指导教师石凯实验名称《操作系统》实验开设学期2016-2017第二学期开设时间第11周——第18周报告日期2017年7月3日评定成绩评定人石凯评定日期2017年7月5日东北大学软件学院实验一进程的同步与互斥实验题目:通过学习和分析基础例子程序,使用windows进程和线程编程(也可以采用Java或Unix/Linux的POSIX线程编程)实现一个简单的生产者/消费者问题的程序。关键代码:importjava.util.ArrayList;publicclassProduce{publicObjectobject;publicArra

2、yListlist;//用list存放生产之后的数据,最大容量为1publicProduce(Objectobject,ArrayListlist){this.object=object;this.list=list;}publicvoidproduce(){synchronized(object){/*只有list为空时才会去进行生产操作*/try{while(!list.isEmpty()){System.out.println("生产者"+Thread.currentThread().getName()+"waiting");object.wait

3、();}intvalue=9999;list.add(value);System.out.println("生产者"+Thread.currentThread().getName()+"Runnable");object.notifyAll();//然后去唤醒因object调用wait方法处于阻塞状态的线程}catch(InterruptedExceptione){e.printStackTrace();}}}}importjava.util.ArrayList;publicclassConsumer{publicObjectobject;publicArrayListl

4、ist;//用list存放生产之后的数据,最大容量为1publicConsumer(Objectobject,ArrayListlist){this.object=object;this.list=list;}publicvoidconsmer(){synchronized(object){try{/*只有list不为空时才会去进行消费操作*/while(list.isEmpty()){System.out.println("消费者"+Thread.currentThread().getName()+"waiting");object.wait();}list.clear

5、();System.out.println("消费者"+Thread.currentThread().getName()+"Runnable");object.notifyAll();//然后去唤醒因object调用wait方法处于阻塞状态的线程}catch(InterruptedExceptione){e.printStackTrace();}}}}实验结果:思考题:(1)如何控制进程间的相互通信?答:主要有:管道,信号,共享内存,消息队列(2)什么是进程的同步?什么是进程的互斥?分别有哪些实现方式?答:进程互斥是进程之间的间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须

6、等待。只有当使用临界资源的进程退出临界区后,这个进程才会解除阻塞状态。进程同步也是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作。可以利用信号量来实现进程的同步与互斥。实验二处理机调度实验题目:设计一个按优先权调度算法实现处理器调度的程序数据结构及符号说明:typedefstructpb{//每个进程charpname[5];//进程的名字charstatus[8];//进程的状态inttime;//要求运行时间intpri;//进程的优先权intcputi

7、me;//cpu时间structpb*p;//队列结构,它的下一个。}pbc,*pbcp;流程设计:关键代码:voidattemper(pbcppbca){pbcppItem=pbca->p;pbcppIterator=pbca->p;while(pIterator!=NULL){if(pItem->pri<=pIterator->pri&&pIterator->time!=0){pItem=pIterator;}pIt

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。