ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:716.36KB ,
资源ID:16568685      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16568685.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(东北大学操作系统实验报告Word格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

东北大学操作系统实验报告Word格式.docx

1、 public void produce() synchronized (object) /*只有list为空时才会去进行生产操作*/ try while(!list.isEmpty() System.out.println(生产者+Thread.currentThread().getName()+ waiting); object.wait(); int value = 9999; list.add(value); Runnable object.notifyAll();/然后去唤醒因object调用wait方法处于阻塞状态的线程 catch (InterruptedException e)

2、 e.printStackTrace();public class Consumer /用list存放生产之后的数据,最大容量为1 public Consumer(Object object,ArrayListp; pbcp pIterator = pbca- while (pIterator!= NULL) if (pItem-pri pri&pIterator-time != 0) pItem = pIterator; pIterator = pIterator- if (pItem-time -= 1) = 0) pItem-cputime += 1;pri -= 1; strcpy(p

3、Item-status, finish else run pIterator = pbca- while (pIterator ! if (pIterator-cputime != 0&pIterator!=pItem&time!=0) pIterator- strcpy(pIterator-ready printPbc(pbca);运行结果:(1)处理机调度的目的?主要还是为了优化软件的运行。(2)你实现优先权调度算法的思想?遍历一次,取出优先权最高的,判断该进程是否还要运行,要允许就运行它。实验三 存储管理模拟分页式存储管理中硬件的地址转换和产生缺页中断。用先进先出(FIFO)页面调度算法

4、处理缺页中断。int paper_table75 /7乘5的页表char *oper_char12 /每次操作int oper_table122 /指令序列的单元号和操作存储int fifo_table4 / 先进先出表,记录那几个在内存中int static count = 0; /记下哪个先来的核心代码:void scheduler(void) int i, page, page_block, page_move; for (i = 0; i12; i+) page = *(oper_table + i); printf(-%d-n, i); if (*(*(paper_table + p

5、age) + 1) = 1) /在页表中 page_block = *(*(paper_table + page) + 2); page_move = *(*(oper_table + i) + 1); printf(在内存中,块号:%d;偏移量:%d;物理地址:%dn, page_block, page_move, page_block * 128 + page_move); *(*(paper_table + count) + 4) = 1;/修改变为1 fifo_print(); else if (*(*(paper_table + fifo_tablecount % 4) + 4) =

6、 1) printf(缺页中断,被替换的页号为:页修改存入硬盘n, fifo_tablecount); *(*(paper_table + fifo_tablecount % 4) + 4) = 0; else 页被直接替换n *(*(paper_table + page) + 1) = 1;/移入内存,改变在内存中的标志为1 *(*(paper_table + fifo_tablecount) + 1) = 0;/改变在内存中的标志为0 *(*(paper_table + page) + 2) = *(*(paper_table + fifo_tablecount) + 2);/重置页表里的

7、主存块号值 *(*(paper_table + fifo_tablecount) + 2) = 0; fifo_tablecount % 4 = *(*(oper_table + i) + 0);/更新fifo表换入内存成功,块号:n count+; count = count % 4; 思考题:(1)先进先出页面调度算法的思想?基本思想:先进入内存的页面先淘汰,后进入内存的后淘汰(2)最近最少用(LRU)页面调度算法思想?最近用的最少的最先淘汰。(3)比较两种调度算法的效率(哪种调度算法使产生缺页中断的次数少)? 答:从作业题我感觉最近最少使用优于先进先出。(4)分析在什么情况下采用哪种调度

8、算法更有利?如果页访问高度随机的话,不见得LRU好,LRU是根据最近最少使用的来决定哪个页表被替换,但过去很多时候不能代表未来。实验四 文件系统 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。struct TYPE_UFD /主文件目录 string File_Name; /文件名 bool Read; /是否可读可写可执行 bool Write; bool Execute; int Length_File; /文件长度;struct TYPE_MFD /用户文件目录 string User_Name; /用户名 TYPE_UFD *Pointer;struct TYPE_A

9、FD /打开文件目录,即运行文件目录 int File_ID; /文件ID int Pointer;class TYPE_FILE_SYSTEM /文件系统类public: void Initial(void); void Start(void);private: int _Number_Users; /用户数 int _Number_Files; /文件数 int _MaxNumber_Open_Files; /最大打开文件数 TYPE_MFD *_MFD; TYPE_UFD *_UFD; TYPE_AFD *_AFD;void TYPE_FILE_SYSTEM:Start(void) in

10、t User_ID; int i, temp_int; string temp; char choice; int Number_Open_Files; string Command; TYPE_UFD *UFD; do do cout User_Name; for (User_ID = 0; User_ID_Number_Users; User_ID+) if (_MFDUser_ID.User_Name = User_Name) break; if (User_ID = _Number_Users) cout 用户名错误,请再次输入 . endl; while (User_ID = _Nu

11、mber_Users); cout 欢迎登录 , User_Name ! UFD = _MFDUser_ID.Pointer; for (i = 0;_MaxNumber_Open_Files; _AFDi.File_ID = -1; Number_Open_Files = 0;C: Command; if (Command = dir)打开用户 的文件 tStatetLengthtFile name for (i = 0;_Number_Files; if (UFDi.Length_File != -1) cout if (UFDi.Read = true) cout R else- if

12、(UFDi.Write = true)W if (UFDi.Execute = true)E UFDi.Length_File; UFDi.File_Name else if (Command = diropenOpen File name if (_AFDi.File_ID ! if (_AFDi.Read = true) if (_AFDi.Write = true) if (_AFDi.Execute = true) UFD_AFDi.File_ID.File_Name create if (UFDi.Length_File = -1) break; if (i = _Number_Fi

13、les) cout Error: 已有名为 _Number_Files temp; UFDi.File_Name = temp;文件权限 :Read (y/n): do choice = getch(); while (choice != y & choice !n if (choice = UFDi.Read = true; else UFDi.Read = false;Write (y/n): UFDi.Write = true; UFDi.Write = false;Execute (y/n): UFDi.Execute = true; UFDi.Execute = false;Leng

14、th : temp_int; if (temp_int 0) UFDi.Length_File = temp_int;新文件 已建立!delete请输入文件名 : cin if (UFDi.Length_File != -1) & (UFDi.File_Name = temp)文件名错误,请再次输入 . UFDi.Length_File = -1;文件 已删除 .open if (Number_Open_Files = _MaxNumber_Open_Files) 你已经打开了 Number_Open_Files 文件.请输入文件名: for (i = 0; if (UFDi.Length_File ! break; if (i = _Number_Files)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1