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

上传人:壹****1 文档编号:477239157 上传时间:2023-09-24 格式:DOC 页数:15 大小:81.50KB
返回 下载 相关 举报
东北大学操作系统实验报告_第1页
第1页 / 共15页
东北大学操作系统实验报告_第2页
第2页 / 共15页
东北大学操作系统实验报告_第3页
第3页 / 共15页
东北大学操作系统实验报告_第4页
第4页 / 共15页
东北大学操作系统实验报告_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《东北大学操作系统实验报告》由会员分享,可在线阅读,更多相关《东北大学操作系统实验报告(15页珍藏版)》请在金锄头文库上搜索。

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

2、List list;/用list存放生产之后的数据.最大容量为1 public ProduceObject object,ArrayList list this.object = object; this.list = list; publicvoid produce synchronized /*只有list为空时才会去进行生产操作*/try while!list.isEmpty System.out.println生产者+Thread.currentThread.getName+ waiting; object.wait; intvalue = 9999; list.add; System

3、.out.println生产者+Thread.currentThread.getName+ Runnable; object.notifyAll;/然后去唤醒因object调用wait方法处于阻塞状态的线程 catch e.printStackTrace; import java.util.ArrayList;publicclass Consumer public Object object; public ArrayList list;/用list存放生产之后的数据.最大容量为1 public ConsumerObject object,ArrayList list this.object

4、= object; this.list = list; publicvoid consmer synchronized try /*只有list不为空时才会去进行消费操作*/whilelist.isEmpty System.out.println消费者+Thread.currentThread.getName+ waiting; object.wait; list.clear; System.out.println消费者+Thread.currentThread.getName+ Runnable; object.notifyAll;/然后去唤醒因object调用wait方法处于阻塞状态的线程

5、 catch e.printStackTrace; 实验结果:思考题:1如何控制进程间的相互通信?答:主要有:管道.信号.共享内存.消息队列2什么是进程的同步?什么是进程的互斥?分别有哪些实现方式?答:进程互斥是进程之间的间接制约关系。当一个进程进入临界区使用临界资源时.另一个进程必须等待。只有当使用临界资源的进程退出临界区后.这个进程才会解除阻塞状态。进程同步也是进程之间直接的制约关系.是为完成某种任务而建立的两个或多个线程.这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作。可以利用信号量来实现进程的同步与互斥。实验二 处理

6、机调度实验题目:设计一个按优先权调度算法实现处理器调度的程序数据结构及符号说明:typedefstructpb /每个进程char pname5; /进程的名字char status8; /进程的状态int time;/要求运行时间int pri; /进程的优先权int cputime; /cpu时间structpb *p; /队列结构.它的下一个。pbc, *pbcp;流程设计:关键代码:void attemper pbcp pItem = pbca-p;pbcp pIterator = pbca-p;while if pri pri&pIterator-time != 0 pItem =

7、pIterator;pIterator = pIterator-p;if time -= 1 = 0 pItem-cputime += 1;pItem-pri -= 1;strcpystatus, finish;else strcpystatus, run;pItem-cputime += 1;pItem-pri -= 1;strcpystatus, run;pIterator = pbca-p;while if cputime != 0&pIterator!=pItem&pIterator-time!=0 pIterator-cputime += 1;strcpystatus, ready;

8、pIterator = pIterator-p;printPbc;运行结果:思考题:1处理机调度的目的?答:主要还是为了优化软件的运行。2你实现优先权调度算法的思想?答:遍历一次.取出优先权最高的.判断该进程是否还要运行.要允许就运行它。 实验三 存储管理实验题目:模拟分页式存储管理中硬件的地址转换和产生缺页中断。用先进先出FIFO页面调度算法处理缺页中断。数据结构及符号说明:int paper_table75 /7乘5的页表char *oper_char12 /每次操作int oper_table122 /指令序列的单元号和操作存储int fifo_table4 /先进先出表.记录那几个在内

9、存中intstatic count = 0; /记下哪个先来的流程设计:核心代码:void schedulerint i, page, page_block, page_move;for i = 0; ipage = *;printf;if * + 1 = 1 /在页表中page_block = * + 2;page_move = * + 1;printf;* + 4 = 1;/修改变为1fifo_print;else if * + 4 = 1 printf;* + 4 = 0;else printf;* + 1 = 1;/移入内存.改变在内存中的标志为1* + 1 = 0;/改变在内存中的标

10、志为0* + 2 = * + 2;/重置页表里的主存块号值* + 2 = 0;/重置页表里的主存块号值fifo_tablecount % 4 = * + 0;/更新fifo表page_block = * + 2;page_move = * + 1;printf;fifo_print;count+;count = count % 4;printf;实验结果:思考题:1先进先出页面调度算法的思想?答:基本思想:先进入内存的页面先淘汰.后进入内存的后淘汰2最近最少用LRU页面调度算法思想?答:基本思想:最近用的最少的最先淘汰。3比较两种调度算法的效率哪种调度算法使产生缺页中断的次数少?答:从作业题我感觉最近最少使用优于先进

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号