- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
nachos考试复习
1.在nachos中,一个扇区为128个字节。 2.一个磁盘(Disk)划分为:Bitmap、根目录,Fileheader,文件内容 3.在一个Fileheader(头文件)里包可以分为:文件大小(1个Int,即为4字节)、sectors的个数(1个Int,即为4字节),所以还剩128-2*4=120字节,120字节/4字节=30个索引号
NumDirect*SectorSize=30*128=38404KB,所以最大不超过4KB
1、DISK前两个扇区:Bitmap和根目录
2、存储块4K,怎么突破,增加二级索引
改直接索引为间接索引,以突破文件长度不得超过4KB的限制。
答:需修改filesys文件夹中的filehdr.h和filehdr.cc。由于原本文件索引dataSectors的大小
最大只有NumDirect,即为30,并且是直接索引,所以文件大小被限制在4k。我们可以把
dataSectors中的最后一位改为一个间接索引。此时文件大小最大为
((NumDirect+NumIndirect-1)* SectorSize)。
在filehdr.h中添加一个常量NumIndirect,值为(SectorSize / sizeof(int)),即为存放一个扇
区索引的文件大小。并修改MaxFileSize为((NumDirect+NumIndirect-1)* SectorSize)。
与此同时,还需要修改Allocate方法、Deallocate方法、ByteToSector方法和Print方法。
Allocate方法:当numSectors小于等于NumDirect时,我们并不需要建立间接索引,可以
直接建立直接索引。当numSectors大于NumDirect时,需要建立间接索引dataSectors2,等
freeMap设置好后,将间接索引表写入sector中。
Deallocate方法:和Allocate方法一样,当numSectors小于等于NumDirect时,只需要直接
将freeMap中的dataSector值清0;当numSectors大于Numdirect时,需要先将间接索引从硬盘
读入,再逐个的将直接索引表和间接索引表对应的freeMap中的值清0。表示将空间释放。
ByteToSector方法:同样,需要对offset是在直接索引中,还是在间接索引中作出判断。
Print方法:同Deallocate方法,只是并不是对freeMap中的值清0,而是通过所得的索引
在硬盘中取值,然后打印出来。
3、二级索引怎么使用:将磁盘块索引dataSectors中的最后一位改为一个间接索引
4、添加文件属性在哪里添加,在fileheader里面
5、线程五个状态 就绪、运行、阻塞、挂起、结束
6、创建完成属于就绪状态
-s,单步调试
-l,list,相当于dir
一般选项:
-d: 显示特定的调试信息
-rs: 使得线程可以随机切换
-z: 打印版权信息
和用户进程有关的选项:
-s: 使用户进程进入单步调试模式
-x: 执行一个用户程序
-c: 测试终端输入输出
和文件系统有关的选项:
-f: 格式化模拟磁盘
-cp: 将一个文件从宿主机拷贝到Nachos模拟磁盘上
-p: 将Nachos磁盘上的文件显示出来
-r: 将一个文件从Nachos模拟磁盘上删除
-l: 列出Nachos模拟磁盘上的文件
-D: 打印出Nachos文件系统的内容
-t: 测试Nachos文件系统的效率
第五组:
1.tlb缺页中断用的什么算法,思想是什么(第三次实习):LRU算法
TLB转换表是由硬件实现的,表的尺寸一般小于用户程序的页面数.因此在转换中会出现转换失败的情况,从而发生PageFaultException 异常
此处更新策略采用FIFO。具体实现方式是在machine对象中添加队列指针stepOfTLB,用以循环利用TLB。至于LRU算法的采用,放在了pageTable缺页中断的试验中了
TLB表中只存放一部分逻辑页到物理页的转换关系。这样就可能出现逻辑地址转换失败的现象,会发生PageFaultException异常。在该异常处理程序中,就需要借助用户进程空间的线性页面转换表来计算出物理页,同时TLB表中增加一项。如果TLB表已满,就需要对TLB表项做LRU替换。使用TLB页面转换表处理起来逻辑较线性表为复杂,但是速度要快得多。由于TLB转换页表是硬件实现的,所以指向TLB转换页表的指针应该是只读的,所以Machine类一旦实例化,TLB指针值不能改动。
2.synDisk(同步磁盘):
信号量和锁有什么不同,实现上有什么不同
信号量的私有属性有信号量的值,它是一个阀门。线程等待队列中存放所有等待该信号量的线程
文档评论(0)